Die Authenticator-Datenstruktur enthält Informationen vom Authenticator über die Verarbeitung einer Anfrage zur Erstellung oder Authentifizierung von Anmeldeinformationen â wie den Relying Party ID Hash (rpIdHash
), einen Signaturzähler, den Test der Benutzerpräsenz, Benutzerüberprüfungs-Flags und alle vom Authenticator verarbeiteten Erweiterungen. Auf dieser Seite wird erklärt, was in der Datenstruktur enthalten ist.
Authenticator-Daten werden dem Browser als ArrayBuffer
zur Verfügung gestellt und können auf verschiedene Weise abgerufen werden. Die zwei bequemsten Methoden sind:
PublicKeyCredential.response.authenticatorData
Eigenschaft, die auf dem PublicKeyCredential
verfügbar gemacht wird, das aus einem erfolgreichen navigator.credentials.create()
(Anmeldeinformationenerstellung) Aufruf zurückgegeben wird.PublicKeyCredential.response.getAuthenticatorData()
Methode, die auf dem PublicKeyCredential
verfügbar gemacht wird, das aus einem erfolgreichen navigator.credentials.get()
(Authentifizierung) Aufruf zurückgegeben wird.Ein Authenticator-Daten-ArrayBuffer
ist mindestens 37 Bytes lang und enthält die folgenden Felder:
Der SHA-256 Hash der Relying Party ID, auf die die Anmeldeinformationen bezogen sind. Der Server stellt sicher, dass dieser Hash mit dem SHA256-Hash seiner eigenen Relying Party ID übereinstimmt, um Phishing oder andere Man-in-the-Middle-Angriffe zu verhindern.
Ein Bitfeld, das verschiedene Attribute angibt, die vom Authenticator bestätigt wurden. Die Bits sind wie folgt, wobei Bit 0 das am wenigsten signifikante Bit ist und alle nicht unten genannten Bits "für zukünftige Verwendung reserviert" sind:
1
), hat der Authenticator bestätigt, dass der Benutzer durch einen Test der Benutzerpräsenz (TUP), zum Beispiel durch Berühren eines Knopfes auf dem Authenticator, anwesend war.authenticatorData
.authenticatorData
, wenn keine attestierten Anmeldeinformationen-Daten vorhanden sind.Ein Signaturzähler, wenn vom Authenticator unterstützt (anders auf 0 gesetzt). Server können diesen Zähler optional verwenden, um die Klonung des Authenticators zu erkennen.
Die Anmeldeinformationen, die erstellt wurden. Diese sind nur bei einem navigator.credentials.create()
Aufruf vorhanden. Dies ist eine Byte-Sequenz mit dem folgenden Format:
AAGUID (16 Bytes): Der Authenticator Attestation Globally Unique Identifier, eine eindeutige Nummer, die das Modell des Authenticators identifiziert (nicht die spezifische Instanz des Authenticators). Eine vertrauende Partei kann diese verwenden, um anhand der FIDO-Metadaten-Dienst die Eigenschaften des Authenticators zu ermitteln. Dies ist in bestimmten Situationen relevant, wie zum Beispiel bei Unternehmensbereitstellungen oder wenn gesetzliche Anforderungen die Verwendung eines bestimmten Authentifikatortyps vorschreiben; ansonsten sollte es ignoriert werden.
credentialIdLength (2 Bytes): Die Länge der Anmelde-ID, die diesen Bytes unmittelbar folgt.
credentialId (variable Länge): Ein eindeutiger Bezeichner für diese Anmeldeinformationen, um sie für zukünftige Authentifizierungen anfordern zu können. Die Anmeldeinformationen sind "credentialIdLength" Bytes lang.
credentialPublicKey (variable Länge): Ein COSE-codierter öffentlicher Schlüssel. Dieser öffentliche Schlüssel wird auf dem Server im Zusammenhang mit dem Konto eines Benutzers gespeichert und für zukünftige Authentifizierungen verwendet. Die vertrauende Parteien können die DER-codierte Form davon abrufen, ohne die COSE-codierten Authenticator-Daten zu analysieren, über die AuthenticatorAttestationResponse.getPublicKey()
Methode.
Eine optionale CBOR Karte, die die Antwortausgaben von Erweiterungen enthält, die vom Authenticator verarbeitet wurden.
Erweiterungen sind optional, und unterschiedliche Browser können unterschiedliche Erweiterungen erkennen. Die Verarbeitung von Erweiterungen ist für den Browser stets optional: Wenn ein Browser eine bestimmte Erweiterung nicht erkennt, wird sie einfach ignoriert. Informationen zur Verwendung von Erweiterungen und welche von welchen Browsern unterstützt werden, finden Sie unter Web Authentication extensions.
Hinweis: Die Authenticator-Daten enthalten nur die Ergebnisse von Erweiterungen, die vom Authenticator verarbeitet wurden. Die Ergebnisse von Erweiterungen, die vom Browser (Client) verarbeitet wurden, können über PublicKeyCredential.getClientExtensionResults
abgerufen werden.
Definition der Authenticator-Daten in der WebAuthn-Spezifikation
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4