Maison > interface Web > tutoriel CSS > Passkeys: Qu'est-ce que diable et pourquoi?

Passkeys: Qu'est-ce que diable et pourquoi?

William Shakespeare
Libérer: 2025-03-09 10:44:11
original
707 Les gens l'ont consulté

Passkeys: What the Heck and Why?

Passkeys gagnent rapidement en traction en tant que méthode d'authentification révolutionnaire. En bonne place au W3C TPAC 2022, ils se sont intégrés dans Safari 16, MacOS, iOS, et sont prêts à devenir la norme pour les gestionnaires de mots de passe comme 1Password. Déjà pris en charge sur Android, les versions futures apporteront des fonctionnalités de lakeke à Chrome OS et Windows.

Bien que souvent négligé dans la communauté frontale, l'impact de Passkeys sur l'expérience utilisateur, en particulier concernant l'authentification et le traitement de formulaire, est indéniable. Cet article explore Passkeys et l'API WebAuthn, offrant une compréhension complète de cette technologie émergente.

Table des matières

  • Terminologie clé
  • Comprendre Passkeys
  • Passkeys: un remplacement de mot de passe
  • La cryptographie expliquée
  • Accéder à Passkeys
  • Passkeys vs webauthn
  • Le processus d'authentification: un résumé
  • un regard détaillé sur la mise en œuvre de Passkey
  • Inconvénients potentiels
  • L'avenir de Passkeys
  • Ressources supplémentaires

Terminologie clé

naviguer dans le monde des clés de pass nécessite une familiarité avec une terminologie spécifique. Clarifions quelques concepts clés:

  • Rapport de la partie (serveur): Les demandes d'authentification de gestion de serveur. Nous utiliserons "serveur" tout au long de cet article.
  • Client: Le navigateur Web ou le système d'exploitation.
  • Authenticatrice: Génération de logiciels ou de matériel et de stockage de paires de clés publiques.
  • fido: Une organisation de normes ouvertes définissant les informations d'identification FIDO.
  • webAuthn: Le protocole sous-jacent pour PassKeys (également connu sous le nom d'identification FIDO2 ou les informations d'identification FIDO).
  • PassKeys: webauthn avec synchronisation cloud (références FIDO multi-appareils, informations d'identification découvrables ou informations d'identification résidentes).
  • Cryptographie de clé publique: Un système utilisant des paires de clés privées et publiques pour la signature / vérification ou le cryptage / décryptage (cryptographie asymétrique).
  • RSA: un algorithme de cryptographie de clé publique.
  • Cryptographie de la courbe elliptique (ECC): un algorithme de cryptographie public de clé publique moderne.
  • ES256: Une clé publique de courbe elliptique utilisant l'algorithme de signature ECDSA avec hachage SHA256.
  • RS256: similaire à ES256, mais utilise RSA avec RSASSA-PKCS1-V1.5 et Sha256.

Comprendre Passkeys

Avant de discuter de Passkeys, nous devons comprendre WebAuthn (FIDO2). PassKeys s'appuie sur WebAuthn, en tirant parti de la cryptographie de clé publique pour remplacer les mots de passe. Un périphérique de sécurité (clé matérielle ou TPM) génère des clés privées et publiques.

La clé publique est ouvertement accessible, tandis que la clé privée reste en toute sécurité stockée sur le dispositif de génération. Une limitation clé de WebAuthn était la dépendance de l'appareil; Perdre l'appareil signifiait perdre l'accès. PassKeys aborde cela grâce à la synchronisation du cloud, permettant un accès sur plusieurs appareils. Cependant, il est important de noter que les informations d'identification à disque unique existent également.

Actuellement, iOS, MacOS et Android offrent une prise en charge complète des Passkeys synchronisés dans le cloud, bien que la compatibilité des navigateurs reste un facteur. Google Password Manager et Apple iCloud Keychain Facilite la synchronisation.

Passkeys: un remplacement de mot de passe

