From a906c369e334a84342e852de3fe9514c80ca301d Mon Sep 17 00:00:00 2001 From: Joost van Dijk Date: Tue, 21 May 2024 17:19:36 +0200 Subject: [PATCH] add CTAP documentation --- content/CTAP/fido2_building_blocks.png | Bin 0 -> 135344 bytes content/CTAP/index.adoc | 372 ++++++++++++++++++ ...thn_Level_2_Features_and_Enhancements.adoc | 4 +- 3 files changed, 374 insertions(+), 2 deletions(-) create mode 100644 content/CTAP/fido2_building_blocks.png create mode 100644 content/CTAP/index.adoc diff --git a/content/CTAP/fido2_building_blocks.png b/content/CTAP/fido2_building_blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..ec63c18a1b4817a89e4b47c0f39d2069fe19d7c3 GIT binary patch literal 135344 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

MqjKK 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 A^Z)<= literal 0 HcmV?d00001 diff --git a/content/CTAP/index.adoc b/content/CTAP/index.adoc new file mode 100644 index 000000000..fd3a62a0c --- /dev/null +++ b/content/CTAP/index.adoc @@ -0,0 +1,372 @@ +== Client To Authenticator Protocol (CTAP) + +FIDO2 consists of two standardized components, a web API (WebAuthn) and a protocol for clients to communicate with authenticators: the Client To Authenticator Protocol (CTAP). +The client can be a platform (an Operating System such as Microsoft Windows), a browser (such as Google Chrome), or an application (such as an SSH client). + +CTAP clients can use different transports to communicate with an authenticator. +When the authenticator is a FIDO security key, USB or NFC is typically used. + +The difference between WebAuthn and CTAP is illustrated in the figure below. + +image::fido2_building_blocks.png[] + +Note that web developers will never need to use CTAP. Instead, they will use the WebAuthn API that is supported by all major browsers. +See our +link:https://developers.yubico.com/WebAuthn/[WebAuthn documentation] for guidance on implementing FIDO authentication for web applications. + +The current version of the Client To Authenticator Protocol is +link:https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html[CTAP 2.1]. + +=== Developing applications supporting FIDO + +With CTAP, there are now different options for developers to leverage FIDO authenticators to secure their applications: + +1. Use the WebAuthn API, if the application is a web application. That is, the client is a web browser. +2. Use a platform API, if the application is a Desktop or Mobile application running on a platform that offers such an API. + An Example is the WebAuthn API on Microsoft Windows (link:https://learn.microsoft.com/en-us/windows/win32/api/webauthn/[webauthn.dll]). +3. Use a library that implements the CTAP protocol, if the application is a Desktop or Mobile application and a platform API is not available or not suitable. + +Yubico offers several CTAP libraries for developers. + +For building a web application using WebAuthn, there is +link:https://developers.yubico.com/java-webauthn-server/[java-webauthn-server]. + +For building Desktop applications, there are +link:https://github.com/Yubico/libfido2[libfido2](C), and +link:https://github.com/Yubico/python-fido2[python-fido2](python). + +The `libfido2` library comes with some command-line tools. We will be using the `fido2-token` tool in this section to illustrate some of the CTAP features. +See also its link:https://developers.yubico.com/libfido2/Manuals/fido2-token.html[manual page]. + +Many third-party libraries provide bindings of libfido2 for other programming languages. + +Note that when working with YubiKeys or the FIDO Security Key by Yubico, there are also these libraries to integrate with: + +- link:https://developers.yubico.com/yubikit-ios/[Yubico Mobile SDK (YubiKit) for iOS] +- link:https://developers.yubico.com/yubikit-android/[Yubico Mobile SDK (YubiKit) for Android] +- link:https://docs.yubico.com/yesdk/users-manual/application-fido2/fido2-overview.html[.NET YubiKey SDK] + +=== CTAP versions + +The CTAP specification refers to two protocol versions: CTAP1 and CTAP2 . CTAP1 is a new name for FIDO U2F. +CTAP1 can only be used as a second factor, i.e. it does not support user verification using a PIN or a biometric. +CTAP2 does support user verification and is a much more versatile protocol. + +An authenticator that implements CTAP2 is called a FIDO2 authenticator. +If that authenticator implements CTAP1/U2F as well, it is backward compatible with U2F. + +CTAP2 also has different sub-versions, similar to WebAuthn levels. +Authenticators can report the CTAP2 version they support using version identifiers, like `FIDO_2_0`, `FIDO_2_1_PRE`, or `FIDO_2_1`. +FIDO2 authenticators that also support U2F (i.e. CTAP1), will report `U2F_V2` as a supported version. + +For instance: when retrieving information from a FIDO2 security key (on a linux system where it is assigned USB HID device file `/dev/hidraw0`): + +.... +$ fido2-token -I /dev/hidraw0 +... +version strings: FIDO_2_0, FIDO_2_1_PRE, FIDO_2_1 +... +.... + +Note that on macOS, the device is typically referred to with something that looks like `ioreg://1234567890`. + +To find the list of FIDO security keys available, use: + +.... +$ fido2-token -L +ioreg://4295201353: vendor=0x1050, product=0x0406 (Yubico YubiKey FIDO+CCID) +ioreg://4295266735: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID) +.... + +=== CTAP Authenticator API commands + +CTAP defines a number of Authenticator API commands that can be used to communicate with an Authenticator. +They are typically invoked from a FIDO library, or through the WebAuthn API when using a browser. +Indeed, the WebAuthn `navigator.credentials.create()` and `navigator.credentials.get()` API methods translate to the +CTAP `authenticatorMakeCredential` and `authenticatorGetAssertion` commands, respectively. + +To use these CTAP API command from the command-line, have a look at the +link:https://developers.yubico.com/libfido2/Manuals/fido2-cred.html[fido2-cred] and +link:https://developers.yubico.com/libfido2/Manuals/fido2-assert.html[fido2-assert] tools that are part of +link:https://github.com/Yubico/libfido2[libfido2]. + +There are also API commands that cannot be invoked directly through the WebAuthn API, for instance for setting or changing PINs, enrolling a biometric, or managing credentials. + +For a full list of CTAP Authenticator API commands, see the +link:https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#authenticator-api[CTAP 2.1 specification] + +=== CTAP Features + +CTAP defines several optional features that can be implemented on Authenticators, depending on the CTAP version implemented. + +Clients can request an authenticator to report a list of its supported protocol versions and other information using the `authenticatorGetInfo` API command. + +The `fido2-token` tool can be used to invoke this command from the command-line: + +.... +$ fido2-token -I /dev/hidraw0 +proto: 0x02 +major: 0x05 +minor: 0x07 +build: 0x00 +caps: 0x05 (wink, cbor, msg) +version strings: FIDO_2_0, FIDO_2_1_PRE, FIDO_2_1 +extension strings: credProtect, hmac-secret, largeBlobKey, credBlob, minPinLength +transport strings: nfc, usb +algorithms: es256 (public-key), eddsa (public-key), es384 (public-key) +aaguid: f8a011f38c0a4d15800617111f9edc7d +options: rk, up, noplat, alwaysUv, credMgmt, authnrCfg, clientPin, largeBlobs, pinUvAuthToken, setMinPINLength, nomakeCredUvNotRqd, credentialMgmtPreview +fwversion: 0x50700 +maxmsgsiz: 1280 +maxcredcntlst: 8 +maxcredlen: 128 +maxlargeblob: 4096 +maxrpids in minpinlen: 1 +remaining rk(s): 98 +minpinlen: 4 +pin protocols: 2, 1 +pin retries: 8 +pin change required: false +uv retries: undefined +.... + +The meaning of some of this command's output is explained below and on its +link:https://developers.yubico.com/libfido2/Manuals/fido2-token.html[manual page]. + +==== Credential Management + +Credential management is used to manage discoverable credentials on the authenticator. +This feature is important, as without it there is no way to delete credentials that are stored on an authenticator, other than resetting the authenticator (and deleting all credentials instead of a specific one). +Hardware security keys typically have limited storage for discoverable credentials (for instance 100 on a YubiKey with firmware 5.7), so it can be very useful to delete credentials that are no longer being used. + +Credential Management also allows for enumeration of credentials, the retrieval of credential metadata and updating credential user information. + +The YubiKey and the FIDO Security Key by Yubico support credential management since firmware version 5.2. + +The `fido2-token` tool can be used for performing credential management from the command-line. + +For instance, to list discoverable credentials stored on a device: + +.... +$ fido2-token -L -r $DEV +Enter PIN: ****** +00: 4wYQ6KFiEVlg/h7CI+ZSnJ9LboAgDcteXDIcivHisb8= ssh: +01: 5Yaf4EYzO6ALp/K7s+p+BQLPSCYVYcKLZptoXwxqQzs= passkey.org +.... + +To delete a discoverable credential, use the `-D` option and specify its (base64-encoded) credential ID with `-i`: + +.... +$ fido2-token -D -i uFqNE0NN1Pwvp/gQZ2Y71Hi7zafFHoCyUv+8RGjYDLX6JqN0YpQ7DrynVP5GYoZT /dev/hidraw0 +Enter PIN: ****** +.... + +==== Enterprise Attestation + +Enterprise Attestation (EA) was added in CTAP version 2.1 and WebAuthn L2. +As suggested by its name, it is intended for use within enterprises to uniquely identify an authenticator, something that is explicitly made infeasible with normal attestation to preserve user privacy. +In an enterprise scenario, EA can be used for asset tracking or to aid in account recovery flows by allowing an end user to prove they have a specific FIDO2 authenticator. +It requires an authenticator that is specifically configured for use within a particular enterprise, so it will not be generally available on authenticators. + +See also our guidance on +link:https://developers.yubico.com/WebAuthn/Concepts/Enterprise_Attestation/[using Enterprise Attestation in web applications]. + +The YubiKey and the FIDO Security Key by Yubico support enterprise attestation since firmware version 5.7, but only on custom configured keys. +It will allow Relying Parties to read the serial number (or another organization-specified unique identifier) from the YubiKey during FIDO2 registration. + +Enterprise attestation can be enabled on a device using: +.... +$ fido2-token -S -a /dev/hidraw0 +Enter PIN: ****** +.... + +==== Always Require User Verification + +This feature, called `AlwaysUV`, causes every FIDO2 registration or authentication event to require a PIN or biometric, regardless of the options set by the relying party or platform. + +The current status for AlwaysUV can be retrieved using +When using the `fido2-token` tool with the `-I` switch, the current status is listed under `options` as + +- `alwaysUv`, meaning AlwaysUV is enabled, or +- `noalwaysUv`, meaning AlwaysUV is disabled. + +The AlwaysUV feature can be enabled on a device using `fido2-token -S -u` or disabled using `fido2-token -D -u`. + +==== Set Minimum PIN Length + +Another feature that is intended for use in an enterprise or government environment is "Set Minimum PIN Length", which enforces a minimum PIN length policy for authenticators. + + +Minimum PIN Length allows Identity Providers to enforce the configured minimum PIN length during FIDO2 registration, to support self-enrollment processes. +The minimum PIN length can only be configured by platforms, or by communicating to the YubiKey directly, and can only be enforced by identity providers or relying parties in an allowed list configured on the YubiKey. + +To set a minimum PIN length for a device to 6: + +.... +$ fido2-token -S -l 6 /dev/hidraw0 +Enter PIN: ****** +.... + +To force a PIN change: + +.... +$ fido2-token -S -f /dev/hidraw0 +Enter PIN: ****** +.... + +The authenticator cannot be used before the PIN is changed. For instance, when listing discoverable credentials, an PIN violation occurs: + +.... +$ fido2-token -L -r /dev/hidraw0 +Enter PIN for: ****** +fido2-token: fido_credman_get_dev_rp: FIDO_ERR_PIN_POLICY_VIOLATION +.... + +To set a list of RP IDs allowed to retrieve the minimum PIN length, use the `-S -m` option: + +.... +$ fido2-token -S -m example.org,example.com /dev/hidraw0 +Enter PIN: ****** +.... + +See also the minimum PIN length extension below. + +=== Extensions + +FIDO authenticators may support optional extensions. + +For a list of defined extensions, see the +link:https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-defined-extensions[CTAP specification] + +The extensions supported by an authenticator can be retrieved using the `authenticatorGetInfo` API command. + +The `fido2-token` tool can be used to invoke this command from the command-line, where the supported extensions are listed as `extension strings`. For instance: + +.... +$ fido2-token -I /dev/hidraw0 +... +extension strings: credProtect, hmac-secret, largeBlobKey, credBlob, minPinLength +... +.... + +See below for what these extensions entail. + +==== Credential Protection (credProtect) + +The Credential Protection extension can be used to improve privacy in case an unauthorized user has access to an authenticator. +It allows a Relying Party to set a credential protection policy at registration. + +With the Credential Protection extension set, the associated FIDO2 credential can be flagged to not be exposed to any one without user verification +It can neither be read nor used for authentication with the user asserting their identity. + +==== Credential Blob (credBlob) and Large Blob Key (largeBlobKey) + +The Large blob storage extension (largeBlob) allow a Relying Party to + +Note that large blobs are also available from the WebAuthn API. See the +link:https://www.w3.org/TR/webauthn-2/#sctn-large-blob-extension[WebAuthn Level 2 W3C Recommandation]. + +Note that on some browsers, the HMAC Secret extension is also available + +To list all large blobs stored on an authenticator: + +.... +fido2-token -L -b /dev/hidraw0 +Enter PIN for /dev/hidraw0: ******** +total map size: 1219 bytes +00: 591 893 +01: 581 889 dhx715WNlF36vMvo5hV0SBOPfWqS1ncj2P2BgW2513a/rLvg64Tl4f0/uDrs1LsE example.org +.... + +To store the contents of file `myfile` as a large blob on an authenticator: + +.... +fido2-token -S -b -n example.org myfile /dev/hidraw0 +Enter PIN for /dev/hidraw0: ******** +.... + + +To retrieve a large blob from an authenticator and store it in `myfile`: + +.... +fido2-token -G -b -n example.org myfile /dev/hidraw0 +Enter PIN for /dev/hidraw0: ******** +.... + +To delete a large blob associated with RP ID `example.org` from an authenticator: + +.... +fido2-token -D -b -n example.org /dev/hidraw0 +Enter PIN for /dev/hidraw0: ******** +.... + +An example use-case for largeBlobs is SSH, where an SSH certificate can be stored on an authenticator, together with is corresponding private key. + +See +link:https://developers.yubico.com/SSH/Storing_SSH_Certificates.html[Storing SSH Certificates on a FIDO security key]. + +==== Minimum PIN Length Extension (minPinLength) + +The Minimum PIN Length extension allows clients to retrieve the minimum PIN length for a specific RP ID. +Which RP IDs are allowed to retrieve this information can be set. + +==== HMAC Secret Extension (hmac-secret) + +The HMAC Secret extension can be used by a client to retrieve a symmetric secret from the authenticator when it needs to encrypt or decrypt data. + +The HMAC secrets extension is enabled on a create credential request, and the symmetric secret is scoped to the generated credential. + +For an example of using the HMAC Secret extension using the +link:https://github.com/Yubico/python-fido2/tree/main[python-fido2] +Python library, see +link:https://github.com/Yubico/python-fido2/blob/main/examples/hmac_secret.py[hmac_secret.py]. + +Note that on some browsers, the HMAC Secret extension is also available from the WebAuthn API, where it is known as the +link:https://github.com/w3c/webauthn/wiki/Explainer:-PRF-extension[PRF extension]. +The WebAuthn PRF extension is specified in the forthcoming +link:https://w3c.github.io/webauthn/#prf-extension[WebAuthn Level 3 draft]. + +=== FIDO CTAP support on YubiKeys + +See the YubiKey Technical Manual for an overview of +link:https://docs.yubico.com/hardware/yubikey/yk-tech-manual/yk5-apps.html#id16[FIDO2 features and extensions available per firmware version] + + + + + +SYNOPSIS + fido2-token -C device + fido2-token -D -i cred_id device + fido2-token -D -b -k key_path device + fido2-token -D -b -n rp_id [-i cred_id] device + fido2-token -D -e -i template_id device + fido2-token -D -u device + fido2-token -G -b -k key_path blob_path device + fido2-token -G -b -n rp_id [-i cred_id] blob_path device + fido2-token -I [-c] [-k rp_id -i cred_id] device + fido2-token -L [-ber] [-k rp_id] [device] + fido2-token -R device + fido2-token -S [-aefu] device + fido2-token -S -i template_id -n template_name device + fido2-token -S -l pin_length device + fido2-token -S -b -k key_path blob_path device + fido2-token -S -b -n rp_id [-i cred_id] blob_path device + fido2-token -S -c -i cred_id -k user_id -n name -p display_name device + fido2-token -S -m rp_id device + fido2-token -V + +-R reset + +PIN + +-C Changes the PIN of device. +-S Sets the PIN of device. + +BIOMETRICS + +-L -e list biometric enrollments +-D -e -i id list biometric enrollment id (enrollment's template base64-encoded id) +-S -e set new biometric enrollment +-S -e -i template_id -n template_name set biometric enrollment template_id (base64-encoded) to friendly name to template_name + diff --git a/content/WebAuthn/Concepts/WebAuthn_Level_2_Features_and_Enhancements.adoc b/content/WebAuthn/Concepts/WebAuthn_Level_2_Features_and_Enhancements.adoc index 143cd7962..8bc72d0a5 100644 --- a/content/WebAuthn/Concepts/WebAuthn_Level_2_Features_and_Enhancements.adoc +++ b/content/WebAuthn/Concepts/WebAuthn_Level_2_Features_and_Enhancements.adoc @@ -33,5 +33,5 @@ link:https://w3c.github.io/webauthn/#sctn-appid-exclude-extension[*FIDO AppID Ex This extension provides for RPs a migration bridge between legacy U2F implementations and WebAuthn/FIDO2. Developers also will have the ability to exclude U2F credentials. This feature determines if a caller’s FacetID is authorized for an AppID. === Historical updates to the WebAuthn specification: -* link:https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FTR%2Fwebauthn-1&doc2=https%3A%2F%2Fw3c.github.io%2Fwebauthn%2F[Diff of WebAuthn Level 1 to WebAuthn Level 2] -* link:https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FTR%2F2019%2FWD-webauthn-2-20191126%2F&doc2=https%3A%2F%2Fwww.w3.org%2FTR%2F2020%2FWD-webauthn-2-20200730%2F[Diff of WebAuthn L2 WD-03 relative to WebAuthn L2 WD-02] +* link:https://services.w3.org/htmldiff?doc1=https%3a%2f%2fwww.w3.org%2fTR%2fwebauthn-1&doc2=https%3a%2f%2fwww.w3.org%2fTR%2fwebauthn-2[Diff of WebAuthn Level 1 to WebAuthn Level 2] +* link:https://services.w3.org/htmldiff?doc1=https%3a%2f%2fwww.w3.org%2fTR%2fwebauthn-2&doc2=https%3a%2f%2fw3c.github.io%2fwebauthn%2f[Diff of WebAuthn L2 relative to WebAuthn current L3 draft]