Passkeys: Was zum Teufel und warum?
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.
Inhaltsverzeichnis
- Key Terminology
- Passkeys verstehen
- Passkeys: ein Kennwortersatz
- Kryptographie erklärt
- Zugriff auf Passkeys
- Passkeys gegen WebAuthn
- Der Authentifizierungsprozess: eine Zusammenfassung
- Ein detaillierter Blick auf die PassKey -Implementierung
- mögliche Nachteile
- Die Zukunft von Passkeys
- Weitere Ressourcen
Key Terminology
Die Navigation in der Welt der Passkeys erfordert Vertrautheit mit spezifischer Terminologie. Lassen Sie uns einige Schlüsselkonzepte klären:
- REGELYING Party (Server): Die Serverhandhabungs -Authentifizierungsanforderungen. Wir werden in diesem Artikel "Server" verwenden.
- Client: Der Webbrowser oder Betriebssystem.
- Authenticator: Software oder Hardware generieren und speichern öffentliche Schlüsselpaare.
- FIDO: Eine Open Standards -Organisation, die FIDO -Anmeldeinformationen definiert.
- WebAuthn: Das zugrunde liegende Protokoll für Passkeys (auch als FIDO2-Anmeldeinformationen oder Einzelgeschwindigkeits-FIDO-Anmeldeinformationen bezeichnet).
- Passkeys: WebAuthn mit Cloud-Synchronisation (Multi-Device-FIDO-Anmeldeinformationen, aufdeckbare Anmeldeinformationen oder Resident-Anmeldeinformationen).
- Kryptographie der öffentlichen Schlüssel: Ein System, das private und öffentliche Schlüsselpaare zur Unterschrift/Überprüfung oder Verschlüsselung/Entschlüsselung verwendet (asymmetrische Kryptographie).
- rsa: Ein kryptografischer Algorithmus für öffentliche Schlüssel.
- Kryptographie (ECC) elliptische Kurve (ECC): Ein moderner Kryptographie -Algorithmus für öffentliche Schlüssel.
- ES256: Eine elliptische Kurve öffentlicher Schlüssel unter Verwendung des ECDSA -Signieralgorithmus mit SHA256 Hashing.
- rs256: Ähnlich wie ES256, verwendet RSA jedoch mit RSASSA-PKCS1-V1.5 und SHA256.
Passkeys
verstehenBevor 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
Cryptography Public Key verwendet
. 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 erklärt
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 auf Passkeys
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 WebAuthnPasskeys (Multi-Device) unterscheiden sich von WebAuthn-Tasten (Single-Device) in Speicher- und Anmeldungsprozessen. WebAuthn benötigt einen Benutzerhandle und eine List für Zulassungszusagen, während PassKeys den Domänennamen des Servers verwenden, um zugehörige Schlüssel zu identifizieren und den Anmeldungsprozess zu optimieren. Kryptografisch sind sie im Wesentlichen identisch.
Der Authentifizierungsprozess: eine Zusammenfassung
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.
Ein detaillierter Blick auf die PassKey -Implementierung
PassKey -Verwendung umfasst Bescheinigung (Registrierung) und Behauptung (Anmeldung) Phasen.
Bescheinigung
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.
Assertion
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.
mögliche Nachteile
aktuelle Einschränkungen umfassen eine begrenzte Support des Betriebssystems (insbesondere Windows und Linux) und mangelnde Interoperabilität zwischen Google und Apples Passkey -Plattformen.
Die Zukunft von Passkeys
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.
Weitere Ressourcen
- Live Demo
- Demo Github Repository
- Yubikey -Dokumentation
- passkeys.dev
- passkeys.io
- webauthn.io
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

CSS Grid ist eine Sammlung von Eigenschaften, die das Layout einfacher machen als jemals zuvor. Wie alles andere ist es eine kleine Lernkurve, aber das Gitter ist

Ich sehe, dass Google -Schriftarten ein neues Design (Tweet) ausgelöst haben. Im Vergleich zur letzten großen Neugestaltung fühlt sich dies viel iterativer an. Ich kann den Unterschied kaum erkennen
