Applications d’authentification à deux facteurs : erreurs de logiciels malveillants

Tout le monde en sécurité vous dira que vous avez besoin d’une authentification à deux facteurs (2FA), et nous sommes d’accord. Fin d’article ? Non. Le diable, comme toujours avec la sécurité, est dans les détails. Exemple : au cours des dernières semaines, rien de moins que Google a gâché son application Google Authenticator. La communauté de la sécurité a crié à haute voix, et même si ce n’est pas encore fini, il semble que Google soit sur le point de résoudre le problème.

Étant donné que 2FA fait désormais partie de toutes nos vies – ou du moins il devrait le faire – examinons rapidement son fonctionnement, les nombreux défis liés à la mise en œuvre correcte de 2FA, ce qui s’est passé avec Google Authenticator et les options dont vous disposez pour protégez-vous en ligne.

Vous connaissez ou utilisez probablement Google Authenticator, Microsoft Authenticator ou une application comme Authy. Ce que toutes ces applications d’authentification ont en commun est la génération d’un numéro à six chiffres dépendant du temps, avec une clé secrète. Peut-être avez-vous scanné cette clé secrète dans votre téléphone sous la forme d’un code QR ? Si l’un des éléments ci-dessus vous semble familier, vous avez utilisé un mot de passe à usage unique basé sur le temps (TOTP).

Sous la capuche

Ce qui se passe sous le capot avec TOTP n’a rien de secret, et en fait vous pouvez le faire vous-même en quelques lignes de Python si vous le souhaitez. Fondamentalement, il prend la clé secrète, la hache avec un horodatage et extrait six chiffres du résultat. Le serveur auquel vous vous authentifiez possède également la clé secrète et une horloge, fait le même calcul, et s’ils correspondent, il sait que vous êtes vous !

C’est un excellent système car un nouveau « mot de passe » à six chiffres est régénéré toutes les 30 secondes environ, ce qui le rend impossible à deviner avant son expiration. L’utilisation d’un hachage unidirectionnel du secret et de l’heure garantit que même si un attaquant écoute, il ne peut pas générer la clé suivante ou déterminer votre clé secrète à partir des interceptions. Et même si vous êtes victime d’un hameçonnage en tapant votre TOTP à six chiffres sur un mauvais site Web, il s’agit d’un mot de passe à usage unique, de sorte que les dommages sont limités à cette seule connexion. (Bien sûr, s’ils peuvent effacer votre compte bancaire dans cette seule connexion…)

La clé secrète sous-jacente dans le TOTP est plus longue et plus aléatoire que n’importe quel mot de passe qu’un humain choisirait, et si vous êtes comme la plupart des gens, vous ne l’avez même jamais vue – c’est dans ce code QR que vous avez scanné. La clé secrète TOTP est donc un bon mot de passe, et elle n’est stockée qu’à deux endroits : votre téléphone et le serveur auprès duquel vous vous authentifiez. Et c’est là que réside le hic. Que se passe-t-il lorsque vous perdez votre téléphone portable ?

Sauvegarde

La plupart des applications d’authentification ont une méthode de sauvegarde de la clé secrète sur un autre appareil. La plus courante consiste à générer un code QR avec votre clé secrète afin que vous puissiez simplement prendre une photo du téléphone un avec le téléphone deux. De cette façon, seule une personne regardant par-dessus votre épaule à ce moment précis peut voler la clé. Mais que se passe-t-il si vous souhaitez sauvegarder le secret dans le cloud ? C’est là que Google Authenticator a eu des problèmes.

La clé secrète est un secret, et dans le cas d’un jeton 2FA, c’est probablement un secret qui vous tient vraiment à cœur. Que faites-vous normalement lorsque vous envoyez ou stockez des secrets ? Vous les cryptez, n’est-ce pas ? Devinez quoi Google n’a pas faire lors de l’envoi de la clé secrète entre votre téléphone et leur serveur !