La cryptographie de clé publique utilise Signer . Les données sont traitées à l'aide d'une clé privée via un algorithme de signature, puis vérifié à l'aide de la clé publique. Tout le monde peut générer une paire de clés, mais seule la clé privée peut créer une signature vérifiable avec la clé publique correspondante. Cette signature remplace le mot de passe. Le serveur stocke la clé publique et l'authentification implique de vérifier la possession de la clé privée en signant un défi aléatoire.

Cette approche élimine les risques associés aux violations de mot de passe. Si une base de données est compromise, seules les clés publiques sont exposées, ce qui les rend inutiles aux attaquants. Les mots de passe oubliés deviennent une chose du passé, car les navigateurs se souviennent des informations d'identification, simplifiant les processus de connexion. La biométrie ou les épingles peuvent améliorer la sécurité.

La cryptographie expliquée

La cryptographie de clé publique utilise des paires clés privées et publiques. Le cryptage utilise la clé publique du destinataire, garantissant que seule la clé privée du destinataire peut décrypter. Cela fournit confidentialité . Authenticité est assurée par la signature et la vérification. La clé privée de l'expéditeur signe un hachage de message, vérifiable uniquement avec la clé publique de l'expéditeur.

Accéder à Passkeys

L'accès nécessite la génération et le stockage de clés, souvent facilitées par un Authenticator (matériel ou logiciel). Les authentificateurs de logiciels peuvent utiliser un TPM ou une enclave sécurisée, tandis que les authentificateurs matériels incluent des appareils comme Yubikeys.

Le protocole Client to Authenticator (CTAP) fournit une interface pour accéder aux authentificateurs via diverses méthodes (NFC, USB, Bluetooth). Une fonctionnalité unique utilise un téléphone (via Bluetooth) en tant qu'authentificateur pour les appareils dépourvus de support Native Passkey.

Passkeys vs webauthn

PassKeys (multi-appareils) diffèrent des touches WebAuthn (apparence unique) dans les processus de stockage et de connexion. WebAuthn nécessite une poignée utilisateur et une liste d'autoroute, tandis que PassKeys utilise le nom de domaine du serveur pour identifier les clés associées, rationalisant le processus de connexion. Cryptographiquement, ils sont essentiellement identiques.

Le processus d'authentification: un résumé

La génération WebAuthn et PassKey impliquent de recevoir un défi de serveur et d'utiliser navigator.credentials.create pour générer une paire de clés. La clé publique est envoyée au serveur. Login utilise navigator.credentials.get pour signer un nouveau défi, qui est ensuite vérifié par le serveur.

un regard détaillé sur la mise en œuvre de Passkey

L'utilisation de la clé passante implique d'attestation (enregistrement) et phases d'assistance (connexion).

ATTESTATION

navigator.credentials.create est central à l'attestation. Options Spécifiez la paire de clés souhaitée:

// ... (code snippet for PublicKeyCredentialCreationOptions) ...
Copier après la connexion

La réponse comprend la clé publique et clientDataJSON (contenant type, challenge et origin). Le serveur valide ces données et stocke la clé publique, l'ID, et éventuellement l'algorithme attestationObject et COSE.

Assertion

navigator.credentials.get gère l'affirmation.

// ... (code snippet for PublicKeyCredentialRequestOptions) ...
Copier après la connexion

La réponse comprend la signature et authenticatorData (contenant le hachage d'origine et signCount). Le serveur vérifie la signature, clientDataJSON et signCount pour l'authentification.

Inconvénients potentiels

Les limitations actuelles incluent une prise en charge limitée du système d'exploitation (en particulier Windows et Linux) et le manque d'interopérabilité entre les plates-formes Passkey de Google et Apple.

L'avenir de Passkeys

L'adoption généralisée du système d'exploitation entraînera une utilisation accrue. Les gestionnaires de mots de passe intégreront le support de lakeke, et le support natif sur Android et iOS solidifieront davantage leur position. PassKeys promet un avenir sans mot de passe, améliorant la sécurité et l'expérience utilisateur.

Ressources supplémentaires

  • Demo en direct
  • Démo GitHub Repository
  • Documentation Yubikey
  • Passkeys.dev
  • Passkeys.io
  • webauthn.io

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal