suchen
HeimWeb-FrontendCSS-TutorialPasskeys: Was zum Teufel und warum?

Passkeys: What the Heck and Why?

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

verstehen

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

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 WebAuthn

Passkeys (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!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was ist CSS Grid?Was ist CSS Grid?Apr 30, 2025 pm 03:21 PM

CSS Grid ist ein leistungsstarkes Tool zum Erstellen komplexer, reaktionsschneller Weblayouts. Es vereinfacht das Design, verbessert die Zugänglichkeit und bietet mehr Kontrolle als ältere Methoden.

Was ist CSS Flexbox?Was ist CSS Flexbox?Apr 30, 2025 pm 03:20 PM

In Artikel wird CSS Flexbox erörtert, eine Layoutmethode zur effizienten Ausrichtung und Verteilung des Raums in reaktionsschnellen Designs. Es erklärt die Verwendung von Flexbox, vergleicht es mit CSS -Gitter und Details Browser -Unterstützung.

Wie können wir unsere Website mit CSS reagieren?Wie können wir unsere Website mit CSS reagieren?Apr 30, 2025 pm 03:19 PM

In dem Artikel werden Techniken zum Erstellen von reaktionsschnellen Websites mithilfe von CSS erörtert, einschließlich Ansichtsfenster -Meta -Tags, flexiblen Gitter, Flüssigkeitsmedien, Medienabfragen und relativen Einheiten. Es deckt auch mit CSS -Raster und Flexbox zusammen und empfiehlt CSS -Framework

Was macht die CSS-Box-Größeneigenschaft?Was macht die CSS-Box-Größeneigenschaft?Apr 30, 2025 pm 03:18 PM

In dem Artikel wird die CSS-Box-Größeneigenschaft erörtert, in der die Berechnung der Elementabmessungen steuert. Es erklärt Werte wie Inhaltsbox, Border-Box und Padding-Box sowie deren Auswirkungen auf das Layout-Design und die Form von Formularausrichtung.

Wie können wir mit CSS animieren?Wie können wir mit CSS animieren?Apr 30, 2025 pm 03:17 PM

In Artikel wird das Erstellen von Animationen mithilfe von CSS, Schlüsseleigenschaften und Kombination mit JavaScript erläutert. Hauptproblem ist die Browserkompatibilität.

Können wir mit CSS 3D -Transformationen zu unserem Projekt hinzufügen?Können wir mit CSS 3D -Transformationen zu unserem Projekt hinzufügen?Apr 30, 2025 pm 03:16 PM

In Artikel werden CSS für 3D -Transformationen, wichtige Eigenschaften, Browserkompatibilität und Leistungsüberlegungen für Webprojekte erläutert. (Charakterzahl: 159)

Wie können wir Gradienten in CSS hinzufügen?Wie können wir Gradienten in CSS hinzufügen?Apr 30, 2025 pm 03:15 PM

In dem Artikel werden CSS -Gradienten (linear, radial, wiederholt) beschrieben, um die Website -Visuals, das Hinzufügen von Tiefe, Fokus und moderne Ästhetik zu verbessern.

Was sind Pseudoelemente in CSS?Was sind Pseudoelemente in CSS?Apr 30, 2025 pm 03:14 PM

In Artikel werden Pseudoelemente in CSS, deren Verwendung bei der Verbesserung des HTML-Stylings und der Unterschiede zu Pseudoklassen erläutert. Bietet praktische Beispiele.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen