FIDO Certified Professional (FCP) — Questions and Answers
Question 1: Which FIDO Alliance metadata document format provides relying parties with authenticator properties such as AAGUID, supported algorithms, and certification level?
- FIDO Metadata Statement (MDS entry) (Correct answer)
- FIDO Conformance Test Report
- CTAP Device Info Response
- 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 2: 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 3: A tester is verifying that an NFC authenticator correctly handles transport disconnection mid-operation. The expected CTAP behavior is:
- The authenticator buffers the operation and completes it on reconnection
- The authenticator stores partial state and resumes on the next NFC tap
- The operation is aborted and the authenticator returns to a ready state without completing the credential (Correct answer)
- The server automatically retries the operation on the next request
Correct answer: The operation is aborted and the authenticator returns to a ready state without completing the credential
CTAP requires that authenticators treat transport disconnection as an operation abort, returning to a clean state without partially creating credentials.
Question 4: A FIDO2 server needs to store backup-eligible credential metadata. Which WebAuthn authenticator flag indicates a credential can be backed up?
- UV (User Verification)
- BE (Backup Eligibility) (Correct answer)
- UP (User Presence)
- AT (Attested Credential Data)
Correct answer: BE (Backup Eligibility)
The BE flag in the authenticator data indicates the credential is eligible for cloud backup, which the RP should persist to enforce backup-aware policies.
Question 5: Which DNS record type is recommended to help secure FIDO relying party origins against subdomain takeover attacks?
- PTR records provide reverse DNS for authenticator IP validation
- CAA (Certification Authority Authorization) records restrict which CAs can issue certificates for the domain (Correct answer)
- AAAA records force IPv6-only connections
- MX records redirect FIDO metadata fetches to secure mail servers
Correct answer: CAA (Certification Authority Authorization) records restrict which CAs can issue certificates for the domain
CAA records prevent unauthorized CAs from issuing certificates for the RP domain, reducing subdomain takeover risk that could undermine origin binding.
Question 6: Which FIDO protocol enables two-factor authentication with security keys?
- FIDO UAF
- OpenID Connect
- FIDO U2F (Correct answer)
- LDAP
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 7: 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
- Symmetric AES encryption of the challenge
- A hash-based message authentication code (HMAC) using a shared secret
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 8: What is scope creep?
- A type of project risk assessment
- The planned addition of new features
- Uncontrolled expansion of project scope without corresponding adjustments (Correct answer)
- A normal part of every project
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 9: What does an authenticator status of 'REVOKED' in the FIDO MDS indicate?
- The authenticator's FIDO certification has expired and requires renewal through the FIDO Alliance
- The authenticator model has a known security vulnerability and credentials from it should no longer be trusted (Correct answer)
- The authenticator model's firmware is outdated and must be updated before it can be used
- The authenticator requires additional field testing before it can be accepted by relying parties
Correct answer: The authenticator model has a known security vulnerability and credentials from it should no longer be trusted
A 'REVOKED' MDS status means the authenticator model has been compromised or found to have a critical security flaw, and relying parties implementing MDS checks should reject credentials from such devices.
Question 10: What does the 'rpIdHash' field in FIDO2 authenticatorData represent?
- A SHA-256 hash of the relying party's TLS certificate
- An HMAC of the credential ID bound to the relying party
- The Base64url-encoded relying party display name
- A SHA-256 hash of the relying party identifier (origin domain) (Correct answer)
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 11: What is the significance of the 'user verification' flag (UV) in an authenticator data flags byte?
- It shows the credential was created with attestation
- It signals that backup eligibility is set
- It confirms the server validated the user's email
- It indicates the authenticator verified the user locally via biometric or PIN (Correct answer)
Correct answer: It indicates the authenticator verified the user locally via biometric or PIN
The UV flag in authenticator data indicates that the authenticator performed local user verification (e.g., biometric or PIN) before completing the ceremony.
Question 12: A relying party needs to support multiple user devices. How should the server data model handle multiple FIDO2 credentials per user account?
- Maintain a one-to-many relationship between user accounts and credential records (Correct answer)
- Hash all credentials together into a single field
- Store only the most recently registered credential
- Require one account per device
Correct answer: Maintain a one-to-many relationship between user accounts and credential records
A one-to-many relationship allows each user to register multiple authenticators (phone, laptop, hardware key) under a single account.
Question 13: A relying party server must store which credential data after a successful FIDO2 registration ceremony?
- The user's private key
- The authenticator's PIN
- The client data JSON hash only
- The credential ID and public key (Correct answer)
Correct answer: The credential ID and public key
The relying party stores the credential ID and the user's public key; the private key never leaves the authenticator.
Question 14: When a relying party receives an authentication assertion, which value must it increment and persist to prevent credential cloning?
- The credential's creation timestamp
- The user's session token
- The challenge nonce
- The authenticator's signature counter (Correct answer)
Correct answer: The authenticator's signature counter
The signature counter increments with each authentication; the relying party must verify it is higher than the stored value to detect cloned authenticators.
Question 15: What is account recovery's greatest challenge in a passwordless FIDO deployment?
- Providing secure re-enrollment when a user loses all registered authenticators (Correct answer)
- Storing too many public keys
- Syncing credentials across browsers
- 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 16: Which FIDO2 authenticator transport is defined to operate over Bluetooth Low Energy (BLE) for cross-device authentication scenarios?
- WebAuthn Level 3 hybrid transport
- FIDO UAF over NFC
- CTAP1/U2F over HID
- CTAP2 over caBLE (Cloud-Assisted BLE) (Correct answer)
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 17: Which biometric method is commonly used in FIDO authentication?
- Fingerprint scanning (Correct answer)
- Knowledge-based authentication
- Voice recognition
- Token-based authentication
Correct answer: Fingerprint scanning
Fingerprint scanning is a commonly used biometric method supported by FIDO authentication. FIDO authenticators can leverage built-in biometric sensors, such as fingerprint readers, to verify the user's presence and consent locally on their device. This allows for a convenient and secure authentication experience without transmitting the biometric data to a server.
Question 18: What does the 'requireResidentKey' (or 'residentKey: required') option in PublicKeyCredentialCreationOptions specify?
- That user verification is mandatory
- 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)
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 19: Which attestation type in FIDO2 uses a unique per-credential attestation key to preserve user privacy while still proving authenticator model?
- Full (Basic) Attestation
- None Attestation
- Self Attestation
- Anonymization CA Attestation (Correct answer)
Correct answer: Anonymization CA Attestation
Anonymization CA (AnonCA) attestation uses per-credential keys signed by a CA, so the RP cannot link credentials from the same authenticator to each other, preserving privacy.
Question 20: 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 generates the credential with UV=false and the RP must accept it
- 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
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 21: A FIDO2 database schema must enforce that the combination of (rpId, credential_id) is unique. What type of constraint achieves this?
- FOREIGN KEY constraint
- COMPOSITE UNIQUE constraint (Correct answer)
- DEFAULT constraint
- CHECK constraint
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 22: Which authentication method is primarily used in FIDO protocols?
- Biometric templates stored on a server
- Shared secret keys
- Public-key cryptography (Correct answer)
- Symmetric encryption
Correct answer: Public-key cryptography
FIDO protocols primarily use public-key cryptography for strong, phishing-resistant authentication. This method involves a pair of cryptographically linked keys: a private key stored securely on the user's device and a public key registered with the online service. When authenticating, the device uses the private key to sign a challenge from the service, verifying the user's identity without transmitting sensitive credentials.
Question 23: An enterprise requires that only authenticators with FIPS 140-2 Level 3 certification are trusted. Which FIDO mechanism enables enforcement of this policy?
- Enforcing PIN complexity via CTAP clientPin command
- Requiring the 'credProtect' extension level 3
- Checking the 'uv' flag in authenticatorData
- Using metadata from the FIDO Metadata Service (MDS) to filter by authenticator certification level (Correct answer)
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 24: What is 'RP ID' in the context of FIDO2, and what constraint governs its valid values?
- An arbitrary string chosen by the RP with no domain restrictions
- A globally unique UUID assigned by the FIDO Alliance to each relying party
- A domain string that must be a registrable domain suffix of or equal to the origin's effective domain (Correct answer)
- 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 25: What is the role of the 'aaguid' field in FIDO2 authenticator data?
- The user's unique identifier on the relying party
- A 16-byte identifier for the authenticator model, used to look up metadata (Correct answer)
- A globally unique ID for the individual credential
- An encrypted session token
Correct answer: A 16-byte identifier for the authenticator model, used to look up metadata
The AAGUID (Authenticator Attestation GUID) identifies the authenticator model (not the individual device), allowing the relying party to look up its metadata and capabilities.
Question 26: In FIDO metadata (MDS3), authenticator metadata entries are aggregated in a JWT whose payload contains a list. What is the algorithmic advantage of sorting this list by AAGUID?
- Allows parallel verification using divide and conquer
- Reduces JWT signature size
- Enables O(log n) binary search for a specific authenticator entry (Correct answer)
- Ensures CBOR encoding is shorter
Correct answer: Enables O(log n) binary search for a specific authenticator entry
A sorted list of entries allows O(log n) binary search when a relying party needs to look up metadata for a specific AAGUID.
Question 27: A FIDO2 relying party experiences a database breach. Which stored credential field poses the greatest risk if exposed to an attacker?
- Public key
- credential_id (Correct answer)
- user_handle
- aaguid
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 28: What is the primary purpose of attestation in FIDO2/WebAuthn?
- To prove the authenticity and integrity of an authenticator to a relying party (Correct answer)
- To verify the identity of the user during login
- To validate the relying party's domain against a whitelist
- To encrypt the public key during credential registration
Correct answer: To prove the authenticity and integrity of an authenticator to a relying party
Attestation allows a relying party to cryptographically verify that the authenticator is genuine and was manufactured by a trusted vendor.
Question 29: What is the role of the 'aaguid' field in a WebAuthn attestation object?
- It is a random value generated per-credential to ensure unlinkability
- It identifies the authenticator model/type, enabling relying parties to look up its metadata and certification status (Correct answer)
- It serves as the credential ID that uniquely identifies the user's public key
- It contains the authenticator's serial number for warranty and support tracking
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 30: What is the main feature of FIDO2?
- It enables passwordless authentication (Correct answer)
- It enhances traditional password security
- It relies solely on SMS authentication
- It is limited to biometric authentication only
Correct answer: It enables passwordless authentication
FIDO2 is the latest generation of FIDO specifications, building upon its predecessors to enable robust passwordless authentication experiences across various platforms and devices. By integrating with web browsers and operating systems via WebAuthn, FIDO2 allows users to log in securely using biometrics, PINs, or external security keys without ever typing a password. This eliminates the vulnerabilities associated with passwords and improves user convenience.
Question 31: Which FIDO2 extension allows a relying party to request a cryptographic proof that the credential is stored in secure hardware?
- hmac-secret extension
- appid extension
- uvm extension
- credProtect extension (Correct answer)
Correct answer: credProtect extension
The credProtect extension sets credential protection policies, while device-bound attestation provides hardware storage proof; the uvm extension reports user verification methods used.
Question 32: Which FIDO2 attestation format uses an X.509 certificate chain signed by the authenticator manufacturer to prove device provenance?
- Packed attestation with self attestation
- None — FIDO2 never uses X.509 certificates
- FIDO U2F attestation format (Correct answer)
- Android Key attestation
Correct answer: FIDO U2F attestation format
The FIDO U2F attestation format uses the authenticator's batch attestation certificate, an X.509 cert signed by the manufacturer's CA.
Question 33: How does FIDO's authentication model prevent 'pass-the-hash' style attacks that are common in enterprise environments?
- FIDO uses asymmetric challenge-response; there is no reusable hash or token that can be captured and replayed to impersonate a user (Correct answer)
- FIDO hashes credentials using a different algorithm each time
- FIDO stores hashes in a hardware security module that prevents extraction
- FIDO integrates with Active Directory to prevent lateral movement
Correct answer: FIDO uses asymmetric challenge-response; there is no reusable hash or token that can be captured and replayed to impersonate a user
Unlike NTLM or legacy protocols where capturing a credential hash allows authentication, FIDO responses are bound to a unique challenge and cannot be replayed, eliminating the pass-the-hash attack surface.
Question 34: What is the maximum credential ID length, in bytes, defined by the WebAuthn Level 2 specification?
- 1023 bytes (Correct answer)
- 4096 bytes
- 64 bytes
- 256 bytes
Correct answer: 1023 bytes
The WebAuthn spec sets a maximum credential ID length of 1023 bytes; relying parties should reject any credential ID exceeding this limit.
Question 35: Which of the following is a FIDO-supported authentication factor?
- Security questions
- SMS one-time passwords
- Hardware security keys (Correct answer)
- Username and password
Correct answer: Hardware security keys
Hardware security keys are a core FIDO-supported authentication factor. These physical devices, often resembling USB drives, securely store cryptographic keys used for authentication. They provide a strong, phishing-resistant method for verifying a user's identity, either as a second factor or as a complete passwordless solution, by requiring physical presence and user interaction.
Question 36: Which FIDO2 extension allows an authenticator to report the method used for user verification (e.g., fingerprint vs. PIN)?
- hmac-secret
- credProtect
- uvm (User Verification Method) (Correct answer)
- txAuthSimple
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 37: Which type of testing specifically validates that a FIDO2 authenticator's attestation statement is signed by a trusted root in the FIDO Metadata Service?
- Regression testing
- Smoke testing
- Attestation verification testing (Correct answer)
- Load testing
Correct answer: Attestation verification testing
Attestation verification testing confirms that the server correctly validates attestation statements against trusted roots from the FIDO MDS.
Question 38: Which attestation type provides the strongest assurance that an authenticator is genuine and meets specific security requirements during registration?
- Surrogate attestation
- Self attestation
- None attestation
- Full (basic) attestation (Correct answer)
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 39: A QA team is testing large blob (largeBlob) extension support on a FIDO2.1 authenticator. Which test case is most critical for security validation?
- Test that blobs are compressed before storage
- Verify that largeBlob data from one credential cannot be accessed by a different credential on the same authenticator (Correct answer)
- Confirm the maximum blob size exceeds 64KB
- Ensure the blob is transmitted in plaintext for debugging purposes
Correct answer: Verify that largeBlob data from one credential cannot be accessed by a different credential on the same authenticator
Credential isolation for largeBlob storage is critical; each credential's blob must be inaccessible to other credentials to prevent data leakage.
Question 40: What is the primary reason FIDO2 uses asymmetric (public-key) cryptography rather than symmetric shared secrets like TOTP?
- 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
- Symmetric cryptography cannot produce digital signatures
- Asymmetric cryptography is required by TLS 1.3 and cannot be avoided
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 41: 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 server must store the user's PIN for future verification
- 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 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 42: What data structure does a FIDO2 relying party maintain to prevent credential replay by tracking which assertion challenge nonces have been consumed?
- Min-heap of pending challenges
- Circular buffer of size 1
- Unlimited append-only log
- Bloom filter or set of used challenge values with TTL (Correct answer)
Correct answer: Bloom filter or set of used challenge values with TTL
Relying parties use a set (often with TTL expiry) or Bloom filter to record consumed challenges and reject any replayed assertion that reuses a nonce.
Question 43: What is the difference between compiled and interpreted languages?
- There is no practical difference
- Interpreted languages cannot be used for web development
- Compiled code is translated to machine code before execution; interpreted code is translated line by line during execution (Correct answer)
- Compiled languages are always faster
Correct answer: Compiled code is translated to machine code before execution; interpreted code is translated line by line during execution
Compiled languages are fully translated before execution, while interpreted languages are translated during runtime.
Question 44: Why does FIDO2 specify that the clientDataHash (hash of clientDataJSON) — not the raw clientDataJSON — is sent to the authenticator for signing?
- To prevent the authenticator from learning the origin URL and session details, preserving privacy
- To reduce the payload size transmitted over the CTAP2 transport layer (Correct answer)
- Because authenticators lack the processing power to handle variable-length JSON
- To allow the authenticator to validate the JSON structure independently
Correct answer: To reduce the payload size transmitted over the CTAP2 transport layer
Transmitting only the hash over CTAP keeps bandwidth low and is sufficient since the server verifies the full clientDataJSON separately.
Question 45: A FIDO2 RP database needs to prevent two concurrent registrations from inserting the same credential_id. Which mechanism is most reliable?
- UNIQUE database constraint on credential_id with transaction rollback on conflict (Correct answer)
- Periodic batch deduplication job
- Manual admin review of duplicate submissions
- Application-layer mutex lock
Correct answer: UNIQUE database constraint on credential_id with transaction rollback on conflict
A database-enforced UNIQUE constraint guarantees atomicity at the storage layer, eliminating race conditions that application locks cannot fully prevent.
Question 46: In FIDO UAF (the predecessor protocol), what term describes a transaction that requires the user to explicitly confirm a specific action using their authenticator?
- Transaction confirmation (Correct answer)
- Ambient authentication
- Silent authentication
- Passive assertion
Correct answer: Transaction confirmation
UAF transaction confirmation presents a human-readable transaction description to the user, who must actively confirm it with their authenticator, binding the authentication to the specific action.
Question 47: During a security audit, an auditor flags that the relying party accepts 'none' attestation for high-assurance employee logins. What should the development team do?
- Enable 'none' attestation only on mobile platforms
- Document the exception and continue
- Switch to password-based authentication instead
- Restrict accepted attestation types to 'direct' or 'indirect' and update the attestation policy (Correct answer)
Correct answer: Restrict accepted attestation types to 'direct' or 'indirect' and update the attestation policy
High-assurance use cases require verifiable attestation; accepting 'none' means the server cannot verify the authenticator's provenance or security characteristics.
Question 48: What FIDO concept ensures that a credential registered on example.com cannot be used to authenticate on attacker.com?
- Cryptographic origin binding via the relying party ID (Correct answer)
- Certificate transparency logging
- User presence check
- Rate limiting on authentication attempts
Correct answer: Cryptographic origin binding via the relying party ID
Credentials are cryptographically bound to the relying party ID (rpId), which maps to a specific origin, making cross-site credential use cryptographically impossible.
Question 49: Which FIDO2 client-side JavaScript API method initiates the credential creation ceremony?
- navigator.credentials.create() (Correct answer)
- window.fido.register()
- navigator.credentials.get()
- navigator.webauthn.create()
Correct answer: navigator.credentials.create()
navigator.credentials.create() is the WebAuthn API call used to initiate the FIDO2 registration ceremony and create a new credential.
Question 50: Which FIDO specification defines how authenticators signal support for 'PIN/UV Auth Protocols' and negotiate which protocol version to use with the platform?
- FIDO Metadata Service API v3
- CTAP2 specification, authenticatorGetInfo response (pinUvAuthProtocols field) (Correct answer)
- FIDO UAF Protocol Specification v1.2
- WebAuthn Level 2, Section 6.3
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 51: 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?
- WebAuthn silent credential discovery via Bluetooth
- Passkey hybrid (cross-device authentication) using CTAP2 caBLE/hybrid transport (Correct answer)
- FIDO U2F NFC tap-to-authenticate
- FIDO UAF Silent Authentication
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 52: What is the function of the 'allowCredentials' list sent by a relying party during a FIDO2 authentication request?
- To set the minimum security level for authenticators
- 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 list users allowed to log in to the site
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 53: Which security measure protects private keys in FIDO authentication?
- Secure hardware storage (Correct answer)
- Cloud-based key distribution
- Manual user entry
- Server-side key storage
Correct answer: Secure hardware storage
FIDO private keys are protected by secure hardware storage, such as a Trusted Platform Module (TPM), Secure Enclave, or a dedicated hardware security key. This ensures that the private key is generated, stored, and used in an isolated environment, making it extremely difficult for malware or attackers to extract or compromise it. This hardware-backed security is a cornerstone of FIDO's robust protection.
Question 54: What is 'attestation' in the context of FIDO2 registration?
- The digital signature applied to the user's username during account creation
- A cryptographic proof that a specific model of authenticator generated the credential (Correct answer)
- The server's confirmation that the user's identity has been verified
- The process of encrypting the credential public key before sending it to the server
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 55: Which network protocol is used by CTAP2 when a FIDO2 authenticator connects via USB HID?
- HTTP/2 over USB tunneling
- USB HID is a local bus protocol, not a network protocol — no IP layer is involved (Correct answer)
- USB CDC-ACM serial over IP
- TCP/IP over USB RNDIS
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 56: In the WebAuthn specification, what does the 'userHandle' returned in an authentication assertion allow the relying party to do?
- Determine which CTAP protocol version was used
- Verify the authenticator's attestation certificate chain
- Identify the user account without exposing the username in the credential ID (Correct answer)
- Confirm that user presence was verified during authentication
Correct answer: Identify the user account without exposing the username in the credential ID
The userHandle (set during registration as user.id) lets the RP identify which user account the credential belongs to, keeping the credential ID opaque and preventing username enumeration.
Question 57: What is the AAGUID in a FIDO2 attestation, and what purpose does it serve?
- A 128-bit identifier representing the authenticator model, used to retrieve metadata from the FIDO MDS (Correct answer)
- The relying party's unique identifier encoded in the authenticator response
- A cryptographic nonce embedded in the attestation to prevent replay of the attestation object
- A per-credential unique identifier used to look up the credential on the server
Correct answer: A 128-bit identifier representing the authenticator model, used to retrieve metadata from the FIDO MDS
The AAGUID (Authenticator Attestation GUID) is a 128-bit value identifying the authenticator model, which relying parties use to query the FIDO Metadata Service for trust and certification information.
Question 58: Which risk does storing FIDO credential IDs in plaintext server logs introduce?
- Credential IDs could be used in targeted authentication probing to identify registered users (Correct answer)
- Credential IDs contain private keys that could be extracted
- Credential IDs expire and logging them wastes storage
- No risk; credential IDs are public values with no sensitivity
Correct answer: Credential IDs could be used in targeted authentication probing to identify registered users
While credential IDs are not secret, logging them in plaintext could allow attackers who access logs to probe for specific users' registered credentials.
Question 59: What is the purpose of the 'excludeCredentials' parameter in a FIDO2 registration ceremony?
- It blocks specific authenticator models from being used based on their AAGUID
- It prevents registering duplicate credentials for the same relying party on the same authenticator (Correct answer)
- It specifies cryptographic algorithms that are explicitly forbidden for the new credential
- It lists credentials that must be deleted from the authenticator before registration can proceed
Correct answer: It prevents registering duplicate credentials for the same relying party on the same authenticator
By including existing credential IDs in excludeCredentials, the server prevents the same authenticator from creating multiple credentials for the same account.
Question 60: Which FIDO2 authenticator selection criteria option should an enterprise relying party use when hardware security keys are required for compliance?
- authenticatorAttachment: 'cross-platform' (Correct answer)
- userVerification: 'discouraged'
- residentKey: 'preferred'
- authenticatorAttachment: 'platform'
Correct answer: authenticatorAttachment: 'cross-platform'
Setting authenticatorAttachment to 'cross-platform' restricts registration to roaming authenticators such as hardware security keys, excluding built-in platform authenticators.
Question 61: Which protocol is the foundation of FIDO authentication?
- OAuth 2.0
- Kerberos
- SAML
- FIDO UAF (Correct answer)
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 62: What is the significance of the signature counter in FIDO U2F and FIDO2 authenticators?
- It allows relying parties to detect cloned authenticators by identifying non-sequential counter values (Correct answer)
- It counts how many credentials are stored on the authenticator
- It tracks the number of failed authentication attempts to trigger lockout
- It measures the cryptographic strength of each signature produced
Correct answer: It allows relying parties to detect cloned authenticators by identifying non-sequential counter values
Each authentication increments the counter; a server detecting a lower-than-expected value infers the authenticator may have been cloned.
Question 63: What does 'none' attestation convey in WebAuthn?
- An error state indicating the authenticator failed its self-test before attesting
- An attestation type reserved exclusively for platform authenticators built into devices
- No attestation information is provided, making it impossible to verify the authenticator's origin (Correct answer)
- A deprecated format that has been replaced by packed attestation in modern deployments
Correct answer: No attestation information is provided, making it impossible to verify the authenticator's origin
The 'none' attestation format means the authenticator provides no statement about its provenance, so the relying party cannot determine what kind of authenticator was used.
Question 64: When threat modeling a FIDO2 relying party, which STRIDE category best describes an attacker cloning a software authenticator's private key material?
- Repudiation
- Spoofing (Correct answer)
- Tampering
- Elevation of privilege
Correct answer: Spoofing
Cloning private key material allows an attacker to impersonate a legitimate authenticator, which is a spoofing threat.
Question 65: During a FIDO2 credential creation, what determines whether a credential is stored as a 'server-side credential' versus a 'discoverable credential' (resident key)?
- The size of the credential ID returned by the authenticator
- The requireResidentKey or residentKey hint in the authenticatorSelection criteria (Correct answer)
- Whether the authenticator uses CTAP1 or CTAP2 protocol version
- The attestation conveyance preference in the creation options
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 66: In CTAP2, what is the maximum number of credentials that can be returned in a single 'authenticatorGetNextAssertion' response sequence?
- Exactly 5 credentials per CTAP2 specification limit
- Up to the number indicated by the numberOfCredentials field in the first getAssertion response (Correct answer)
- Up to 20 credentials as defined by the FIDO Alliance
- Only 1 credential per session regardless of stored credentials
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 67: What is the purpose of the 'timeout' parameter in a FIDO2 PublicKeyCredentialRequestOptions object?
- To rate-limit authentication attempts per minute
- To set when the credential expires permanently
- To define the maximum session length after successful authentication
- To specify how long the browser should wait for user interaction before aborting the authentication ceremony (Correct answer)
Correct answer: To specify how long the browser should wait for user interaction before aborting the authentication ceremony
The timeout parameter tells the browser how many milliseconds to wait for the user to interact with their authenticator before the ceremony is aborted, improving UX without leaving open-ended prompts.
Question 68: In a zero-trust architecture, how does FIDO2 authentication support continuous verification principles?
- By providing strong, hardware-bound authentication assertions that can satisfy step-up auth requests (Correct answer)
- By sharing credentials across all enterprise services automatically
- By removing the need for device health checks
- By issuing long-lived session cookies that bypass re-authentication
Correct answer: By providing strong, hardware-bound authentication assertions that can satisfy step-up auth requests
FIDO2 assertions are cryptographically strong and hardware-bound, making them suitable for satisfying step-up authentication challenges in zero-trust environments that require continuous verification.
Question 69: During integration testing of a FIDO UAF client, the test fails because the ASM (Authenticator Specific Module) returns error code 0x06. What does this typically indicate?
- User verification was cancelled
- No suitable authenticator was found (Correct answer)
- The command is not supported
- Key storage is full
Correct answer: No suitable authenticator was found
FIDO UAF ASM error code 0x06 (NO_SUITABLE_AUTHENTICATOR) means no authenticator meeting the policy requirements was discovered.
Question 70: Which FIDO document specifies the security requirements that authenticators must meet to achieve FIDO Authenticator Certification at Level 2 (L2)?
- The FIDO Authenticator Security Requirements (FIDO-AUTH-SEC-REQ) specification (Correct answer)
- The NIST SP 800-63B Authenticator Assurance Level 2 guidelines only
- The CTAP2 specification's normative conformance section
- The WebAuthn W3C Recommendation, Appendix B
Correct answer: The FIDO Authenticator Security Requirements (FIDO-AUTH-SEC-REQ) specification
The FIDO Authenticator Security Requirements document defines the hardware and software security properties (e.g., secure element, restricted operating environment) needed for each FIDO certification level from L1 to L3+.
Question 71: 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
- Require the relying party to provide a PIN before accepting the credential
- 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)
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 72: What is the purpose of the `excludeCredentials` parameter in a WebAuthn registration request?
- To stop credentials from being shared across different origins
- To require user verification before a credential can be created
- To block the use of weak cryptographic algorithms during registration
- To prevent a user from registering the same authenticator twice for one account (Correct answer)
Correct answer: To prevent a user from registering the same authenticator twice for one account
`excludeCredentials` lists credential IDs already registered for the user; authenticators that hold a matching credential will refuse to create a duplicate.
Question 73: When testing a FIDO2 authenticator's resident key (discoverable credential) functionality, what is the primary concern?
- Confirming the PIN length meets minimum requirements
- Verifying the public key is exported correctly to the server
- Checking that the attestation certificate chain is valid
- Ensuring the credential is stored on the authenticator and can be listed without a prior user ID (Correct answer)
Correct answer: Ensuring the credential is stored on the authenticator and can be listed without a prior user ID
Discoverable credentials (resident keys) must be stored on the authenticator so the relying party can authenticate without supplying a credential ID.
Question 74: In FIDO U2F (CTAP1), what is contained in the 'key handle' returned during the registration response?
- The counter value and user presence byte combined
- 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)
- 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 75: How does the public key in FIDO authentication improve security?
- It replaces biometric authentication
- It generates one-time passwords
- It verifies authentication requests (Correct answer)
- It encrypts user passwords
Correct answer: It verifies authentication requests
The public key in FIDO authentication is registered with the online service and is used to verify the cryptographic signature generated by the user's private key during an authentication request. This verification process confirms that the request originated from the legitimate user's device without requiring the server to ever know the private key. This separation of keys significantly enhances security by preventing credential compromise even if the server is breached.
Question 76: What is a key advantage of hardware security keys in FIDO authentication?
- They store user passwords securely
- They require physical possession for authentication (Correct answer)
- They rely on SMS-based verification
- They work only on a single device
Correct answer: They require physical possession for authentication
A key advantage of hardware security keys in FIDO authentication is that they require physical possession by the legitimate user. This 'something you have' factor, combined with a 'something you know' (PIN) or 'something you are' (biometric) to unlock the key, makes them extremely resistant to remote attacks like phishing and malware. The physical presence requirement significantly raises the bar for attackers.
Question 77: In CTAP2, how is the credential private key protected against extraction when using a hardware authenticator?
- The private key is generated and stored entirely within the authenticator's secure element and never exported (Correct answer)
- The private key is encrypted with the user's PIN and stored on the server
- The private key is wrapped with the relying party's public key and stored in the browser
- The private key is split between the authenticator and the relying party using threshold cryptography
Correct answer: The private key is generated and stored entirely within the authenticator's secure element and never exported
Hardware authenticators store the private key inside a tamper-resistant secure element, making extraction computationally infeasible.
Question 78: 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 79: What is an AAGUID in the context of FIDO2 authenticators?
- An Authenticator Attestation Globally Unique Identifier that identifies a specific authenticator model (Correct answer)
- An Asymmetric Algorithm Global Unique Index for cataloging cryptographic key types
- An Advanced Authentication Gateway Universal Identifier assigned to each relying party
- An Access Authorization Group User ID assigned to a user during enrollment
Correct answer: An Authenticator Attestation Globally Unique Identifier that identifies a specific authenticator model
The AAGUID is a 128-bit identifier that uniquely identifies a specific model of authenticator, allowing relying parties to look up the corresponding metadata statement.
Question 80: What privacy concern arises specifically from using Basic attestation with batch attestation certificates?
- The shared batch certificate across an authenticator model can be used to correlate registrations across different relying parties (Correct answer)
- Basic attestation transmits the user's full legal identity to the FIDO Alliance for compliance logging
- It exposes the user's IP address to the authenticator manufacturer during every authentication event
- Basic attestation requires transmitting user biometric templates to the relying party server
Correct answer: The shared batch certificate across an authenticator model can be used to correlate registrations across different relying parties
Because all devices of the same batch share a single attestation certificate, a colluding set of relying parties could use that certificate to link registrations from the same device across different sites.
Question 81: What does the FIDO Metadata Service (MDS) primarily provide to relying parties?
- A certificate revocation list for compromised user identities
- Real-time credential revocation status for individual user accounts
- Metadata statements describing authenticator properties, certifications, and trust anchors (Correct answer)
- A directory of registered FIDO relying parties and their policies
Correct answer: Metadata statements describing authenticator properties, certifications, and trust anchors
The FIDO MDS provides metadata statements that describe authenticator capabilities, certification level, and the root certificates needed to verify attestation signatures.
Question 82: What is the DRY principle in programming?
- Debug and Run Yearly
- Delete Redundant Yields
- Document, Review, Yield
- Dont Repeat Yourself — avoid code duplication (Correct answer)
Correct answer: Dont Repeat Yourself — avoid code duplication
DRY means every piece of knowledge should have a single, unambiguous representation in a system, reducing redundancy.
Question 83: In a FIDO2 relying party database, what is the correct data type to use for storing a credential's public key?
- VARCHAR(255)
- BLOB or BYTEA (binary large object) (Correct answer)
- INTEGER
- TEXT with Base64 encoding only
Correct answer: BLOB or BYTEA (binary large object)
Public keys are binary data and must be stored as a binary large object (BLOB/BYTEA) to preserve byte-exact fidelity.
Question 84: A FIDO2 server's FIDO Metadata Service (MDS) cache has not been refreshed in 90 days. What is the primary risk?
- Users will be prompted to re-register unnecessarily
- Registration latency will increase significantly
- The server will reject all authenticators regardless of status
- Newly revoked or compromised authenticator models may be accepted as trustworthy (Correct answer)
Correct answer: Newly revoked or compromised authenticator models may be accepted as trustworthy
The MDS includes revocation data; a stale cache means the server cannot detect authenticators whose security has been compromised since the last update.
Question 85: In a FIDO2 server implementation, what HTTP response should be returned if the client-side origin does not match the registered rpId?
- 403 Forbidden
- 400 Bad Request indicating an origin mismatch (Correct answer)
- 401 Unauthorized
- 200 OK with an error message in the body
Correct answer: 400 Bad Request indicating an origin mismatch
An origin mismatch indicates a potential attack or misconfiguration; the server should return 400 Bad Request since the request itself is malformed relative to the expected registration.
Question 86: What is the primary IAM benefit of replacing passwords with FIDO passkeys for enterprise employees?
- Reducing the number of user accounts needed
- Removing the password attack surface (phishing, credential stuffing, reuse) (Correct answer)
- Eliminating the need for multi-factor authentication entirely
- Enabling anonymous authentication
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 87: During which SDLC phase should a developer first integrate FIDO2 WebAuthn library dependencies into a project?
- Requirements and design (Correct answer)
- Production deployment
- User acceptance testing
- Post-release maintenance
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 88: What is an algorithm?
- A step-by-step procedure for solving a problem or accomplishing a task (Correct answer)
- A hardware component of a computer
- A type of programming language
- A network protocol
Correct answer: A step-by-step procedure for solving a problem or accomplishing a task
An algorithm is a finite sequence of well-defined instructions for solving a specific problem or performing a computation.
Question 89: During interoperability testing between a CTAP2.1 authenticator and a CTAP2.0 client library, which backward compatibility requirement must be verified?
- Both parties must negotiate a common extension set before authenticating
- The CTAP2.1 authenticator must correctly respond to CTAP2.0 commands without requiring CTAP2.1-specific fields (Correct answer)
- The authenticator must downgrade its cryptographic algorithms to CTAP2.0 defaults
- The CTAP2.0 client must upgrade to CTAP2.1 before any communication
Correct answer: The CTAP2.1 authenticator must correctly respond to CTAP2.0 commands without requiring CTAP2.1-specific fields
CTAP2.1 is backward compatible with CTAP2.0, meaning authenticators must handle CTAP2.0 commands correctly even when supporting additional CTAP2.1 features.
Question 90: Which field in the CTAP2 authenticatorMakeCredential response allows a relying party to verify that the authenticator correctly processed the excludeCredentials list?
- There is no direct field; the relying party infers compliance from successful completion without a CTAP2 error (0x19 credentialExcluded) (Correct answer)
- The credentialId field in the attestedCredentialData
- The extensions output map includes an excludeCredentialsProcessed boolean
- The attestation statement's x5c chain contains an OID indicating exclusion check compliance
Correct answer: There is no direct field; the relying party infers compliance from successful completion without a CTAP2 error (0x19 credentialExcluded)
If the authenticator holds a credential matching the excludeCredentials list, it returns CTAP2 error code 0x19 (CTAP2_ERR_CREDENTIAL_EXCLUDED) rather than creating a new credential; successful completion implies the list was checked.
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