AuthenticatorAssertionResponse.authenticatorData

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

Contexte sécurisé: Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

La propriété authenticatorData (rattachée à l'interface AuthenticatorAssertionResponse) fournit un ArrayBuffer qui contient les informations relatives à l'authenticateur tels que :

  • l'empreinte d'identifiant (rpIdHash pour Relying Party ID Hash)
  • un compteur de signature
  • un test quant à la présence de l'utilisateur
  • des marqueurs (flags) de vérification de l'utilisateur
  • les éventuelles extensions traitées par l'authenticateur

Cette propriété est signée par l'authenticateur (c'est l'un des deux champs qui est signé).

Syntaxe

js
var authnrData = assertion.response.authnrData;

Valeur

Un objet ArrayBuffer dont la propriété ArrayBuffer.byteLength indique qu'il mesure au moins 37 octets et qui contient les champs suivants :

  • rpIdHash (32 octets) - Une empreinte SHA256 de l'identifiant de la partie fiable (i.e. - le domaine) tel que vu par le navigateur. Le serveur s'assurera ensuite que cette empreinte correspond à sa propre origine afin d'empêcher les tentatives de hameçonnage (phishing) ou d'autres attaques de l'homme du milieu (man-in-the-middle).

  • flags (1 octet) - Une série de bits qui indique les différents attributs validés par l'authenticateur. Les bits sont décrits comme suit (où le bit 0 correspond au bit de poids faible) (tous les bits ne sont pas mentionnés car certains sont réservés pour une utilisation future) :

    • Bit 0 : Présence de l'utilisateur (User Presence - UP) : si ce bit est actif, cela signifie que l'authenticateur a validé la présence de l'utilisateur par un test de présence (Test of User Presence - TUP). Cela peut notamment correspondre à l'appui sur un bouton de l'authenticateur.
    • Bit 2 : Vérification de l'utilisateur (User Verification - UV) : si ce bit est actif, cela signifie que l'authenticateur a vérifié l'utilisateur en question via une méthode d'authentification (biométrique, code PIN, autre).
    • Bit 6 : Présence des données d'authentification vérifiées (Attested Credential Data - AT) : si ce bit est actif, le champ attestedCredentialData suivra immédiatement après les 37 premiers octets de cet objet.
    • Bit 7 : Présence des données d'extension (Extension data - ED) : si ce bit est actif, les données d'extensions suivront le champ attestedCredentialData s'il est présent ou seront situées après les 37 premiers octets de cet objet sinon.
  • signCount (4 octets) : un compteur de signature provenant de l'authenticateur. Cela permet au serveur de détecter un éventuel clonage de l'authenticateur.

  • attestedCredentialData (longueur variable) : les informations d'authentification qui ont été créées. Ce champ est uniquement présent lors d'un appel à navigator.credentials.create(). Ces informations sont représentées par une séquence d'octets au format suivant :

    • AAGUID (16 octets) - Authenticator Attestation Globally Unique Identifier, un identifiant universel unique pour l'attestation de l'authenticateur qui identifie le modèle de l'authenticateur (pas cet exemplaire en particulier) afin qu'une autre partie puisse comprendre les caractéristiques de l'authenticateur en consultant ses méta-données.
    • credentialIdLength (2 octets) - la longueur, en octets, de l'identifiant d'authentification qui suit ces octets.
    • credentialId (longueur variable) - un identifiant unique pour ces informations d'authentification et qui pourra être demandé pour de futures authentifications. Cette information mesure credentialIdLength octets.
    • credentialPublicKey (longueur variable) - une clé publique encodée au format COSE. Cette clé publique sera stockée sur le serveur et associée au compte de l'utilisateur afin d'être utilisée pour de futures authentifications.
  • extensions (longueur variable) - Une carte optionnelle, encodée au format CBOR, et qui contient les extensions de l'authenticateur.

Exemples

TBD

Spécifications

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-authenticatorassertionresponse-authenticatordata

Compatibilité des navigateurs

BCD tables only load in the browser