Authentification forte à l'aide des passkeys
I. Introduction
La notion d’authentification est centrale en matière de sécurité informatique. Nous sommes, au fil des années, passés par différentes étapes :
- Authentification à l’aide d’un mot de passe sans contrôle de robustesse identique sur tous nos comptes.
- Authentification à l’aide d’un mot de passe identique sur tous nos comptes avec l’application d’exigences précises en termes de longueur et de complexité.
- Adoption d’un gestionnaire de mots de passe permettant l’usage de password ou de passphrase unique et robuste pour chaque compte que l’on possède.
- Adoption d’une authentification multifacteur (par exemple : mot de passe + code à usage unique) ou d’une authentification forte (FIDO2, paire de clés cryptographique) pour les comptes jugés sensibles.
Mais force est de constater que l’utilisation des nouveaux standards en matière d’authentification est loin d’être généralisée. De plus, certaines attaques élaborées permettent de compromettre un système d’authentification quand bien même une authentification multifacteur de type mot de passe + code à usage unique est mise en place1. En effet, les mots de passe et les codes à usage unique sont sensibles à diverses catégories d’attaques : social engineering, attaque par rejeu, etc.
C’est ce constat qui a poussé la FIDO Alliance2, sous l’impulsion de Google, Microsoft et Apple, à proposer un nouveau standard permettant de se débarasser des mots de passe et ne nécessitant pas l’achat d’équipements matériels (carte à puce, clé de sécurité USB/NFC) jugés contraignants.
II. Qu’est-ce qu’une passkey (clé d’accès) ?
Les passkeys sont des clés utilisées dans le cadre de la norme FIDO 2 WebAuthn3 mais qui ne nécessitent pas l’usage de matériels physiques pour y être stockées. Elles se situent dans des coffres-forts (Bitwarden, iCloud, 1Password).
II.A Qu’est-ce que Fido 2 WebAuthn ?
Fido 2 WebAuthn est un ensemble de protocoles ouverts standardisés par l’Alliance FIDO. Il fait intervenir plusieurs acteurs4 :
- L’utilisateur.
- Le service (généralement web) auprès duquel l’utilisateur veut s’authentifier.
- Le logiciel client de l’utilisateur qui se connecte au service (exemple : un navigateur).
- Un authentificateur qui est un dispositif que possède l’utilisateur et qui dispose des clés privées associées à chaque service.
L’ authentification s’effectue à l’aide de la cryptographie asymétrique et des étapes suivantes (simplifiées) :
- Au préalable, l’utilisateur a indiqué au service qu’il voulait s’authentifier à l’aide de Fido 2 WebAuthn et y à déposer sa clé publique associée.
- L’ utilisateur souhaite maintenant accéder au service web en question et s’authentifier.
- Le service web envoie un challenge à l’utilisateur afin que ce dernier prouve son identité.
- L’ utilisateur déverouille sa clé privée stockée dans son coffre-fort ou son matériel (code PIN, passphrase) puis signe le challenge reçu à l’aide de la clé privée associée au service en question.
- Il envoie cette signature au service qui la vérifie à l’aide de la clé publique de l’utilisateur déposée lors de l’étape 1.
- Si la signature est valide alors l’authentification est réussie, sinon elle échoue.
Schéma simplifié d’une authentification FIDO 2 WebAuthn à l’aide d’une clé matérielle
II.B Usage des clés d’accès
Plutôt que de stocker les clés privées associées à chaque service dans un matériel physique, l’idée des passkeys est de les stocker dans des coffres-forts souvent hébergés dans le Cloud pour éviter des pertes qui pourraient s’avérer problématique. On évacue ici la question des coûts générés par l’achat de matériel ou le risque de perte/vol.
Cette authentification est considérée comme forte puisqu’elle repose sur une authentification par paire de clés cryptographiques. C’est également une authentification multifacteur puisque l’accès au coffre-fort (et donc aux clés privées) nécessite à minima un mot de passe ou une passphrase voire davantage. Enfin comme chaque clé privées est liée à un service, cela rend les passkeys insensibles aux attaques par hameçonnage notamment5.
II.C Création d’une authentification par passkey sur un compte Google avec Bitwarden
Google qui est l’un des promoteurs de cette solution propose l’usage de clés d’accès dès que l’on se connecte à l’un de ses services. Si l’on fait le choix de ne pas activer l’authentification par passkey à ce moment-là, il est possible de le faire plus tard via Gérer votre compte Google > Sécurité > Clés d’accès et clés de sécurité.
Cliquer ensuite sur Créer une clé d’accès, le plugin Bitwarden du navigateur s’ouvre et permet d’enregistrer la clé d’accès pour le compte en question (Enregistrer la clé d’identification). Google demande une dernière vérification et active cette méthode d’authentification. Simple non ?
Lors de la connexion au compte Google, préciser l’usage d’une clés d’accès. Le plugin Bitwarden du navigateur web demandera confirmation de se servir de la passkey. On se retrouve ainsi connecté en mode passwordless.
III. Les limites
Cette technologie est une réelle avancée. Elle devrait notamment aider à la démocratisation de la norme FIDO 2 à destination du grand public. Il reste cependant quelques problèmes à résoudre et notamment la question de la portabilité.
En effet, si l’ensemble de mes clés sont stockés dans le coffre-fort de Apple et que je veux changer de fournisseur, comment cela se passe-t-il ? Jusqu’à présent, aucune réponse satisfaisante n’était réellement fournie et l’on se retrouvait captif d’un environnement.
Depuis le mois d’octobre 2024, l’alliance FIDO propose des versions préliminaires de deux nouvelles spécifications favorisant l’échange sécurisé des clés d’accès d’un fournisseur à un autre6. Mais ces propositions louables sont encore immatures et les problématiques évoquées précédemment demeurent7.
IV. Conclusion
L’usage des clés d’accès simplifie grandement l’utilisation de la norme Fido 2 lors de l’authentification à des services web. Cette norme qui respecte l’état de l’art en matière d’authentification a pour ambition d’évincer les mots de passe. Inciter à s’en servir est donc une excellente initiative qu’il faut promouvoir autant que faire se peut. Bien que facile à mettre en place, les problèmes de portabilité entre différents écosystèmes peuvent encore en limiter l’adoption.
Références
-
https://next.ink/1700/une-vaste-campagne-phishing-contre-clients-microsoft-365-contourne-authentification-multifacteurs/ ↩
-
https://fidoalliance.org/fido-alliance-publishes-new-specifications-to-promote-user-choice-and-enhanced-ux-for-passkeys/ ↩
-
https://next.ink/154195/cles-dacces-lalliance-fido-propose-un-nouveau-standard-pour-lechange-securise-didentifiants/ ↩