Depuis plusieurs mois, les annonces se succèdent pour l’adoption de la technologie passkey en lieu et place des mots de passe. Jugée plus fiable, elle doit selon une étude d’eSentire, être correctement configurée sous peine d’être vulnérable aux attaques de type AitM (adversary in the middle). En l’espèce, une mauvaise mise en œuvre des méthodes d’authentification de secours peut engendrer une attaque de contournement du flux d’authentification via la modifiant les invites affichés aux utilisateurs.

« Quand les passkeys sont utilisés comme méthode d'authentification de premier facteur uniquement, le flux d'authentification dégradé est vulnérable à une attaque AitM », a déclaré dans un article de blog Joe Stewart, chercheur principal en sécurité à l'unité de réponse aux menaces Threat Response Unit (TRU) d'eSentire. « Dans la mesure où l'AitM peut manipuler la vue présentée à l'utilisateur en modifiant le HTML, le CSS et les images ou le JavaScript dans la page de connexion lorsqu'elle est transmise par proxy à l'utilisateur final, elle peut contrôler le flux d'authentification et supprimer toutes les références à l'authentification par clé de chiffrement ». Cette découverte signifie que les comptes considérés comme plus sûrs parce qu’il y a derrière, une authentification par passkey sans mot de passe, comme ceux des plateformes en ligne des banques, du e-commerce, des réseaux sociaux, des comptes dans le cloud et des plateformes de développement de logiciels, peuvent toujours être piratés.

Rédaction de la clé d'accès pour GitHub et Microsoft

À l'aide de preuves de concept (PoC) détaillés, M. Stewart explique dans le blog qu’il est possible d’utiliser un logiciel AitM open source (comme Evilginx) pour tromper les utilisateurs de services IT populaires tels que GitHub, Microsoft et Google. Des phishlets spécifiques, c’est-à-dire des scripts permettant des attaques AitM en capturant des jetons d'authentification et des cookies de session à partir de pages de connexion réelles, peuvent être déployés dans Evilginx avec quelques lignes de code (édition du texte affiché) pour tromper les utilisateurs et les empêcher de s'authentifier à l'aide d'un mot de passe. « Nous avons utilisé la phishlet standard de GitHub que l'on peut trouver dans divers dépôts d'utilisateurs sur GitHub lui-même », a précisé l’expert. « Quand l'utilisateur ciblé visite l'URL du leurre, à part le nom d'hôte présent dans la barre d'URL, ce qu'il voit ressemble à la page de connexion normale de GitHub, parce qu'il s'agit de la page de connexion réelle de GitHub, simplement délivrée via un proxy par Evilginx.

« Cependant, en modifiant légèrement la configuration standard de la phishlet, il est possible de supprimer le texte « S’identifier avec la clé d’accès » », poursuit-il, ce qui montre à quel point il est facile de tromper un utilisateur en ne lui laissant pas d’autre choix que celui d’une authentification de secours basée sur un mot de passe. L'étude note que ce type d'attaque quand les clés de sécurité sont utilisées comme méthode d'authentification à la fois de premier et de second facteur. « Sauf si l'utilisateur se souvient spécifiquement que la page doit lui proposer une option de clé de sécurité, il se contentera probablement de saisir son nom d'utilisateur et son mot de passe, qui seront envoyés à l'attaquant avec le jeton d'authentification/les cookies, que l'attaquant pourra utiliser pour conserver un accès permanent au compte », a ajouté le spécialiste. Selon le chercheur d'eSentire, la plupart des implémentations de passkeys répertoriées sur passkeys.directory sont vulnérables à des attaques similaires d'expurgation de la méthode d'authentification appelées « authentication method redaction attacks ».

Des clés multiples en renfort

L'étude souligne en outre que presque toutes les méthodes d'authentification de secours (celles qui sont utilisées en plus des clés d'accès) sont sujettes aux attaques AitM. C’est le cas notamment des mots de passe, des questions de sécurité, des notifications push sur des appareils de confiance, de la récupération des contacts sociaux de confiance, du code par SMS, du courrier électronique, du téléphone, de la vérification des documents ou du lien magique envoyé par courrier électronique ou numéro de SMS prédéfini. Parmi ces options, seules la récupération des contacts sociaux de confiance, la vérification KYC (Know Your Customer, ou connaissance du client), et le lien magique peuvent contrecarrer l'AitM, mais à l’aide de paramètres complexes.

La méthode la plus sûre consiste à utiliser un deuxième passkey ou une clé matérielle FIDO2, le nouveau standard de connexion Web sécurisée. « Il est évident que les utilisateurs d'ordinateurs devraient avoir plusieurs passkeys, surtout si au moins l'une d'entre elles est une clé matérielle stockée en toute sécurité et sécurisée par un code PIN », a recommandé M. Stewart. « Mais compte tenu de l'adoption récente des clés de sécurité, le lien magique est probablement la méthode la plus sûre pour récupérer un compte en cas de perte d'une clé de sécurité ou de manipulation d'un flux d'authentification AitM ».