-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support FIDO metadata service version 3 for attestations #7
Comments
Once the new API is supported, I think we should update https://github.com/cedarcode/webauthn-ruby to remove its custom attestation code and instead document how to integrate the two gems. That way developers have a stable upgrade mechanism and the gems are easier to maintain (since we no longer have to push out gem updates for updates to the FIDO metadata) |
This has been on my mental to-do list, thanks for opening an issue. I was planning to drop v2 support entirely and do a major version bump.
Not sure which code needs to be removed from webauthn-ruby, could you clarify? |
I saw this section of the README: https://github.com/cedarcode/webauthn-ruby#attestation Plus the following snippet of code, which seems to have the root certificate for attestation statements stored as part of the code. I’m not 100% sure on how the FIDO metadata service works, but it seems like you’d pass the attestation statement to this gem, to see if the statement is valid (based on the metadata service’s data): https://github.com/cedarcode/webauthn-ruby/blob/master/lib/webauthn/attestation_statement/apple.rb |
Gotcha, definitely room for improvement in the webauthn-ruby readme on how to do attestation verification with this gem, but it's a fairly niche use case 99% of the people don't need.
These are related but not in this way. WebAuthn attestation responses contain an attestation object. This has a specific format that describe the claim the authenticator makes about itself - like 'my AAGUID is If the attestation response basically checks out, the MDS can be used to look up this AAGUID and then get additional metadata about it. Look for the "YubiKey 5 Series with Lightning" on https://opotonniee.github.io/fido-mds-explorer/ to see what exactly. The first important thing it that it has the manufacturer root certificate that can be used to verify the authenticator claim it's a genuine YubiKey. An alternative to trusting the MDS for this is going around and collecting all root certificates yourself from manufacturers you trust (which is kinda how TPM attestation works). The second is that the MDS contains metadata (hah) about the authenticator, such as the type and strength of the key storage, quality of biometrics employed (if any) and any status reports about flaws that make the authenticator untrustworthy. As I said it's niche, users need to consent to share the additional information. Passkeys due to their syncing nature will have Hope this helps :) |
Ahhh, gotcha! Okay, so we should:
|
Copied from: cedarcode/webauthn-ruby#375
From https://developers.yubico.com/WebAuthn/Concepts/Securing_WebAuthn_with_Attestation.html#_recommendations
From https://fidoalliance.org/metadata/
The text was updated successfully, but these errors were encountered: