FIDO Certified Professional (FCP) — Questions and Answers
Question 1: What key improvement does FIDO MDS version 3 (MDS3) introduce compared to MDS2?
- It adds a password-based fallback for authenticators that fail attestation
- It replaces X.509 certificates with symmetric key attestation for simpler deployment
- It eliminates the need for authenticator manufacturer certification requirements
- It uses a signed JWT blob format with improved metadata structure and enhanced revocation handling (Correct answer)
Correct answer: It uses a signed JWT blob format with improved metadata structure and enhanced revocation handling
MDS3 distributes metadata as a signed JWT blob, providing better revocation support, a more structured format, and a more scalable distribution mechanism than MDS2's individual JSON files.
Question 2: Which security requirement must be enforced by the relying party server when the user verification flag (UV) is set to 'required' in registration options?
- The browser must redirect to a second-factor page
- The server must verify UV=true in the authenticator data flags before accepting the credential (Correct answer)
- The server must store the user's PIN for future verification
- The client must use a hardware security key only
Correct answer: The server must verify UV=true in the authenticator data flags before accepting the credential
When UV is required, the server must check that the UV bit is set in the authenticatorData flags field; failing to do so allows unverified registrations.
Question 3: A QA engineer wants to simulate a replay attack against a WebAuthn implementation. Which value should they attempt to reuse across two authentication requests?
- The server-issued challenge (Correct answer)
- The user's display name
- The client's user agent string
- The allowed credentials list
Correct answer: The server-issued challenge
A replay attack involves reusing a previously captured signed challenge response; the server must reject challenges it has already processed.
Question 4: After deploying a FIDO2 update, monitoring shows a spike in ERR_INVALID_SIGNATURE errors. What is the most likely root cause?
- Browser cache serving stale JavaScript
- The server's TLS certificate expired
- The FIDO MDS feed was not refreshed
- A change in how the server serializes or hashes the clientDataJSON before verification (Correct answer)
Correct answer: A change in how the server serializes or hashes the clientDataJSON before verification
Signature verification requires the exact same clientDataJSON bytes the authenticator signed; serialization changes break this match.
Question 5: What is the purpose of the 'up' (user presence) flag in the authenticatorData structure?
- It signals that a test of user presence was performed, such as a button press (Correct answer)
- It records whether the user is currently online
- It confirms that user verification (PIN or biometric) was completed
- It indicates the user's physical location was verified
Correct answer: It signals that a test of user presence was performed, such as a button press
The 'up' flag in authenticatorData indicates that the authenticator performed a test of user presence, typically a physical touch or button press.
Question 6: How does FIDO address the security risk of a compromised relying party server leaking user credentials?
- FIDO encrypts credentials server-side using the user's master password
- FIDO uses salted password hashes that cannot be reversed
- FIDO requires the server to store credentials in a hardware security module
- FIDO stores only public keys on the server; the private key never leaves the authenticator (Correct answer)
Correct answer: FIDO stores only public keys on the server; the private key never leaves the authenticator
Because the server stores only the public key, a server breach exposes no usable credential — the corresponding private key remains safely on the authenticator.
Question 7: Which COSE algorithm identifier represents EdDSA using the Ed25519 curve in FIDO2?
- -7
- -35
- -8 (Correct answer)
- -36
Correct answer: -8
COSE algorithm value -8 represents EdDSA, which in practice uses the Ed25519 curve for FIDO2 credentials.
Question 8: What is the purpose of version control in software development?
- To backup files to an external drive
- To track changes, enable collaboration, and maintain code history (Correct answer)
- To monitor developer productivity
- To count the number of lines of code written
Correct answer: To track changes, enable collaboration, and maintain code history
Version control systems track all code changes, enabling team collaboration and providing a complete history of modifications.
Question 9: What is 'attestation' in the context of FIDO2 registration?
- The process of encrypting the credential public key before sending it to the server
- The server's confirmation that the user's identity has been verified
- A cryptographic proof that a specific model of authenticator generated the credential (Correct answer)
- The digital signature applied to the user's username during account creation
Correct answer: A cryptographic proof that a specific model of authenticator generated the credential
Attestation provides a verifiable statement about the authenticator's hardware/firmware characteristics, signed by the device manufacturer.
Question 10: What is the CIA triad in information security?
- Cryptography, Identity, and Authentication
- Compliance, Insurance, and Auditing
- Confidentiality, Integrity, and Availability (Correct answer)
- Control, Investigation, and Authorization
Correct answer: Confidentiality, Integrity, and Availability
The CIA triad represents the three fundamental objectives of information security: keeping data confidential, maintaining its integrity, and ensuring its availability.
Question 11: Which standard is associated with FIDO2 authentication?
- OAuth 1.0
- WebAuthn (Correct answer)
- SAML
- RADIUS
Correct answer: WebAuthn
WebAuthn (Web Authentication) is a core component of FIDO2, developed by the FIDO Alliance and W3C. It defines a standard web API that allows web applications to integrate FIDO authentication directly into browsers and operating systems. This enables strong, phishing-resistant, and passwordless authentication experiences for users across the web.
Question 12: What is the purpose of a work breakdown structure (WBS)?
- To list all project team members
- To decompose the project into smaller, manageable work packages (Correct answer)
- To assign blame for delays
- To track financial expenditures only
Correct answer: To decompose the project into smaller, manageable work packages
A WBS hierarchically breaks down the total scope of work into smaller, defined deliverables that can be planned and managed.
Question 13: What is a key advantage of FIDO authentication?
- It eliminates phishing risks (Correct answer)
- It requires passwords for added security
- It depends on one-time passwords sent via email
- It relies solely on knowledge-based authentication
Correct answer: It eliminates phishing risks
A key advantage of FIDO authentication is that it eliminates phishing risks. Unlike passwords, FIDO credentials are cryptographically bound to specific websites and cannot be tricked into being entered on a fake site. The user's private key never leaves their device, and the authentication process verifies the legitimate origin of the request, making phishing attacks ineffective.
Question 14: A FIDO2 relying party experiences a database breach. Which stored credential field poses the greatest risk if exposed to an attacker?
- user_handle
- credential_id (Correct answer)
- aaguid
- Public key
Correct answer: credential_id
The credential_id, combined with the RP's allowCredentials list, can be used in targeted phishing; however, the public key alone cannot be used to authenticate without the private key on the authenticator.
Question 15: What is the purpose of the 'aaguid' field in FIDO2 attestation statements?
- To encode the cryptographic algorithm used for the credential
- To identify the model and manufacturer class of the authenticator (Correct answer)
- To store the user's public key for later verification
- To uniquely identify each individual authenticator device
Correct answer: To identify the model and manufacturer class of the authenticator
The AAGUID (Authenticator Attestation GUID) identifies the authenticator model/type, not a specific device instance.
Question 16: Why must FIDO relying parties verify that the 'rpIdHash' in an authenticator assertion matches their own RP ID?
- To check that the assertion was signed with an approved algorithm
- To ensure the credential was created for their site and not a different origin, preventing cross-site credential misuse (Correct answer)
- To validate that the user's biometric was verified during registration
- To confirm the authenticator firmware version is current
Correct answer: To ensure the credential was created for their site and not a different origin, preventing cross-site credential misuse
Verifying the rpIdHash confirms that the credential being presented was registered specifically for the current relying party's domain, enforcing origin binding.
Question 17: What is the primary IAM benefit of replacing passwords with FIDO passkeys for enterprise employees?
- Enabling anonymous authentication
- Eliminating the need for multi-factor authentication entirely
- Reducing the number of user accounts needed
- Removing the password attack surface (phishing, credential stuffing, reuse) (Correct answer)
Correct answer: Removing the password attack surface (phishing, credential stuffing, reuse)
Passkeys eliminate passwords, removing the primary vector for phishing, credential stuffing, and password reuse attacks that compromise enterprise accounts.
Question 18: Which FIDO specification defines how authenticators signal support for 'PIN/UV Auth Protocols' and negotiate which protocol version to use with the platform?
- WebAuthn Level 2, Section 6.3
- FIDO UAF Protocol Specification v1.2
- CTAP2 specification, authenticatorGetInfo response (pinUvAuthProtocols field) (Correct answer)
- FIDO Metadata Service API v3
Correct answer: CTAP2 specification, authenticatorGetInfo response (pinUvAuthProtocols field)
The CTAP2 authenticatorGetInfo command returns a pinUvAuthProtocols array listing supported PIN/UV auth protocol versions (1 and/or 2), allowing the platform to select a mutually supported version.
Question 19: An enterprise requires that only authenticators with FIPS 140-2 Level 3 certification are trusted. Which FIDO mechanism enables enforcement of this policy?
- Using metadata from the FIDO Metadata Service (MDS) to filter by authenticator certification level (Correct answer)
- Enforcing PIN complexity via CTAP clientPin command
- Requiring the 'credProtect' extension level 3
- Checking the 'uv' flag in authenticatorData
Correct answer: Using metadata from the FIDO Metadata Service (MDS) to filter by authenticator certification level
The FIDO Metadata Service (MDS) publishes authenticator metadata including certification levels, enabling relying parties to accept or reject authenticators based on those properties.
Question 20: What does the 'rk' (resident key) option set to 'required' in CTAP2 makeCredential instruct the authenticator to do?
- Encrypt the credential ID using a hardware-backed key
- Use the device's root key for signing instead of a per-credential key
- Store the credential on the authenticator's internal storage so it can be discovered without a credential list (Correct answer)
- Require the relying party to provide a PIN before accepting the credential
Correct answer: Store the credential on the authenticator's internal storage so it can be discovered without a credential list
When 'rk' is required, the authenticator stores the full credential (including user handle) internally, enabling discoverable/resident credential flows.
Question 21: What is the significance of the 'sign count' (signature counter) returned by a FIDO authenticator?
- It determines the expiration time of the credential
- It limits the total number of authentications a credential can perform
- It tracks the number of failed user verification attempts
- It allows relying parties to detect cloned authenticators by identifying an unexpected counter value (Correct answer)
Correct answer: It allows relying parties to detect cloned authenticators by identifying an unexpected counter value
Each authentication increments the sign count; if a relying party receives a count lower than or equal to the stored value, it may indicate a cloned authenticator.
Question 22: A developer tests FIDO2 registration in a localhost environment. Why might the browser reject the PublicKeyCredentialCreationOptions?
- The rpId does not match the current origin's effective domain (Correct answer)
- WebAuthn requires a minimum of two user verification factors
- The challenge was not Base64URL encoded correctly
- Localhost is never a valid effective Relying Party ID
Correct answer: The rpId does not match the current origin's effective domain
The rpId must be a registrable domain suffix of the page's origin; if it doesn't match, the browser rejects the options.
Question 23: Which metric should a DevOps team track post-deployment to measure FIDO2 adoption success among existing users?
- Percentage of active users with at least one registered FIDO2 credential (Correct answer)
- Database query execution time for non-FIDO endpoints
- Total TLS handshake duration
- Number of new npm packages installed
Correct answer: Percentage of active users with at least one registered FIDO2 credential
The percentage of active users with a registered FIDO2 credential directly measures adoption and the effectiveness of the rollout.
Question 24: During FIDO2 registration, what does the relying party server do with the public key received in the attestation object?
- Encrypts it with its own private key and returns it to the authenticator
- Discards it and relies only on the credential ID for future logins
- Stores it associated with the user account for future assertion verification (Correct answer)
- Sends it to the FIDO Alliance metadata service for validation
Correct answer: Stores it associated with the user account for future assertion verification
The relying party stores the credential's public key so it can verify the authenticator's signature during subsequent authentication ceremonies.
Question 25: During FIDO registration, what does the relying party do with the attestation statement?
- It stores it as the user's credential ID for future authentication
- It verifies it to establish trust in the authenticator model and its properties (Correct answer)
- It discards it immediately to protect user privacy
- It forwards it to the FIDO Alliance for auditing
Correct answer: It verifies it to establish trust in the authenticator model and its properties
The relying party verifies the attestation statement to determine the trustworthiness and properties of the authenticator model being registered.
Question 26: What is 'large blob storage' (largeBlob extension) in FIDO2 designed to enable?
- Transmitting attestation certificates that exceed the normal CBOR response size limit
- Per-credential opaque data blobs (e.g., wrapped encryption keys) stored on the authenticator and accessible to the relying party (Correct answer)
- Caching the relying party's public key on the authenticator for faster handshakes
- Storing large user profile photos directly on the security key
Correct answer: Per-credential opaque data blobs (e.g., wrapped encryption keys) stored on the authenticator and accessible to the relying party
The largeBlob extension allows relying parties to store and retrieve arbitrary per-credential blobs (up to authenticator capacity) on the authenticator, useful for encrypted data like wrapped keys.
Question 27: Which organization maintains the FIDO standards?
- W3C
- NIST
- IETF
- FIDO Alliance (Correct answer)
Correct answer: FIDO Alliance
The FIDO Alliance is an open industry association dedicated to developing and promoting open, royalty-free standards for simpler, stronger authentication. It was founded to address the lack of interoperability among strong authentication devices and to reduce the world's over-reliance on passwords. The Alliance continues to evolve and maintain the FIDO specifications, ensuring their widespread adoption and effectiveness.
Question 28: When rolling out a FIDO2 registration feature to existing password-only users, which migration strategy minimizes user disruption?
- Delete all existing passwords on launch day
- Force all users to re-register immediately
- Offer FIDO2 as an additional factor while keeping passwords, then phase out passwords later (Correct answer)
- Require FIDO2 only for new user sign-ups
Correct answer: Offer FIDO2 as an additional factor while keeping passwords, then phase out passwords later
Offering FIDO2 alongside passwords allows incremental adoption without locking out users who haven't yet registered an authenticator.
Question 29: Which FIDO2 feature allows a user to authenticate on a new device without pre-registering that device, by leveraging credentials stored on a paired phone?
- FIDO UAF Silent Authentication
- WebAuthn silent credential discovery via Bluetooth
- Passkey hybrid (cross-device authentication) using CTAP2 caBLE/hybrid transport (Correct answer)
- FIDO U2F NFC tap-to-authenticate
Correct answer: Passkey hybrid (cross-device authentication) using CTAP2 caBLE/hybrid transport
The CTAP2 hybrid (caBLE) transport lets a phone act as a roaming authenticator for another device via BLE proximity and a cloud relay, enabling cross-device passkey authentication without pre-registration on the new device.
Question 30: A FIDO certification test suite reports a failure on the 'credProtect' extension test. Which scenario most likely caused the failure?
- The AAGUID was missing from the authenticator data during assertion
- The authenticator rejected a registration request for a non-resident credential
- The server failed to include the credProtect extension in the registration options
- The authenticator allowed a getAssertion without user verification for a credential created with credProtect level 3 (Correct answer)
Correct answer: The authenticator allowed a getAssertion without user verification for a credential created with credProtect level 3
credProtect level 3 requires user verification for every assertion; allowing assertion without UV for such a credential violates the extension's security requirement.
Question 31: Which FIDO2 transport allows an authenticator on a mobile phone to authenticate a desktop browser session over a local network?
- Wi-Fi Direct
- USB tethering
- NFC relay
- caBLE (Cloud-Assisted Bluetooth Low Energy) / hybrid transport (Correct answer)
Correct answer: caBLE (Cloud-Assisted Bluetooth Low Energy) / hybrid transport
The caBLE/hybrid transport uses BLE for proximity verification and a cloud relay to bridge the authenticator phone with the desktop browser.
Question 32: Which FIDO2 extension allows an authenticator to report the method used for user verification (e.g., fingerprint vs. PIN)?
- uvm (User Verification Method) (Correct answer)
- txAuthSimple
- credProtect
- hmac-secret
Correct answer: uvm (User Verification Method)
The 'uvm' extension returns a matrix of user verification method descriptors indicating how the authenticator performed UV during the ceremony.
Question 33: What does the 'requireResidentKey' (or 'residentKey: required') option in PublicKeyCredentialCreationOptions specify?
- That the credential cannot be exported
- That the credential must be backed up to the cloud
- That the credential must be stored on the authenticator as a discoverable credential (Correct answer)
- That user verification is mandatory
Correct answer: That the credential must be stored on the authenticator as a discoverable credential
Setting residentKey to 'required' instructs the authenticator to store the credential as a discoverable (resident) credential on-device, enabling usernameless login.
Question 34: In the WebAuthn specification, what is the 'clientDataJSON' and why is it included in the signed data?
- A JSON blob containing the user's profile, signed to prove identity
- A JSON object storing the credential's public key returned to the relying party
- A metadata file describing the authenticator's capabilities sent alongside attestation
- A JSON structure encoding the challenge, origin, and type, bound to the authenticator signature to prevent replay and phishing (Correct answer)
Correct answer: A JSON structure encoding the challenge, origin, and type, bound to the authenticator signature to prevent replay and phishing
clientDataJSON encodes the challenge (preventing replay), the origin (preventing phishing), and the operation type, and its hash is included in the authenticator's signature to cryptographically bind the operation context.
Question 35: How does the FIDO2 challenge prevent replay attacks during authentication?
- The challenge is encrypted with the user's password so it cannot be reused
- The server generates a fresh random challenge each session; the authenticator signs it, and the server verifies it was used only once (Correct answer)
- The authenticator increments a counter that the challenge must match exactly
- Challenges are timestamped with an atomic clock and expire after 30 seconds
Correct answer: The server generates a fresh random challenge each session; the authenticator signs it, and the server verifies it was used only once
A server-generated cryptographic nonce (challenge) that is signed and verified as fresh ensures intercepted assertions cannot be replayed.
Question 36: Which FIDO2 feature allows an authenticator to store a symmetric secret that is encrypted by the authenticator and returned only after a successful UV, useful for offline encryption use cases?
- largeBlobKey extension
- uvm extension
- hmac-secret extension (Correct answer)
- credProtect extension
Correct answer: hmac-secret extension
The hmac-secret extension lets the authenticator maintain a device-bound secret; it returns an HMAC output keyed with that secret only after successful user verification, enabling offline scenarios like disk encryption.
Question 37: Which FIDO architecture pattern uses a separate dedicated security chip to isolate cryptographic operations from the main processor?
- Discrete Authenticator Pattern (Correct answer)
- Bound Authenticator Pattern
- TEE-based Authenticator Pattern
- Software Authenticator Pattern
Correct answer: Discrete Authenticator Pattern
The Discrete Authenticator Pattern uses a separate dedicated hardware chip (like a TPM or secure element) physically isolated from the main CPU.
Question 38: Which property of FIDO authentication prevents a man-in-the-middle from replaying a captured assertion against the real relying party?
- The credential ID is rotated after every authentication
- The authenticator counter is transmitted in plaintext so the server can detect reuse
- The challenge is unique per ceremony and the origin is cryptographically bound in the signed clientDataJSON (Correct answer)
- The use of symmetric encryption for the assertion payload
Correct answer: The challenge is unique per ceremony and the origin is cryptographically bound in the signed clientDataJSON
The server-issued challenge is unique per ceremony and the origin is embedded in the signed clientDataJSON, so a captured assertion is only valid for that specific session and origin.
Question 39: Which versioning concern is most critical when updating a FIDO2 server library in production?
- Removing legacy REST endpoints unrelated to FIDO
- Upgrading the front-end JavaScript framework simultaneously
- Ensuring the credential storage schema remains backward compatible (Correct answer)
- Changing the UI color scheme
Correct answer: Ensuring the credential storage schema remains backward compatible
Changing how credentials are stored or parsed can invalidate existing registered credentials, locking out all FIDO users.
Question 40: What is account recovery's greatest challenge in a passwordless FIDO deployment?
- Syncing credentials across browsers
- Providing secure re-enrollment when a user loses all registered authenticators (Correct answer)
- Storing too many public keys
- Handling expired TLS certificates
Correct answer: Providing secure re-enrollment when a user loses all registered authenticators
Account recovery is the hardest problem because the fallback path (if all authenticators are lost) can become the weakest link and potentially undermine FIDO's phishing resistance.
Question 41: Which stored credential field is compared byte-for-byte during the WebAuthn assertion verification process?
- aaguid
- stored public key (Correct answer)
- rp_name
- user_display_name
Correct answer: stored public key
The stored public key is used to verify the cryptographic signature in the authenticator's assertion response, requiring exact byte-level comparison.
Question 42: What is 'RP ID' in the context of FIDO2, and what constraint governs its valid values?
- A domain string that must be a registrable domain suffix of or equal to the origin's effective domain (Correct answer)
- A globally unique UUID assigned by the FIDO Alliance to each relying party
- An arbitrary string chosen by the RP with no domain restrictions
- The SHA-256 hash of the relying party's public key certificate
Correct answer: A domain string that must be a registrable domain suffix of or equal to the origin's effective domain
The RP ID must be a valid registrable domain suffix of the origin (e.g., 'example.com' is valid for 'login.example.com'), preventing credential theft across unrelated origins.
Question 43: Which cryptographic operation does a FIDO2 authenticator perform during the authentication ceremony to prove possession of the private key?
- An asymmetric digital signature over the authenticator data and client data hash (Correct answer)
- RSA key wrapping of the assertion response
- A hash-based message authentication code (HMAC) using a shared secret
- Symmetric AES encryption of the challenge
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 44: Which FIDO Alliance metadata document format provides relying parties with authenticator properties such as AAGUID, supported algorithms, and certification level?
- CTAP Device Info Response
- FIDO Conformance Test Report
- FIDO Metadata Statement (MDS entry) (Correct answer)
- WebAuthn Authenticator Extensions Map
Correct answer: FIDO Metadata Statement (MDS entry)
FIDO Metadata Statements, distributed via the FIDO Metadata Service (MDS), describe each authenticator's properties, supported algorithms, and certification level, allowing RPs to make trust decisions.
Question 45: Which attestation statement format uses a certificate chain rooted in a manufacturer CA and is common for TPM-based authenticators?
- FIDO U2F attestation
- TPM attestation (Correct answer)
- Android SafetyNet attestation
- Packed 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 46: A relying party sets 'userVerification: required' in PublicKeyCredentialRequestOptions. What happens if the authenticator cannot perform UV?
- The authentication ceremony fails because the 'uv' flag in authenticatorData will not be set (Correct answer)
- The authenticator generates a new credential with UV capability automatically
- The authenticator performs user presence instead and sets both 'up' and 'uv' flags
- The client platform falls back to collecting a password as a substitute
Correct answer: The authentication ceremony fails because the 'uv' flag in authenticatorData will not be set
If userVerification is required but the authenticator cannot set the 'uv' flag, the relying party must reject the assertion because the UV requirement is not satisfied.
Question 47: Under which condition will a FIDO2 authenticator increment its global signature counter during an authentication ceremony?
- After successfully generating an assertion signature, before returning the response to the platform (Correct answer)
- Only when the user verification flag (UV) is set to true in the response
- Only when the relying party explicitly requests counter increment in the get assertion options
- The counter is incremented only during registration, not authentication
Correct answer: After successfully generating an assertion signature, before returning the response to the platform
Authenticators increment the signature counter for each authentication assertion generated, providing relying parties with a mechanism to detect cloned authenticators (unexpected counter decreases or duplicates).
Question 48: What is the primary benefit of public-key cryptography in FIDO authentication?
- It requires centralized key management
- It relies on symmetric encryption
- It uses passwords for authentication
- It eliminates shared secrets (Correct answer)
Correct answer: It eliminates shared secrets
Public-key cryptography in FIDO eliminates the need for shared secrets, such as passwords, between the user and the service provider. Instead, the user's device proves identity by signing a challenge with its private key, which the service verifies using the publicly registered key. This design prevents credential theft from server breaches and phishing attacks, as no secret is ever transmitted or stored on the server.
Question 49: 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 50: When threat modeling a FIDO2 relying party, which STRIDE category best describes an attacker cloning a software authenticator's private key material?
- Elevation of privilege
- Spoofing (Correct answer)
- Repudiation
- Tampering
Correct answer: Spoofing
Cloning private key material allows an attacker to impersonate a legitimate authenticator, which is a spoofing threat.
Question 51: A FIDO2 database schema must enforce that the combination of (rpId, credential_id) is unique. What type of constraint achieves this?
- CHECK constraint
- DEFAULT constraint
- FOREIGN KEY constraint
- COMPOSITE UNIQUE constraint (Correct answer)
Correct answer: COMPOSITE UNIQUE constraint
A composite unique constraint on (rpId, credential_id) ensures no two credentials share the same ID under the same relying party.
Question 52: Which protocol is the foundation of FIDO authentication?
- FIDO UAF (Correct answer)
- Kerberos
- SAML
- OAuth 2.0
Correct answer: FIDO UAF
FIDO UAF (Universal Authentication Framework) was one of the original FIDO specifications, designed to enable passwordless authentication using various on-device authenticators like biometrics or PINs. It laid the groundwork for secure, multi-factor authentication directly from a user's device, eliminating the need for traditional passwords. This protocol established the core principles of FIDO's approach to strong, user-friendly authentication.
Question 53: A user registers a FIDO2 security key on a laptop, then attempts to use it on a different laptop. Which statement is true?
- The roaming authenticator can be used on any platform because the credential is stored on the key itself (Correct answer)
- Registration must be repeated on the second laptop because credentials are bound to the client platform
- Cross-platform use requires the relying party to issue a new challenge
- The user must re-enroll their biometric on the second laptop
Correct answer: The roaming authenticator can be used on any platform because the credential is stored on the key itself
Roaming authenticators store the credential (or the key material to derive it) internally, making them portable across any compliant client platform.
Question 54: When deploying FIDO2 behind a CDN, which configuration is critical to maintain correct origin binding?
- The CDN must present the origin's actual TLS certificate (or a valid SAN certificate) so the browser sees the correct origin hostname (Correct answer)
- The CDN must disable HTTP/2 to prevent multiplexing of authentication requests
- The CDN must strip the crossOriginAuthentication flag before forwarding to the origin server
- The CDN must forward the client's MAC address in a custom header
Correct answer: The CDN must present the origin's actual TLS certificate (or a valid SAN certificate) so the browser sees the correct origin hostname
The browser's origin is determined by the hostname in the TLS certificate; a CDN presenting the correct hostname preserves the origin binding WebAuthn requires.
Question 55: How does the concept of 'separation of duties' apply to a FIDO deployment in an enterprise IAM architecture?
- Having the authenticator and the relying party use independent Certificate Authorities
- Splitting the credential ID into two halves stored on separate servers
- Ensuring that the team that manages authenticator provisioning is different from the team that controls access policy enforcement (Correct answer)
- Requiring users to authenticate with two different FIDO keys simultaneously
Correct answer: Ensuring that the team that manages authenticator provisioning is different from the team that controls access policy enforcement
Separation of duties divides responsibilities so that no single person or system controls the entire authentication lifecycle, reducing insider threat and error risk.
Question 56: What is the role of the 'aaguid' field in a WebAuthn attestation object?
- It identifies the authenticator model/type, enabling relying parties to look up its metadata and certification status (Correct answer)
- It is a random value generated per-credential to ensure unlinkability
- It contains the authenticator's serial number for warranty and support tracking
- It serves as the credential ID that uniquely identifies the user's public key
Correct answer: It identifies the authenticator model/type, enabling relying parties to look up its metadata and certification status
The AAGUID (Authenticator Attestation GUID) is a 16-byte UUID that identifies the authenticator model, allowing the RP to query the FIDO MDS for that model's properties and certification level.
Question 57: What is the role of the 'rpIdHash' in the authenticatorData structure during FIDO2 authentication?
- It proves the server's identity by including its TLS certificate hash
- It contains the hash of the user's password for legacy compatibility
- It binds the assertion to the specific relying party, preventing cross-origin replay (Correct answer)
- It identifies the user account associated with this credential
Correct answer: It binds the assertion to the specific relying party, preventing cross-origin replay
The rpIdHash (SHA-256 of the RP ID) ensures the authenticator only produces assertions for the intended relying party.
Question 58: Under the WebAuthn specification, which of the following is a valid 'token binding' status when processing clientDataJSON?
- present (Correct answer)
- enforced
- optional
- negotiating
Correct answer: present
The token binding status in clientDataJSON can be 'present' (binding was used) or 'supported' (client supports it but did not use it); 'present' indicates an active token binding.
Question 59: How does FIDO2 authentication interact with SAML-based SSO in a typical enterprise deployment?
- FIDO2 replaces SAML assertions with WebAuthn tokens
- FIDO2 is used at the SAML Identity Provider to authenticate the user before issuing a SAML assertion to service providers (Correct answer)
- FIDO2 and SAML are incompatible and cannot be used together
- FIDO2 handles authorization while SAML handles authentication
Correct answer: FIDO2 is used at the SAML Identity Provider to authenticate the user before issuing a SAML assertion to service providers
In enterprise SSO, FIDO2 secures the IdP login step; once authenticated via FIDO2, the IdP issues standard SAML assertions to connected service providers.
Question 60: When designing a FIDO2 credential database for GDPR compliance, how should user_handles be treated?
- Share them with third-party analytics providers freely
- Treat them as personal data and ensure they can be deleted on user request (Correct answer)
- Store them in plaintext for easy support lookups
- Store them in an external CDN for fast retrieval
Correct answer: Treat them as personal data and ensure they can be deleted on user request
User handles link credentials to user accounts and constitute personal data under GDPR, requiring the ability to delete them upon a subject access or erasure request.
Question 61: Which FIDO protocol enables two-factor authentication with security keys?
- LDAP
- FIDO UAF
- FIDO U2F (Correct answer)
- OpenID Connect
Correct answer: FIDO U2F
FIDO U2F (Universal Second Factor) is a specific FIDO protocol designed to add a strong second factor to existing password-based logins. It primarily uses external security keys (like USB, NFC, or Bluetooth devices) to provide cryptographic proof of user presence. This significantly enhances security against phishing and other online attacks by requiring a physical token in addition to a password.
Question 62: During which SDLC phase should a developer first integrate FIDO2 WebAuthn library dependencies into a project?
- Post-release maintenance
- Production deployment
- Requirements and design (Correct answer)
- User acceptance testing
Correct answer: Requirements and design
FIDO2 library selection and integration planning should occur during requirements and design to ensure the architecture supports WebAuthn from the start.
Question 63: A FIDO2 relying party receives a credential with sign_count=0 during authentication, while the stored sign_count is also 0. Per the WebAuthn spec, the RP should:
- Reset the stored sign_count to 1 and continue
- Fail authentication unconditionally
- Accept authentication but note the authenticator may not implement counters (Correct answer)
- Request a new registration to obtain a valid counter
Correct answer: Accept authentication but note the authenticator may not implement counters
A sign_count of 0 from both sides indicates the authenticator does not implement counters; the spec permits acceptance with a logged warning.
Question 64: Which tool category is most appropriate for fuzzing the CBOR-encoded authenticator data parsing code of a FIDO2 server library?
- Static application security testing (SAST)
- Interactive application security testing (IAST)
- Coverage-guided fuzzer (Correct answer)
- Software composition analysis (SCA)
Correct answer: Coverage-guided fuzzer
Coverage-guided fuzzers generate malformed CBOR inputs and track code coverage to find parsing bugs and crashes efficiently.
Question 65: In FIDO U2F, which cryptographic primitive is used to derive the key handle from the application ID and a device secret?
- RSA-OAEP key encapsulation
- A PRF (Pseudo-Random Function) or HMAC-based key derivation (Correct answer)
- AES-256 symmetric encryption of the private key
- Diffie-Hellman key exchange with the server
Correct answer: A PRF (Pseudo-Random Function) or HMAC-based key derivation
U2F authenticators typically use an HMAC-based KDF with the application ID and an internal secret to deterministically derive key handles.
Question 66: What is the function of the 'allowCredentials' list sent by a relying party during a FIDO2 authentication request?
- To list users allowed to log in to the site
- To specify which credentials the server will accept for a given user, reducing discovery scope (Correct answer)
- To enumerate all registered users on the platform
- To set the minimum security level for authenticators
Correct answer: To specify which credentials the server will accept for a given user, reducing discovery scope
The allowCredentials list tells the authenticator which credential IDs are acceptable for the given user, enabling the authenticator to select the correct key without exposing other users' credentials.
Question 67: What cryptographic guarantee does FIDO2 provide against a compromised TLS connection (man-in-the-middle) attempting to relay authentication requests to the victim's authenticator?
- Challenge freshness enforced by the TLS layer prevents all replay scenarios
- FIDO2 uses mutual TLS between the authenticator and relying party to prevent relay attacks
- FIDO2 relies entirely on TLS certificate pinning to prevent MITM attacks
- The origin and rpIdHash are signed by the authenticator, so a MITM cannot forward assertions to a different origin (Correct answer)
Correct answer: The origin and rpIdHash are signed by the authenticator, so a MITM cannot forward assertions to a different origin
Because the authenticator signs the origin (via clientDataJSON hash) and rpIdHash, any assertion is cryptographically bound to the exact origin and RP ID; a MITM operating on a different domain cannot use the signed assertion.
Question 68: Which of the following fields is typically found in a FIDO Metadata Statement?
- Relying party domain names and their per-site authentication security policies
- Authenticator AAGUID, supported cryptographic algorithms, and attestation root certificates (Correct answer)
- Session tokens, their associated scopes, and their expiration timestamps
- User credentials and their associated public keys for a given relying party
Correct answer: Authenticator AAGUID, supported cryptographic algorithms, and attestation root certificates
A metadata statement contains the authenticator's AAGUID, supported COSE algorithm identifiers, certification status, and the root certificates required to verify that authenticator's attestation.
Question 69: What is the primary reason FIDO2 uses asymmetric (public-key) cryptography rather than symmetric shared secrets like TOTP?
- Symmetric cryptography cannot produce digital signatures
- Asymmetric cryptography is required by TLS 1.3 and cannot be avoided
- The server never holds the secret needed to produce valid authentications, so a server breach cannot yield usable credentials (Correct answer)
- Asymmetric keys are shorter and faster to transmit over the network
Correct answer: The server never holds the secret needed to produce valid authentications, so a server breach cannot yield usable credentials
With asymmetric cryptography, the server stores only the public key; even full database compromise does not give attackers the ability to impersonate users.
Question 70: When integrating FIDO2 with a SCIM-based provisioning system, which event should trigger removal of a user's FIDO credentials from the relying party?
- User's session timeout
- User password change
- Certificate expiry notification
- SCIM deprovision/delete event for the user account (Correct answer)
Correct answer: SCIM deprovision/delete event for the user account
A SCIM deprovision or delete event signals that the user's access should be revoked; all associated FIDO credentials must be deleted to prevent orphaned access.
Question 71: What is the maximum number of resident keys (discoverable credentials) typically supported by a hardware security key?
- Typically 25–50 credentials depending on the device (Correct answer)
- Exactly 1 credential per site
- Unlimited, stored in cloud backup
- 10,000 credentials via extended memory
Correct answer: Typically 25–50 credentials depending on the device
Hardware security keys have limited secure storage and typically support 25–50 discoverable (resident) credentials depending on the manufacturer and model.
Question 72: What is 'self attestation' (also called surrogate attestation) in WebAuthn?
- The authenticator attests to the relying party's identity instead of its own
- A platform OS signs the attestation on behalf of the authenticator
- The user manually vouches for their authenticator by entering a code
- The credential keypair itself is used as the attestation keypair, providing no third-party trust anchor (Correct answer)
Correct answer: The credential keypair itself is used as the attestation keypair, providing no third-party trust anchor
In self attestation, the same key used for the credential signs the attestation statement, providing no independent evidence of the authenticator's properties or manufacturer.
Question 73: Which security concept does FIDO's per-relying-party credential isolation implement?
- Key escrow
- Privilege escalation prevention
- Mandatory integrity control
- Compartmentalization (Correct answer)
Correct answer: Compartmentalization
Each FIDO credential is scoped to exactly one relying party, so compromise or misuse at one site cannot affect credentials registered at other sites — a form of compartmentalization.
Question 74: Which FIDO2 authenticator transport is defined to operate over Bluetooth Low Energy (BLE) for cross-device authentication scenarios?
- CTAP1/U2F over HID
- WebAuthn Level 3 hybrid transport
- CTAP2 over caBLE (Cloud-Assisted BLE) (Correct answer)
- FIDO UAF over NFC
Correct answer: CTAP2 over caBLE (Cloud-Assisted BLE)
caBLE (Cloud-Assisted BLE), also called the 'hybrid' transport in CTAP2.2, uses BLE proximity combined with a QR code and cloud tunnel to enable cross-device authentication (e.g., phone authenticating a desktop browser).
Question 75: When a FIDO2 relying party sets 'userVerification: required' but the authenticator only supports user presence (no PIN or biometric), what is the expected outcome?
- The authenticator returns an error and the operation fails, because UV cannot be satisfied (Correct answer)
- The browser automatically prompts for a software-based PIN to satisfy the UV requirement
- The attestation conveyance is downgraded to 'none' to allow the operation to proceed
- The authenticator generates the credential with UV=false and the RP must accept it
Correct answer: The authenticator returns an error and the operation fails, because UV cannot be satisfied
If userVerification is required and the authenticator cannot perform user verification, CTAP2 returns CTAP2_ERR_UNSUPPORTED_OPTION (0x2B) or the platform rejects the assertion with UV=false, causing the ceremony to fail.
Question 76: Which attestation type provides the strongest assurance that an authenticator is genuine and meets specific security requirements during registration?
- Self attestation
- Surrogate attestation
- Full (basic) attestation (Correct answer)
- None attestation
Correct answer: Full (basic) attestation
Full (basic) attestation uses a manufacturer-issued certificate chain to cryptographically prove the authenticator's make and model, providing the strongest assurance of device authenticity.
Question 77: What is a 'resident key' (discoverable credential) in FIDO2, and why is it required for usernameless flows?
- A key stored in the relying party's database, required because the server must look it up
- A credential stored on the authenticator indexed by rpId and user handle, enabling authentication without a username prompt (Correct answer)
- A key shared between the authenticator and client platform, required for platform authenticators
- A hardware-backed key that cannot be exported, required for high-assurance scenarios
Correct answer: A credential stored on the authenticator indexed by rpId and user handle, enabling authentication without a username prompt
A discoverable credential (resident key) is stored on the authenticator itself keyed by rpId and user handle, allowing the authenticator to present it without the server first providing a credential list.
Question 78: Which network protocol is used by CTAP2 when a FIDO2 authenticator connects via USB HID?
- HTTP/2 over USB tunneling
- TCP/IP over USB RNDIS
- USB HID is a local bus protocol, not a network protocol — no IP layer is involved (Correct answer)
- USB CDC-ACM serial over IP
Correct answer: USB HID is a local bus protocol, not a network protocol — no IP layer is involved
USB HID is a direct local bus interface; CTAP2 over USB HID does not involve any IP networking layer.
Question 79: In a DevSecOps pipeline for a FIDO relying party, which gate should block a merge if violated?
- A new optional logging field was added
- A developer added a new UI font
- A unit test for a helper function was deleted
- The server's challenge validation was removed to simplify the code (Correct answer)
Correct answer: The server's challenge validation was removed to simplify the code
Removing challenge validation eliminates replay-attack protection; a security-focused gate must block such regressions automatically.
Question 80: Which indexing strategy is most appropriate for a FIDO2 credential table expected to handle millions of authentication lookups per day?
- Hash index on user display name
- B-tree index on credential_id (Correct answer)
- Clustered index on creation_timestamp
- Full-table scan on every lookup
Correct answer: B-tree index on credential_id
A B-tree index on credential_id enables O(log n) lookups, making authentication queries fast at scale.
Question 81: During a FIDO2 credential creation, what determines whether a credential is stored as a 'server-side credential' versus a 'discoverable credential' (resident key)?
- The attestation conveyance preference in the creation options
- The requireResidentKey or residentKey hint in the authenticatorSelection criteria (Correct answer)
- Whether the authenticator uses CTAP1 or CTAP2 protocol version
- The size of the credential ID returned by the authenticator
Correct answer: The requireResidentKey or residentKey hint in the authenticatorSelection criteria
The authenticatorSelection.requireResidentKey (deprecated) or residentKey field ('required', 'preferred', 'discouraged') tells the authenticator whether to store the private key internally as a discoverable credential.
Question 82: In a high-availability FIDO2 deployment with read replicas, what risk arises when authentication reads the sign_count from a replica?
- Read replicas compress credential_ids by default
- Replicas do not support UNIQUE constraints
- Replicas cannot store binary data
- Replication lag may cause a stale sign_count to be used, allowing replay attacks (Correct answer)
Correct answer: Replication lag may cause a stale sign_count to be used, allowing replay attacks
Replication lag means replicas may have outdated sign_count values, so authentication reads must always target the primary (master) database node.
Question 83: What is the security significance of the 'resident credential' (discoverable credential) capability in FIDO2?
- It allows the credential to be shared across multiple devices automatically
- It makes the credential visible to all relying parties for audit purposes
- It enables passwordless authentication by storing enough information on the authenticator to identify the user account without a username (Correct answer)
- It stores the user's biometric data on the server for faster verification
Correct answer: It enables passwordless authentication by storing enough information on the authenticator to identify the user account without a username
Discoverable credentials store the user handle and credential ID on the authenticator itself, enabling true passwordless flows where no username is typed — the authenticator provides both the credential and account identifier.
Question 84: Where are private keys stored when using a platform authenticator such as Windows Hello or Apple Face ID?
- In the operating system's secure enclave or TPM (Correct answer)
- In an HttpOnly cookie on the user's device
- On the FIDO relying party server
- In the browser's IndexedDB local storage
Correct answer: In the operating system's secure enclave or TPM
Platform authenticators leverage hardware-backed secure storage like a TPM or Secure Enclave so private keys never leave the device in plaintext.
Question 85: In FIDO U2F (CTAP1), what is contained in the 'key handle' returned during the registration response?
- The user's public key encrypted with the server's public key
- Authenticator-specific data that allows the device to regenerate or locate the credential private key for that origin (Correct answer)
- The counter value and user presence byte combined
- A certificate chain linking the device key to the FIDO root CA
Correct answer: Authenticator-specific data that allows the device to regenerate or locate the credential private key for that origin
The U2F key handle is an opaque blob (up to 255 bytes) that the authenticator uses to find or reconstruct the private key for a given application ID, and it is passed back to the authenticator during authentication.
Question 86: What role does the private key play in FIDO authentication?
- It is used to encrypt data in transit
- It is transmitted to the server for validation
- It is stored securely on the device (Correct answer)
- It replaces the need for a public key
Correct answer: It is stored securely on the device
In FIDO authentication, the private key is generated and stored securely on the user's authenticator device, such as a smartphone's secure enclave or a hardware security key. It never leaves the device and is used to cryptographically sign authentication challenges. This ensures that the user's identity is proven without the private key ever being exposed to the server or potential attackers.
Question 87: During code review of a WebAuthn relying party, a developer notices the server skips verifying the 'rpIdHash' in the authenticator data. What risk does this introduce?
- Incompatibility with older FIDO U2F tokens
- Increased latency during registration
- An authenticator from a different origin could be accepted (Correct answer)
- Performance degradation
Correct answer: An authenticator from a different origin could be accepted
Skipping rpIdHash verification allows credentials bound to a different Relying Party ID to be accepted, breaking the origin-binding security property.
Question 88: What is scope creep?
- Uncontrolled expansion of project scope without corresponding adjustments (Correct answer)
- A type of project risk assessment
- A normal part of every project
- The planned addition of new features
Correct answer: Uncontrolled expansion of project scope without corresponding adjustments
Scope creep occurs when additional requirements are added without adjusting timeline, budget, or resources, potentially jeopardizing the project.
Question 89: What does the 'BE' (Backup Eligibility) flag in FIDO2 authenticatorData indicate?
- The authenticator has a backup battery in case of power failure
- The credential uses a backup encryption algorithm if the primary one fails
- The relying party has enabled credential backup in its policy settings
- The credential can be backed up and synchronized across devices (e.g., a passkey) (Correct answer)
Correct answer: The credential can be backed up and synchronized across devices (e.g., a passkey)
The BE flag, introduced with passkeys, indicates the credential's private key may be synchronized to other devices in a platform ecosystem.
Question 90: What security property does the 'origin' field in WebAuthn's clientDataJSON provide?
- It identifies the version of the WebAuthn API used by the browser
- It stores the user's account identifier for the relying party
- It binds the credential operation to the specific web origin, preventing cross-origin replay attacks (Correct answer)
- It proves the TLS certificate of the server has not been revoked
Correct answer: It binds the credential operation to the specific web origin, preventing cross-origin replay attacks
The origin field (e.g., 'https://example.com:443') is included in clientDataJSON and signed by the authenticator, ensuring the operation cannot be replayed against a different origin.
FIDO Certified Professional (FCP)
The FIDO Certified Professional (FCP) certification validates expertise in designing, implementing, and deploying FIDO authentication solutions, covering business requirements analysis, technical implementation, and FIDO protocol standards.
Exam Rules
- You can skip questions and return to them later
- Flag questions for review before submitting
- No feedback shown until you submit the entire exam
- Unanswered questions count as wrong — answer everything
- 10 pretest questions are mixed in and don't affect your score
- Timer auto-submits when time runs out
- Your progress is auto-saved every 30 seconds