FCP FIDO Protocols and Standards 2 — Questions and Answers
Question 1: Which cryptographic operation does a FIDO2 authenticator perform during the authentication ceremony to prove possession of the private key?
- Symmetric AES encryption of the challenge
- An asymmetric digital signature over the authenticator data and client data hash (Correct answer)
- A hash-based message authentication code (HMAC) using a shared secret
- RSA key wrapping of the assertion response
Correct answer: An asymmetric digital signature over the authenticator data and client data hash
During authentication, the authenticator signs the concatenation of authenticatorData and clientDataHash using its credential private key, producing an assertion signature the relying party verifies.
Question 2: In the FIDO UAF protocol, what is the role of the 'Transaction Confirmation' feature?
- It confirms that the user's device has passed FIDO certification
- It allows the relying party to display a transaction message for the user to review and confirm before signing (Correct answer)
- It verifies that the authenticator firmware is up to date
- It establishes a TLS session between the client and the FIDO server
Correct answer: It allows the relying party to display a transaction message for the user to review and confirm before signing
UAF Transaction Confirmation lets a relying party send a human-readable transaction text that the authenticator displays; the user's local verification then covers that specific transaction.
Question 3: What does the 'rpIdHash' field in FIDO2 authenticatorData represent?
- A SHA-256 hash of the relying party's TLS certificate
- A SHA-256 hash of the relying party identifier (origin domain) (Correct answer)
- The Base64url-encoded relying party display name
- An HMAC of the credential ID bound to the relying party
Correct answer: A SHA-256 hash of the relying party identifier (origin domain)
rpIdHash is the SHA-256 digest of the RP ID (typically the effective domain), ensuring the authenticator data is cryptographically bound to the correct relying party.
Question 4: Which FIDO2 extension enables a relying party to request the authenticator's AAGUID and attestation statement during registration even when attestation conveyance is set to 'indirect'?
- credProps extension
- largeBlob extension
- uvm (User Verification Method) extension
- Attestation is always direct when AAGUID is needed (Correct answer)
Correct answer: Attestation is always direct when AAGUID is needed
When 'indirect' attestation is used, the server may receive an anonymized certificate and cannot reliably obtain the raw AAGUID; direct or enterprise conveyance is required to access the AAGUID and full attestation statement.
Question 5: In CTAP2, what is the maximum number of credentials that can be returned in a single 'authenticatorGetNextAssertion' response sequence?
- Only 1 credential per session regardless of stored credentials
- Up to the number indicated by the numberOfCredentials field in the first getAssertion response (Correct answer)
- Exactly 5 credentials per CTAP2 specification limit
- Up to 20 credentials as defined by the FIDO Alliance
Correct answer: Up to the number indicated by the numberOfCredentials field in the first getAssertion response
The first authenticatorGetAssertion response includes a numberOfCredentials field; the platform then calls authenticatorGetNextAssertion that many minus one additional times to retrieve all matching credentials.
Question 6: Which attestation statement format uses a certificate chain rooted in a manufacturer CA and is common for TPM-based authenticators?
- Packed attestation
- TPM attestation (Correct answer)
- FIDO U2F attestation
- Android SafetyNet attestation
Correct answer: TPM attestation
TPM attestation format uses a TPM-generated certifyInfo structure signed by the TPM's attestation key (AIK), with a certificate chain back to the TPM manufacturer CA.
Question 7: What is the purpose of the 'clientDataHash' value that the platform sends to the authenticator during a CTAP2 operation?
- It authenticates the CTAP transport channel between platform and authenticator
- It binds the authenticator's response to the specific client data (origin, challenge, type) collected by the browser (Correct answer)
- It serves as the credential ID for the new key pair being created
- It replaces the need for user verification when the hash is present
Correct answer: It binds the authenticator's response to the specific client data (origin, challenge, type) collected by the browser
clientDataHash is the SHA-256 of the clientDataJSON, passed to the authenticator so it can include it in the signed authenticatorData, cryptographically binding the assertion to the exact client context.
Which cryptographic operation does a FIDO2 authenticator perform during the authentication ceremony to prove possession of the private key?