Skip to content

Add android-key attestation format support - #2749

Merged
hslatman merged 12 commits into
masterfrom
herman/android
Jul 23, 2026
Merged

Add android-key attestation format support#2749
hslatman merged 12 commits into
masterfrom
herman/android

Conversation

@hslatman

Copy link
Copy Markdown
Member

This PR builds on #2322.

Jean-Baptiste Pin and others added 8 commits July 22, 2026 15:02
Add a new attestationFormat for ACME device-attest-01 challenge to
support Android attestation (android-key) as defined by WebAuthn and
modify by RFC (sig use key authorization).

The implementation involve adding a CRL. ACME provider support a new
configuration key called RootCRLs (rootCRLs in json).
When 'android-key' is specified in attestationFormat and the list is
not provided by the configuration, the list will be populated and
updated
automatically based on the validation implementation procedure.
Other ACME challenge could use IsRootRevoked and RootCRLs in the future
independantly to android-key or device-attest-01 challenge.
The x5c verification now also checks the leaf to not have been
revoked, and the Android Key Attestation extension is searched
for in reverse order.
@github-actions github-actions Bot added the needs triage Waiting for discussion / prioritization by team label Jul 22, 2026

@areed areed left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Should we skip the CRL check when not using the Android roots?

@hslatman
hslatman force-pushed the herman/android branch 2 times, most recently from a995c1c to 66ca9bc Compare July 22, 2026 20:50
@hslatman
hslatman marked this pull request as ready for review July 22, 2026 21:13
@hslatman
hslatman requested a review from maraino July 22, 2026 21:24
// AndroidKeyCRLChecker references an implementation of [androidkey.CRLChecker]
// that is responsible for checking revoked Android Key Attestation certificate
// serial numbers.
AndroidKeyCRLChecker androidkey.CRLChecker

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this is always going to be nil

@hslatman hslatman Jul 23, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's the case for open source. In hosted we'll inject a custom checker so that we can keep a single shared CRL for just the Google roots.

EDIT: missed a level of passing it around: c4ca1a6.

@hslatman
hslatman merged commit 4306f2a into master Jul 23, 2026
16 checks passed
@hslatman
hslatman deleted the herman/android branch July 23, 2026 14:58
@hslatman hslatman added this to the v0.30.3 milestone Jul 23, 2026
@jbpin

jbpin commented Jul 23, 2026

Copy link
Copy Markdown

❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs triage Waiting for discussion / prioritization by team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants