() est un standard du World Wide Web Consortium (W3C) avec la contribution de la qui propose une interface d'authentification des utilisateurs aux applications Web à l'aide de clés asymétriques. Cette interface est une extension de l'API plus générale « » qui définit comment les navigateurs Web ou autres agents utilisateur doivent interagir avec un gestionnaire de mots de passe.

peut être utilisé dans un contexte d'authentification simple, l'utilisateur n'étant pas obligé de fournir d'informations supplémentaires, comme un nom d'utilisateur ou un mot de passe. Toutefois, pour plus de sécurité, le système qui demande l'authentification peut exiger ces informations, ce qui en fait un processus d'authentification multifacteur. peut également être combiné à d'autres facteurs d'authentification, tels que des gestes ou une vérification biométrique, ce qui améliore la sécurité, tout en évitant aux utilisateurs de saisir des chaînes de caractères longues et complexes.

peut être implémenté de différentes façons, car les opérations cryptographiques sous-jacentes sont déléguées à un authentificateur, qui est un modèle fonctionnel abstrait. Cela permet d'implémenter entièrement dans un logiciel, ou d'utiliser le (TEE) d'un processeur ou encore un (TPM). Les opérations cryptographiques sensibles peuvent aussi être déléguées à des jetons d'authentification externes auxquels on peut accéder via USB, Bluetooth ou par communication en champ proche (NFC). Cette pratique est en général considérée plus sécurisée, car les clés privées ne sont à aucun moment accessibles par les logiciels exécutés sur la machine. La communication avec les jetons d'authentification externes est conçue pour fonctionner avec le protocole CTAP (), ce qui permet à d'être rétrocompatible avec la norme U2F.

et CTAP font tous deux partie du projet FIDO2 qui vise à standardiser les processus d'authentification sécurisés et sans mot de passe et dépasse le cadre des navigateurs et du Web. Ces deux protocoles sont basés sur des travaux antérieurs effectués par la FIDO Alliance, en particulier sur les normes (UAF) et (U2F).

Prise en charge des applications et des appareils La proposition de recommandation « » a été publiée le .

Google Chrome prend en charge depuis la version 67. Mozilla Firefox, qui n'avait pas entièrement pris en charge le précédent standard FIDO U2F, a inclus et activé dans la version 60 de Firefox, publiée le . En 2018, la version publiée de Microsoft Edge pour Windows Insider intégrait une version de qui fonctionnait à la fois avec Windows Hello et avec des clés de sécurité externes.

Les clés FIDO U2F existantes sont largement compatibles avec la norme WebAuthn, bien que ajoute la possibilité d'utiliser un identificateur unique () par compte, que les jetons d'authentification les plus anciens ne peuvent pas stocker. L'un des premiers authentificateurs officiellement compatible avec était la YubiKey « » de Yubico, annoncée le .

Dropbox a annoncé la prise en charge des connexions (en tant que deuxième facteur d'authentification) le .

API L'API étend les méthodes JavaScript navigator.credentials.create() et navigator.credentials.get() de l'API « » afin qu'elles acceptent un paramètre publicKey.

La méthode create() est utilisée pour l'enregistrement d'authentificateurs en les associant à des comptes d'utilisateurs (par exemple au moment de la création du compte ou lors de l’ajout d’un nouveau dispositif de sécurité à un compte existant) alors que la méthode get() est utilisée pour l'authentification (par exemple lors de la connexion à un compte).

Pour vérifier si un navigateur implémente , les scripts doivent vérifier si l'interface window.PublicKeyCredential est définie.

En plus de PublicKeyCredential, la norme définit les interfaces AuthenticatorResponse, AuthenticatorAttestationResponse et AuthenticatorAssertionResponse, ainsi que divers dictionnaires et d'autres types de données.

À l'exception de la demande de création initiale, l'API n'autorise pas l'accès direct ni la manipulation de clés privées.

Critique En , une équipe de chercheurs de a réalisé un audit de sécurité du futur standard . Bien qu'aucun exploit n'ait été trouvé, l'audit a révélé de graves faiblesses dans la manière dont la cryptographie sous-jacente au protocole est utilisée et est prescrite par le standard.

Les problèmes détectés avaient déjà affecté d'autres systèmes cryptographiques par le passé et doivent donc être corrigés pour éviter des attaques similaires sur :

La FIDO Alliance a basé son standard sur un système de cryptographie asymétrique appelé ECDAA. Il s'agit d'une version de (DAA) basée sur des courbes elliptiques. Dans le cas de , elle est censée être utilisée pour vérifier l'intégrité des authentificateurs, tout en préservant la confidentialité des utilisateurs, car elle ne permet pas une corrélation globale des identificateurs. Cependant, ECDAA ne tient pas compte de certaines des leçons tirées des dernières décennies de recherche dans le domaine de la cryptographie sur les courbes elliptiques, car la courbe choisie présente certains déficits de sécurité inhérents à ce type de courbes, ce qui réduit considérablement les garanties de sécurité. De plus, la norme ECDAA implique des signatures aléatoires, non déterministes, ce qui a déjà posé un problème par le passé.

Les auditeurs de ont également critiqué la façon dont la norme a été élaborée, car la proposition n'a pas été rendue publique à l'avance et la communauté des cryptographes n'a pas été sollicitée. Par conséquent, la norme n'a pas été soumise à des recherches cryptographiques poussées dans le monde universitaire.

Malgré ces problèmes, les chercheurs de encouragent les utilisateurs à continuer d'utiliser , mais ont formulé des recommandations qu'ils espèrent voir mises en œuvre avant la finalisation de la norme. Corriger ces erreurs le plus tôt possible éviterait à l’industrie les difficultés liées à l’obsolescence prématurée de la norme et à la nécessité de compatibilité descendante.

Notes et références

Liens externes Web Authentication: An API for accessing Public Key Credentials Level 1 Web Authentication Working Group Web Authentication API on MDN

Catégorie:Sécurité sur Internet Catégorie:Système d'authentification Catégorie:W3C Catégorie:Pages avec des traductions non relues