Maison >interface Web >tutoriel CSS >Passkeys: Qu'est-ce que diable et pourquoi?
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.
naviguer dans le monde des clés de pass nécessite une familiarité avec une terminologie spécifique. Clarifions quelques concepts clés:
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.
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 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.
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 (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.
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.
L'utilisation de la clé passante implique d'attestation (enregistrement) et phases d'assistance (connexion).
navigator.credentials.create
est central à l'attestation. Options Spécifiez la paire de clés souhaitée:
// ... (code snippet for PublicKeyCredentialCreationOptions) ...
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.
navigator.credentials.get
gère l'affirmation.
// ... (code snippet for PublicKeyCredentialRequestOptions) ...
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.
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'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.
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!