FIDO Device Security & Cryptographic Operations 3 — Questions and Answers
Question 1: Which attestation format wraps the authenticator's attestation statement inside an X.509 certificate chain rooted at the FIDO Alliance MDS?
- packed (Correct answer)
- tpm
- fido-u2f
- none
Correct answer: packed
The 'packed' attestation format supports full attestation using an X.509 certificate chain that can be verified against the FIDO MDS.
Question 2: What is the purpose of the 'largeBlobKey' extension in CTAP2.1?
- To encrypt the credential private key at rest
- To provide a per-credential symmetric key for storing large blobs on the authenticator (Correct answer)
- To allow relying parties to store arbitrary data in the browser
- To derive the PIN hash used in UV operations
Correct answer: To provide a per-credential symmetric key for storing large blobs on the authenticator
The largeBlobKey extension provides a symmetric key unique to each credential, used to encrypt and authenticate large blobs stored on the authenticator.
Question 3: An authenticator supports 'alwaysUv'. What does this flag indicate?
- User verification is optional for all operations
- The authenticator always requires user verification, even for discoverable credentials (Correct answer)
- The authenticator supports UV via USB only
- UV is skipped if the user is already logged into the OS
Correct answer: The authenticator always requires user verification, even for discoverable credentials
The 'alwaysUv' option means the authenticator enforces user verification for every assertion, regardless of the RP's UV preference.
Question 4: During TPM attestation, which structure contains the signed public key and the PCR digest that proves platform state?
- TPM_ST_ATTEST_CREATION
- TPM2B_ATTEST (certifyInfo) (Correct answer)
- TCG_PCClientPCREvent
- TPMT_SIGNATURE
Correct answer: TPM2B_ATTEST (certifyInfo)
TPM2B_ATTEST (the certifyInfo blob) contains the attested public key name and optionally PCR digests, all signed by the TPM's attestation key.
Question 5: What cryptographic algorithm does the FIDO Alliance recommend as the PRIMARY algorithm for new FIDO2 authenticators as of current specifications?
- RS256 (RSASSA-PKCS1-v1_5 with SHA-256)
- ES256 (ECDSA with P-256 and SHA-256) (Correct answer)
- EdDSA with Ed25519
- PS256 (RSASSA-PSS with SHA-256)
Correct answer: ES256 (ECDSA with P-256 and SHA-256)
ES256 (ECDSA over P-256 with SHA-256, COSE algorithm -7) is the mandatory-to-implement algorithm for FIDO2 authenticators.
Question 6: What is the function of the 'minPINLength' extension in CTAP2.1?
- It tells the platform what the current minimum PIN length is so it can enforce it during PIN change (Correct answer)
- It forces the user to change PIN every 30 days
- It sets the maximum PIN retry count
- It encrypts the PIN before transmission
Correct answer: It tells the platform what the current minimum PIN length is so it can enforce it during PIN change
The minPINLength extension allows a relying party to query or the authenticator to advertise the minimum PIN length so the platform can enforce matching during PIN enrollment.
Question 7: Which CTAP2 command is used to remove a specific resident credential from an authenticator?
- authenticatorGetAssertion with deleteAfter flag
- authenticatorCredentialManagement with subcommand deleteCredential (Correct answer)
- authenticatorReset followed by re-registration
- authenticatorMakeCredential with overwrite flag
Correct answer: authenticatorCredentialManagement with subcommand deleteCredential
The authenticatorCredentialManagement command with the deleteCredential subcommand removes a specific resident credential by its credentialId.
Which attestation format wraps the authenticator's attestation statement inside an X.509 certificate chain rooted at the FIDO Alliance MDS?