5.8 Firmware Specifics
This section describes features enabled by the 5.8 firmware. For additional details specific to supported protocols, see Protocols and Applications. This firmware update is a toolkit expansion for developer authentication workflows, see Yubico’s YubiLab GitHub Repository Build with Us.
- The 5.8 firmware for the YubiKey 5 Series has a number of new and improved FIDO2 features that are available for the first time on the multi-protocol YubiKey 5.
- YubiKey 5.8 supports all of the capabilities of YubiKey 5.7.4 and expands the use of passkeys specific for developer and platform use cases.
- There have been no material changes to the other protocols, such as PIV and YubiOTP in firmware 5.8.
5.8 Features Summary
YubiKey 5.8 firmware enables hardware-backed root of trust for secure digital identity and financial transactions, including privacy-preserving, human-in-the-loop authorization, and passkey-based signatures.
In addition to the YubiKey 5 Series, the features and capabilities listed in the table below, apply to both Enterprise and non-enterprise editions of the Security Keys Series, and both Multi-Protocol and FIDO editions of the YubiKey Bio Series, unless otherwise indicated.
Firmware 5.8 Capabilities
CTAP 2.3, where noted
|
YubiKey 5
(Std, CCN)
|
YubiKey 5
Enhanced PIN
|
Security Key
Series
|
YubiKey Bio
Series
|
|---|---|---|---|---|
| Secure payments, Document Signing, Digital Wallets, Credential, Agentic approval | ||||
Secure Payment Confirmation
(SPC)
|
Yes | Yes | Yes | Yes |
Third-party payment CTAP extension
thirdPartyPayment |
Yes | Yes | Yes | Yes |
WebAuthn Signing Extension
previewSign (Preview only) |
Yes | Yes | Yes | Yes |
Asynchronous Remote Key
Generation (ARKG)
|
Yes | Yes | Yes | Yes |
| Pseudo-Random Function (PRF) support | ||||
MakeCredential CTAP extensionhmac-secret-mc |
Yes | Yes | Yes | Yes |
| Enterprise Credential Management, Multiple Environments | ||||
Persistent Credential
Management Read Only (PCMR)
CTAP
pinUvAuthToken permission |
Yes | Yes | Yes | Yes |
Persistent PIN User Access
Token (PPUAT)
|
Yes | Yes | Yes | Yes |
Enroll YubiKey through
Enroll app (LEA)
|
Yes | Yes | Yes | Yes |
FIDO over Chip Card Interface
Device (CCID), USB & smart card
SCP11b secure channel
|
Yes | Yes | Yes | Yes |
YubiHSM Auth credential editing
|
Yes | Yes | – | – |
| Conditional Mediation for Security Keys | ||||
CTAP
authenticatorGetInfo APIencCredStoreState |
Yes | Yes | Yes | Yes |
CTAP
authenticatorGetInfo APIencIdentifier |
Yes | Yes | Yes | Yes |
| PIN and User Verification | ||||
CTAP
authenticatorGetInfo APImaxPINLength |
Yes | Yes | Yes | Multi-Protocol
Edition only
|
CTAP
authenticatorGetInfo APIpinComplexityPolicy |
Yes | Yes | Yes | Yes |
CTAP
authenticatorGetInfo APIpinComplexityPolicyURL |
Yes | Yes | Yes | Yes |
CTAP
authenticatorGetInfo APIuvCountSinceLastPinEntry |
– | – | – | Yes |
| YubiKey Reset Discovery | ||||
CTAP
authenticatorGetInfo APIlongTouchForReset |
Yes | Yes | Yes | Yes |
CTAP
authenticatorGetInfo APItransportsForReset |
Yes | Yes | Yes | Yes |
| Enterprise Attestation: RPID storage, Multiple IdPs, Post-Quantum Cryptography (PQC) | ||||
Enterprise Attestation RPIDs
from 2 to 16.
|
Yes | Yes | Enterprise
Edition only
|
Yes |
CTAP
authenticatorGetInfo APIattestationFormats |
Yes | Yes | Enterprise
Edition only
|
Yes |
CTAP
authenticatorMakeCredential APIattestationFormatsPreference |
Yes | Yes | Enterprise
Edition only
|
Yes |
Note
- YubiKey FIPS series remains on the NIST 140-3 validated firmware version 5.7.4. This means that YubiKeys on 5.8 are not FIPS keys, though they share the cryptographic module major functions.
- Security Key Series - Enterprise Edition and Yubico Bio Series - Multi-Protocol Edition, both require subscription with YubiKey as a Service.
- ARKG-related
previewSigncode and test utilities are experimental. Do not use this for production cryptographic guidance. - As of YubiKey 5.8, YubiHSM Auth credential can be changed without deleting it, then recreating it.
CTAP 2.3 Features
The Client to Authenticator Protocol (CTAP) 2.3 update enhances YubiKey functionality by improving user experience, enterprise scalability, and platform integration. Key benefits include streamlined passkey workflows with Conditional Mediation, seamless PRF-based credential management, support for Secure Payment Confirmation, expanded RPID storage for enterprises, and improved PIN management and security features. See the FIDO Alliance CTAP FIDO2 Specifications for authenticator API descriptions. See also, .NET YubiKey SDK: YubiKey API reference.
By implementing CTAP 2.3, Yubico addresses key customer challenges across user experience, enterprise credential management, and modern workflows like payments and wallet integration.
These features deliver:
- Simplified UX: Seamless passkey workflows, reducing friction for end-users.
- Enterprise Scalability: Increased flexibility and ease of management for complex enterprise environments.
- Future-Ready Innovation: Support for emerging standards like PRF-based wallets and Secure Payment Confirmation.
- Improved Security and Integration: Enhanced platform features and PIN management workflows, ensuring long-term usability and security.
- Long touch for Reset: user setting of long touch reset allowing the user to enable long touch for reset if it is disabled by default (in our case it is a prepers only option and off by default). See Long touch for Reset.
- PIN Complexity Extension:
pinComplexityPolicyextension. See PIN Complexity Extension (pinComplexityPolicy).
Attestation Formats
YubiKey Firmware 5.8 with CTAP 2.3 supports a post-quantum enabled ecosystem, attestationFormatsPreference option in authenticatorGetInfo. This allows greater control and flexibility in determining the capabilities of authenticators. Currently more of a future proofing feature, it allows potential expansion as alternate attestation formats become available.
attestationFormats (0x16) communicates supported attestation formats, enabling platforms to prepare for future features like post-quantum cryptography (PQC). Allows us to skip doing attestation signatures that the platform then strips if format = none.
See CTAP 2.3 authenticatorGetInfo.
Conditional Mediation for Security Keys
The YubiKey 5.8 contains a number of Client to Authenticator Protocol (CTAP) 2.3 features that can collectively be used to enable conditional mediation for credentials that are stored in security keys, instead of software-based passkey providers. Use cases include:
- Enable platforms to list credentials stored on currently connected hardware security keys during conditional mediation for passkeys.
- Enable platforms to cache credentials, that have been previously used to successfully authenticate to a specific relying party (RP), to list credentials stored on known hardware security keys during conditional mediation for passkeys, without storing identifiers that can be used to identify or correlate security keys.
CTAP APIs include:
encCredStoreStateencIdentifierencIdentifier(0x19)
By implementing these CTAP 2.3 and YubiKey firmware 5.8 options, platforms can deliver a much smoother user experience, reducing the number of user interactions needed, while mitigating tracking, as well as expanding options for safe credential selection and identification, without granting the ability to delete credentials.
Platforms and applications can enumerate the credentials on a hardware key without risk of deletion and reduce the number of authentication events required, allowing IDPs and Password Managers to deliver a smooth flow between applications and services.
See CTAP authenticatorGetInfo.
encCredStoreState
Introduces an indicator in GetInfo that allows the platform to know if the state of the credentials on the key have changed since the last time that they were cached. This allows platforms a method for checking if the credential has changed when they use Persistent PIN User Access Token (PPUAT) to enable autofill and secure payment confirmation flows.
The value is a byte value containing iv || ct.
Where:
ctis the AES-128-CBC encryption of (128-bit credential store state) using HKDF-SHA-256:
- salt = 32 zero bytes
- IKM = persistentPinUvAuthToken
- L = 16
- info = “encCredStoreState”
ivThe encryption iv must be regenerated for each output ofGetInfo
encIdentifier
- Provides a stable, device-unique identifier to a platform but it is always encrypted with a per-device secret (
persistentPinUvAuthToken) to prevent cross-origin tracking. Each timeGetInfois called, the authenticator returns a value that changes. A platform with a valid Persistent PIN User Access Token (PPUAT) can validate this value, confirming its authorization. - Returned in
GetInfoas part of support for conditional mediation with hardware authenticators.
encIdentifier (0x19)
The GetInfo feature supports privacy-preserving cached credential management, helping platforms identify the correct authenticator without persistent tracking.
Persistent PIN User Access Token (PPUAT)
YubiKey Firmware 5.8 with CTAP 2.3 provides a new type of access token that can be acquired via PIN Protocol v2. This protocol enables the platform to acquire a long term access token that can be used to identify individual credentials on a hardware security key.
PersistentPinUvAuthToken (PPUAT) enables platforms to list discoverable credentials from YubiKeys without requiring repeated PIN entry.
This means that users can provide the passkey validation on login and the platform can use the persistent PIN to authenticate the user over multiple clicks and buried menus. Users do not have to constantly re-authenticate each move within a logged in session.
The access token simplifies workflows by delivering an autofill-like experience for YubiKey passkeys, aligning security key usability with password managers and platform credentials.
See CTAP authenticatorClientPIN.
Persistent Credential Management Read Only (PCMR) Permission
YubiKey Firmware 5.8 with CTAP 2.3 provides new permission that can be assigned to a Persistent Credential Management Read Only (PCMR) to enable reading credential information only.
Used in conjunction with PPUATs to grant long-term read-only permission to credentials on an authenticator. PCMR is a pinUvAuthToken permission that allows platforms to display security key credentials alongside on-platform passkeys, supporting modern Conditional Mediation UX. For example, password manager-like dropdowns.
See CTAP authenticatorCredentialManagement.
FIDO over CCID and USB
YubiKey Firmware 5.8 supports FIDO over Chip Card Interface Device (CCID) allowing CTAP 2.x commands to be carried using ISO7816 Application Protocol Data Unit (APDU) messaging over the USB CCID smart card interface in addition to the USB Human Interface Device (HID) FIDO interface.
This provides a standards-defined alternative transport for CTAP that leverages the OS smart card stack, and enables secure channel establishment (SCP11b) beyond NFC. It adds flexibility and functionality for remote enrollment of devices, including expanding options on the iOS platform.
PIN and User Verification
YubiKey Firmware 5.8 with CTAP 2.3 PIN-related GetInfo enhancements used to enable the platform to guide the user towards having more success with creating and remembering their PIN. FIDO 2 PIN and user verification feature updates.
These new enhancements allow customers, especially those subject to high-assurance security standards, to mandate and enforce strong PIN policies and authentication frequency events. Enabling these options within the hardware means customers do not have to solely rely on their application platforms to enforce policies.
Platforms can now query the hardware to assess PIN minimum and maximum lengths, whether complexity is enabled and monitor how often the PIN is entered.
When implemented, the platforms can control and modify the UX experience for users as well as ensuring security policies are met and maintained.
See CTAP authenticatorGetInfo.
maxPINLength
Specifies the maximum PIN length (beyond the baseline byte spec limit) the authenticator enforces for ClientPIN, measured in Unicode code points. This enables platforms to validate PIN length client-side and provide accurate user guidance before submission.
Allows platforms to provide users-guidance regarding what is acceptable for a PIN, and better user experience when attempting to set a PIN that will be rejected by the authenticator because it exceeds the maximum length.
Note
Specification constraint. Even if maxPINLength is set, the authenticator must still restrict the PIN to 63 bytes or fewer.
maxPINLength (0x1D) ensures platforms respect PIN length limits. For example, max 8 for PIV compatibility. This improves user experience with PIN setup.
pinComplexityPolicy
A true/false value that indicates whether an authenticator has additional PIN complexity restrictions besides minimum and maximum PIN lengths.
Allows the platform to inform the user that additional PIN complexity requirements are enforced, so that they are more likely to choose a PIN that complies with the authenticator’s PIN policy. May be used by the platform to decide whether to attempt to process the pinComplexityPolicyURL, or display a generic message if the platform does not support pinComplexityPolicyURL.
pinComplexityPolicy (0x1B) enables platforms to know that the authenticator is enforcing stronger PIN policies (reducing weak PIN usage and improving security) and therefore can provide better UX when a user tries to set a PIN that does not meet the complexity requirements.
pinComplexityPolicyURL
Optional URL that allows platforms to provide users with a specific link to PIN complexity rules, ensuring clarity and compliance with authenticator requirements.
Allows the platform to provide a way for the end user to understand what PIN complexity policies are in force for the specific device they are using, to guide the user to setting a PIN that will not be rejected by the authenticator.
pinComplexityPolicyURL (0x1C) allows platforms to provide users with a specific link to PIN complexity rules, ensuring clarity and compliance with authenticator requirements. For example, yubi.co/pin.
uvCountSinceLastPinEntry
Allows platforms to occasionally prompt PIN entry after repeated biometric usage, preventing PIN forgetfulness. It is defined as a counter: the number of consecutive successful user verification (UV) attempts since the authenticator last required the user to re-enter their PIN.
Enables “PIN recheck” policies. For example, require PIN after N biometric uses.
uvCountSinceLastPinEntry (0x17) allows platforms to occasionally prompt PIN entry after repeated biometric usage, preventing PIN forgetfulness.
Digital Wallet and Credential Management with PRF
YubiKey Firmware 5.8 with CTAP 2.3 enables Pseudo-Random Function (PRF) during make credential (hmac-secret-mc). This allows dual-HMAC keys to be created seamlessly during credential setup instead of requiring two separate steps.
Applications, such as Dashlane, that rely on PRF for end-to-end encrypted synced passkeys, make seamless integration critical. However, setting up credentials that rely on PRF requires multiple user interactions, and creates adoption barriers for lifecycle management of wallets and synced passkeys.
hmac-secret-mc extension reduces friction during setup, enabling smooth passkey lifecycle management and digital wallet adoption, keeping YubiKeys relevant in evolving ecosystems.
CTAP references:
Pseudo-Random Function (PRF) Support
Defined as a WebAuthn extension (PRF) in WebAuthn Level 3, PRF is used to provide per-credential high-entropy secrets that can be used to derive symmetric encryption keys. The YubiKey provides PRF support via the hmac-secret extension, which was introduced in CTAP 2.0 and has been a part of the YubiKey firmware since 2019.
YubiKey Firmware 5.8 with CTAP 2.3 hmac-secret-mc extension:
- Expands the PRF functionality with the
hmac-secret-mcfunction. This allows developers to generate encryption keys immediately upon account creation and reduce the number of times a user needs to interact with the key. For example, removes the double-tap. - Developers can deliver smoother flows when they need to create both authentication and encryption keys at the same time.
Use cases:
- Deriving strong symmetric keys: Use PRF output as a user’s local encryption key for cloud storage.
- Application-specific keys: Derive one secret for authentication, another for encrypting files, and another for signing transactions (all from the same credential).
- Federated/delegated identity: Payment provider derives its own secret from the merchant’s credential, with no shared state needed.
CTAP references:
hmac-secret
A mandatory CTAP extension for authenticators starting in CTAP 2.1.
Provides per-credential, per-RP high-entropy secrets that can be derived during getAssertion.
hmac-secret-mc
Extension introduced in CTAP 2.3.
The hmac-secret-mc extension allows for the derivation of secrets during makeCredential, reducing the number of times that users need to interact with an authenticator to create a credential and then immediately use that credential to generate encryption keys.
RPID Storage for Enterprises
YubiKey Firmware 5.8 with CTAP 2.3 increases storage capacity for Enterprise Attestation Relying Party ID (RPID)s from 2 to 16 without affecting certificate storage. It simplifies enterprise testing, deployment, and operations, ensuring smoother credential management across complex environments. This allows customers to:
- Support both test and production environments. For example,
test-tenant.acme.comandprod-tenant.acme.com. - Support Enterprise Attestation on multiple identity providers.
Secure Payment Confirmation
YubiKey Firmware 5.8 with CTAP 2.3 provides a ThirdPartyPayment extension per-credential bit flag enables YubiKeys to be used for cross-domain credentials without redirects, as required by Secure Payment Confirmation (SPC).
Enables YubiKeys to support modern, frictionless payment flows, increasing usability and business adoption for secure payments.
See CTAP thirdPartyPayment.
Signing Extension (Preview)
This feature is currently delivered as a preview option with YubiKey Firmware 5.8 and is likely to change before the final specifications are agreed.
Proposed by Yubico for inclusion in WebAuthn L4, the previewSign extension is intended for use cases that need to sign an un-modified (not including client or authenticator data) message with a hardware security key. Like the thirdPartyPayment extension, this uses a separate credential which may not be used for normal authentication.
Asynchronous Remote Key Generation (ARKG) with the raw signing, previewSign extension, as implemented for the FUNKE EUDI Wallet Prototypes, enables end users to use a YubiKey as a root of trust in a wallet scenario and for additional use cases that require signing of arbitrary data. For example:
- The ability to use hardware security keys to sign raw data with signature schemes that are not suitable for authentication, but are suitable for digital wallet applications.
- Provides hardware-backed ECDSA P-256 signing over application-defined data via the
previewSignextension. Keys are generated using ARKG; relying parties may integrate ARKG into protocol designs explicitly for key unlinkability or just use the resulting keys like any other ECDSA P-256 key. Additional algorithms or derivation models may be supported in the future.
By extending signing operations beyond just user authentication new use cases are opened up, the signing extension allows for solutions to sign raw data without needing to include client or authenticator details. For example:
- Enables customers to offer comprehensive solution for digital wallets and also for additional use cases where signing arbitrary data is needed.
- By delivering this preview version of the Signing Extension, customers can build out new use cases and solutions ready for full adoption
Third-party payment extension
YubiKey Firmware 5.8 supports CTAP 2.3 Third Party Payment, thirdPartyPayment, extension for third-party payment.
See CTAP thirdPartyPayment.
Defined as a WebAuthn extension, thirdPartyPayment, can be requested by the RP in navigator.credentials.create() or navigator.credentials.get() and is supported via CTAP 2.2 if the authenticator advertises it in the GetInfo extensions. It is returned in the authenticator responses if the extension is recognized and supported.
thirdPartyPayment allows an RP to declare that a credential is being created for a payment use case on behalf of a third party. It provides a privacy-preserving signal that the credential may be scoped or treated differently for payment flows, enabling trusted payment UX without leaking sensitive data.
These extensions focus on giving vendors the tools to be able to present streamlined, secure payment flows to customers, reducing payment friction by removing redirects and confusing UX messages. Historically a credential has been tied to the platform where it was created, meaning merchants would need to redirect users to external sites to perform payment, creating extra steps and confusion.
Use cases:
Delegated payment credential creation
- Example: The user creates a passkey with their bank. With the
thirdPartyPaymentextension set to true, the user can now use that bank passkey on a merchant site to validate the transaction with the bank. - Authenticator understands this is a “third party payment” credential and can surface appropriate UX. For example, payment icon, branding, and warnings.
- Example: The user creates a passkey with their bank. With the
Improved payment UX in browsers/platforms
- Allows the platform (browser/OS) to display “Use this passkey to pay with Provider X” instead of a generic login prompt.
- Prevents confusing UX where a payment credential looks identical to a normal website credential.
YubiHSM Auth credential editing
Prior to YubiKey firmware 5.8, after a credential is created in the YubiHSM Auth component it could not be updated. With YubiKey Firmware 5.8 you can update an existing credential if:
- In possession of the authkey, or
- In possession of the current password
This helps in deployment situations when a credential is set to an initial value by for example an admin, then changed later after the end user receives their key.
See Yubico .NET YubiKey SDK: User’s Manual, YubiHSM Auth Overview.