diff --git a/index.html b/index.html index c54977921..6b7a73ebe 100644 --- a/index.html +++ b/index.html @@ -4,9 +4,9 @@
Copyright © 2023 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
+Copyright © 2023 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
This document is governed by the 2 November 2021 W3C Process Document.
+This document is governed by the 12 June 2023 W3C Process Document.
[[Store]](credential, sameOriginWithAncestors)
Method
[[preventSilentAccess]](credential, sameOriginWithAncestors)
Method
isUserVerifyingPlatformAuthenticatorAvailable()
Method
- parseCreationOptionsFromJSON()
Method
- parseRequestOptionsFromJSON()
Methods
+ isPasskeyPlatformAuthenticatorAvailable()
Method
+ parseCreationOptionsFromJSON()
Method
+ parseRequestOptionsFromJSON()
Methods
AuthenticatorResponse
)
@@ -748,6 +1111,7 @@ AuthenticatorTransport
)
COSEAlgorithmIdentifier
)
UserVerificationRequirement
)
+ PublicKeyCredentialHints
)
iframe
elements
@@ -920,6 +1284,7 @@ A cryptographic entity, existing in hardware or software, that can register a user with a given Relying Party and later assert possession of the registered public key credential, and optionally verify the user, when requested by the Relying Party. Authenticators can report information -regarding their type and security characteristics via attestation during registration.
+A cryptographic entity, existing in hardware or software, that can register a user with a given Relying Party and later assert possession of the registered public key credential, and optionally verify the user to the Relying Party. Authenticators can report information +regarding their type and security characteristics via attestation during registration and assertion.
A WebAuthn Authenticator could be a roaming authenticator, a dedicated hardware subsystem integrated into the client device, -or a software component of the client or client device.
+or a software component of the client or client device. A WebAuthn Authenticator is not necessarily confined to operating in +a local context, and can generate or store a credential key pair in a server outside of client-side hardware.In general, an authenticator is assumed to have only one user. If multiple natural persons share access to an authenticator, they are considered to represent the same user in the context of that authenticator. @@ -1626,7 +1992,7 @@
A public key credential source or public key credential is said to be bound to its managing -authenticator. This means that only the managing authenticator can generate assertions for the public key +authenticator. This means that only the managing authenticator can generate assertions for the public key credential sources bound to it.
This may also be expressed as "the managing authenticator contains the bound credential", or "the bound credential was created on its managing authenticator". @@ -1669,6 +2035,7 @@
See also: client-side credential storage modality and non-discoverable credential.
Note: Client-side discoverable credentials are also usable in authentication ceremonies where credential IDs are given,
i.e., when calling navigator.credentials.get()
with a non-empty allowCredentials
argument.
A credential key pair is a pair of asymmetric cryptographic keys generated by an authenticator and scoped to a specific WebAuthn Relying Party. It is the central part of a public key credential.
-A credential public key is the public key portion of a credential key pair. +
A credential key pair is a pair of asymmetric cryptographic keys generated by an authenticator and scoped to a specific WebAuthn Relying Party. It is the central part of a public key credential.
+A credential public key is the public key portion of a credential key pair. The credential public key is returned to the Relying Party during a registration ceremony.
-A credential private key is the private key portion of a credential key pair. +
A credential private key is the private key portion of a credential key pair. The credential private key is bound to a particular authenticator - its managing authenticator - and is expected to never be exposed to any other party, not even to the owner of the authenticator.
Note that in the case of self -attestation, the credential key pair is also used as the attestation key pair, see self attestation for details.
+attestation, the credential key pair is also used as the attestation key pair, see self attestation for details.Note: The credential public key is referred to as the user public key in FIDO UAF [UAFProtocol], and in FIDO U2F [FIDO-U2F-Message-Formats] and some parts of this specification that relate to it.
The user handle associated when this public key credential source was created. This item is -nullable.
+nullable, however user handle MUST always be populated for discoverable credentials.OPTIONAL other information used by the authenticator to inform its UI. For example, this might include the user’s displayName
. otherUI is a mutable item and SHOULD NOT be bound to the public key credential source in a way that prevents otherUI from being updated.
navigator.credentials.get()
's allowCredentials
argument. This means that the Relying Party must
manage the credential’s storage and discovery, as well as be able to first identify the user in order to
discover the credential IDs to supply in the navigator.credentials.get()
call.
- Client-side storage of the public key credential source is not required for a server-side credential. +
Client-side storage of the public key credential source is not required for a server-side credential.
This is in contrast to a client-side discoverable credential,
which instead does not require the user to first be identified in order to provide the user’s credential IDs
to a navigator.credentials.get()
call.
A user handle is an identifier for a user account, specified by the Relying Party as
during registration. Discoverable credentials store this identifier and return it as user
.id
in authentication ceremonies started with an empty response
.userHandle
argument.allowCredentials
The main use of the user handle is to identify the user account in such authentication ceremonies, +
A user handle is an identifier for a user account, specified by the Relying Party as
during registration. Discoverable credentials store this identifier and MUST return it as user
.id
in authentication ceremonies started with an empty response
.userHandle
argument.allowCredentials
The main use of the user handle is to identify the user account in such authentication ceremonies, but the credential ID could be used instead. The main differences are -that the credential ID is chosen by the authenticator and unique for each credential, -while the user handle is chosen by the Relying Party and ought to be the same +that the credential ID is chosen by the authenticator and is unique for each credential, +while the user handle is chosen by the Relying Party and ought to be the same for all credentials registered to the same user account.
-Authenticators map pairs of RP ID and user handle to public key credential sources. -As a consequence, an authenticator will store at most one discoverable credential per user handle per Relying Party.
+Authenticators map pairs of RP ID and user handle to public key credential sources. +As a consequence, an authenticator will store at most one discoverable credential per user handle per Relying Party. Therefore +a secondary use of the user handle is to allow authenticators to know when to replace an existing discoverable credential with a new one during the registration ceremony.
A user handle is an opaque byte sequence with a maximum size of 64 bytes, and is not meant to be displayed to the user. It MUST NOT contain personally identifying information, see § 14.6.1 User Handle Contents.
The technical process by which an authenticator locally authorizes the invocation of the authenticatorMakeCredential and authenticatorGetAssertion operations. User verification MAY be instigated +
The technical process by which an authenticator locally authorizes the invocation of the authenticatorMakeCredential and authenticatorGetAssertion operations. User verification MAY be instigated through various authorization gesture modalities; for example, through a touch plus pin code, password entry, or biometric recognition (e.g., presenting a fingerprint) [ISOBiometricVocabulary]. The intent is to distinguish individual users. See also § 6.2.3 Authentication Factor Capability.
Note that user verification does not give the Relying Party a concrete identification of the user, but when 2 or more ceremonies with user verification have been done with that credential it expresses that it was the same user that performed all of them. The same user might not always be the same natural person, however, -if multiple natural persons share access to the same authenticator.
+if multiple natural persons share access to the same authenticator.Note: Distinguishing natural persons depends in significant part upon the client platform's -and authenticator's capabilities. +and authenticator's capabilities. For example, some devices are intended to be used by a single individual, yet they may allow multiple natural persons to enroll fingerprints or know the same PIN and thus access the same user account(s) using that device.
Also, for security, user verification and use of credential private keys must all occur within the logical security boundary defining the authenticator.
+Also, for security, user verification and use of credential private keys must all occur within the logical security boundary defining the authenticator.
User verification procedures MAY implement rate limiting as a protection against brute force attacks.
This section normatively specifies the API for creating and using public key credentials. The basic -idea is that the credentials belong to the user and are managed by a WebAuthn Authenticator, with which the WebAuthn Relying Party interacts through the client platform. Relying Party scripts can (with the user’s consent) request the +idea is that the credentials belong to the user and are managed by a WebAuthn Authenticator, with which the WebAuthn Relying Party interacts through the client platform. Relying Party scripts can (with the user’s consent) request the browser to create a new credential for future use by the Relying Party. See Figure , below.