Comment la sauvegarde dans le cloud doit-elle être effectuée correctement ? Il doit être chiffré de bout en bout. C’est-à-dire que sur le premier téléphone, vous devez saisir un autre mot de passe pour le crypter avant qu’il ne soit envoyé à Google. Sur le téléphone récepteur deux, vous entrez à nouveau ce même mot de passe pour déchiffrer le secret TOTP. Au milieu, Google ou toute autre personne qui écoute devrait casser votre cryptage pour voler le secret TOTP, et vous avez la commodité du cloud.

Qu’est-ce qui pourrait mal tourner si Authenticator envoyait les clés en texte brut ? D’une part, vous ne voudrez peut-être pas faire confiance à Google avec vos clés secrètes TOTP. Bien sûr, si vous utilisez Google Authenticator seul pour se connecter à Google, ils ont déjà la clé secrète. Mais si vous stockez toutes vos clés TOTP dans un seul panier dans une application pratique, Google (ou toute personne qui pirate Google) a également accès à votre compte bancaire. Si Authenticator vous permettait de chiffrer les clés avant de les sauvegarder, vous n’auriez pas du tout besoin de faire confiance à Google. Ou surtout pas.

Faire confiance au TOTP

Les applications d’authentification sont une étrange affaire. D’une part, ils fournissent une connexion non répétitive qui aidera à vaincre les écoutes clandestines. D’autre part, le secret doit être utilisé sous une forme non hachée, à la fois sur votre téléphone et sur le serveur qui l’authentifie. Cela signifie qu’il n’y a pas de moyen super sûr de les stocker côté serveur, contrairement aux mots de passe ordinaires qui peuvent être stockés salés et hachés. Ainsi, la sécurité de vos clés TOTP repose sur le fait que le serveur d’authentification ne soit pas piraté. Vos clés TOTP sont beaucoup plus vulnérables à une violation de la base de données du serveur qu’un mot de passe ordinaire.

La clé TOTP est également stockée sous une forme lisible sur votre téléphone. Peut-être qu’il est crypté avec une autre clé secrète, mais si quelqu’un d’intelligent a votre téléphone, vous êtes probablement cuit. Pire encore, cela signifie que vous devez faire confiance à l’application TOTP. Sans surprise, il existe de nombreux cas d’applications d’authentification de logiciels malveillants qui volent simplement votre secret TOTP.

Mais vous devez également faire confiance à l’application d’authentification pour respecter votre vie privée. Alors qu’en principe un TOTP peut être généré sans aucun accès à Internet, et c’est en effet ce que font les jetons matériels comme le Yubikey, la plupart des applications d’authentification basées sur les téléphones portables téléphonent à la maison. Particulièrement flagrant parmi ceux-ci, Microsoft Authenticator renvoie des données personnellement identifiables vous concernant à Microsoft avant même que vous n’ayez accepté les termes et conditions, et le fait ensuite lorsque vous l’utilisez. Authy peut être encore pire, en transmettant les sites Web auxquels vous vous connectez. (Lien vidéo, excellent explicatif.) Il n’est pas clair si les informations que Google Authenticator envoie à la maison vous identifient de manière unique, mais c’est certainement plus que nécessaire pour que le logiciel fonctionne, ce qui n’est pas le cas.

Open source

Tout cela semble assez sombre pour 2FA. D’une part, la sauvegarde peut être difficile ou difficile à obtenir correctement. De l’autre, les entreprises qui vous fournissent le logiciel vous espionnent. Faut-il juste abandonner ?

Non! N’oubliez pas que le système TOTP est ouvert et même simple à mettre en œuvre, et qu’il existe de nombreuses applications open source qui n’envahissent pas votre vie privée. FreeOTP de RedHat fonctionne sur iOS et Android, et serait notre premier choix si nous ne faisions pas le nôtre. Aegis Authenticator est également bien recommandé, mais ne fonctionne que sur Android. Il doit y en avoir d’autres, donc si vous avez un favori, n’hésitez pas !

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.