Passkeys gewinnen als revolutionäre Authentifizierungsmethode schnell an die Traktion. In W3C TPAC 2022, die prominent vorgestellt wurden, haben sie in Safari 16, macOS, iOS integriert, und sind bereit, der Standard für Kennwortmanager wie 1Password zu werden. Bereits bei Android unterstützt, werden zukünftige Veröffentlichungen die PassKey -Funktionalität in Chrome OS und Windows bringen.
In der Front-End-Community, die oft übersehen wird, ist Passkeys 'Auswirkungen auf die Benutzererfahrung, insbesondere die Authentifizierung und Formulierung, unbestreitbar. In diesem Artikel werden Passkeys und die WebAuthn -API untersucht, die ein umfassendes Verständnis dieser aufkommenden Technologie bieten.
Die Navigation in der Welt der Passkeys erfordert Vertrautheit mit spezifischer Terminologie. Lassen Sie uns einige Schlüsselkonzepte klären:
Bevor wir über Passkeys diskutieren, müssen wir WebAuthn (FIDO2) verstehen. Passkeys bauen auf WebAuthn auf und nutzen die Kryptographie der öffentlichen Schlüssel, um Passwörter zu ersetzen. Ein Sicherheitsgerät (Hardwareschlüssel oder TPM) generiert private und öffentliche Schlüssel.
Der öffentliche Schlüssel ist offen zugänglich, während der private Schlüssel auf dem Erzeugungsgerät sicher gespeichert bleibt. Eine wichtige Einschränkung von WebAuthn war die Abhängigkeit von Geräte; Das Gerät zu verlieren bedeutete, Zugriff zu verlieren. PassKeys adressiert dies über die Cloud -Synchronisation und ermöglicht den Zugriff auf mehrere Geräte. Es ist jedoch wichtig zu beachten
Derzeit bieten iOS, macOS und Android eine umfassende Unterstützung für Cloud-synchronisierte Passkeys, obwohl die Browserkompatibilität ein Faktor bleibt. Google Password Manager und Apple iCloud Keychain erleichtern die Synchronisation.Passkeys: ein Kennwortersatz
. Die Daten werden mit einem privaten Schlüssel über einen Signalalgorithmus verarbeitet und dann mit dem öffentlichen Schlüssel überprüft. Jeder kann ein Schlüsselpaar generieren, aber nur der private Schlüssel kann eine Signatur mit dem entsprechenden öffentlichen Schlüssel erstellen. Diese Signatur ersetzt das Passwort. Der Server speichert den öffentlichen Schlüssel, und die Authentifizierung beinhaltet die Überprüfung des Besitzes des privaten Schlüssels, indem eine zufällige Herausforderung unterzeichnet wird.
Dieser Ansatz beseitigt die Risiken, die mit Kennwortverletzungen verbunden sind. Wenn eine Datenbank beeinträchtigt ist, werden nur öffentliche Schlüssel aufgedeckt, wodurch sie den Angreifern nutzlos werden. Vergessene Passwörter gehören der Vergangenheit an, da sich die Browser an Anmeldeinformationen erinnern und Anmeldungsprozesse vereinfachen. Biometrie oder Stifte können die Sicherheit verbessern.
Kryptographie in der Öffentlichkeit nutzt private und öffentliche Schlüsselpaare. Die Verschlüsselung verwendet den öffentlichen Schlüssel des Empfängers und stellt sicher, dass nur der private Schlüssel des Empfängers entschlüsselt wird. Dies liefert Vertraulichkeit . Authentizität wird durch Unterzeichnung und Überprüfung sichergestellt. Der private Schlüssel des Absenders unterschreibt einen Nachrichten -Hash, der nur mit dem öffentlichen Schlüssel des Absenders überprüft werden kann.
Zugriff erfordert die Schlüsselgenerierung und -speicher, die häufig durch einen Authenticator (Hardware oder Software) erleichtert wird. Softwareauthentikatoren verwenden möglicherweise eine TPM oder eine sichere Enklave, während Hardware -Authentikatoren Geräte wie Yubikeys enthalten.
Der Client zu Authenticator Protocol (CTAP) bietet eine Schnittstelle zum Zugriff auf Authentikatoren über verschiedene Methoden (NFC, USB, Bluetooth). Eine einzigartige Funktion besteht darin
Passkeys gegen WebAuthn Sowohl WebAuthn- als auch PassKey -Generation beinhaltet den Empfangen einer Serverherausforderung und die Verwendung von navigator.credentials.create
, um ein Schlüsselpaar zu generieren. Der öffentliche Schlüssel wird an den Server gesendet. Login verwendet navigator.credentials.get
, um eine neue Herausforderung zu unterzeichnen, die dann vom Server überprüft wird.
PassKey -Verwendung umfasst Bescheinigung (Registrierung) und Behauptung (Anmeldung) Phasen.
navigator.credentials.create
ist von zentraler Bedeutung für die Bescheinigung. Optionen geben das gewünschte Schlüsselpaar an:
// ... (code snippet for PublicKeyCredentialCreationOptions) ...
Die Antwort enthält den öffentlichen Schlüssel und clientDataJSON
(enthält type
, challenge
und origin
). Der Server validiert diese Daten und speichert den öffentlichen Schlüssel, die ID und optional den Algorithmus attestationObject
und Cose.
navigator.credentials.get
verarbeitet die Behauptung.
// ... (code snippet for PublicKeyCredentialRequestOptions) ...
Die Antwort enthält die Signatur und authenticatorData
(mit dem Ursprung Hash und signCount
). Der Server überprüft die Signatur, clientDataJSON
und signCount
zur Authentifizierung.
aktuelle Einschränkungen umfassen eine begrenzte Support des Betriebssystems (insbesondere Windows und Linux) und mangelnde Interoperabilität zwischen Google und Apples Passkey -Plattformen.
weit verbreitete Einführung des Betriebssystems wird die Nutzung erhöht. Passwortmanager integrieren den Passkey -Support und der native Support auf Android und iOS wird ihre Position weiter festigen. Passkeys verspricht eine passwortlose Zukunft, die Sicherheit und Benutzererfahrung verbessert.
Das obige ist der detaillierte Inhalt vonPasskeys: Was zum Teufel und warum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!