Les mots de passe à usage unique (TOTP) sont de plus en plus utilisés comme moyen de défense contre le phishing et d’autres types d’attaques visant à voler les identifiants de connexion. Ils font généralement partie intégrante du processus d’authentification à deux facteurs : voici quelques alternatives open source à des noms tels que Google Authenticator et Microsoft Authenticator.
L’authentification à deux facteurs (2FA) est une procédure de sécurité qui exige de l’utilisateur qu’il fournisse deux facteurs d’authentification différents pour accéder à un compte ou à un système. L’une des méthodes d’authentification à deux facteurs les plus courantes et les plus sûres repose sur l’utilisation de mots de passe à usage unique, valables pendant une courte période, appelés mots de passe à usage unique (OTP).
L’authentification à deux facteurs basés sur les OTP nécessite l’utilisation d’un dispositif générateur de mots de passe à usage unique, tel qu’un jeton matériel ou une application logicielle (généralement installée sur un appareil mobile tel qu’un smartphone, mais souvent également disponible dans une version pour les systèmes de bureau). Lorsque l’utilisateur souhaite accéder à un compte ou à un système protégé par une authentification à deux facteurs basés sur des codes OTP, il est invité à se connecter avec le nom d’utilisateur et le mot de passe corrects, puis à saisir le mot de passe à usage unique généré par le dispositif OTP.
Le mot de passe à usage unique est généré à l’aide d’un algorithme cryptographique qui utilise un secret partagé entre le dispositif OTP et le système d’authentification. Le mot de passe à usage unique n’est valable que pour une courte période (quelques secondes) et ne peut pas être réutilisé, ce qui rend difficile pour les pirates de l’utiliser pour accéder au compte de quelqu’un d’autre.
L’utilisation de l’authentification à deux facteurs basés sur l’OTP est de plus en plus courante dans de nombreux contextes, tels que l’accès aux services en ligne, la sécurité des transactions financières et l’accès aux réseaux d’entreprise.
Dans la mesure du possible, il est toujours préférable d’éviter d’envoyer les codes OTP par SMS, un système aujourd’hui considéré comme peu sûr. Premièrement, l’envoi d’OTP par SMS peut faire l’objet d’écoutes et d’attaques de phishing ; deuxièmement, l’envoi d’OTP par SMS peut faire l’objet d’attaques de spoofing, dans lesquelles les pirates envoient un message SMS qui semble provenir du système d’authentification, mais qui n’est en fait pas créé pour mettre les utilisateurs en danger. Dans un autre article, nous expliquons en détail ce que sont l’usurpation de SMS et le smishing.
Lorsque l’on parle d’authentification à deux facteurs par OTP, on pense souvent à des applications telles que Google Authenticator ou Microsoft Authenticator, mais il n’est pas indispensable de s’en remettre à des applications propriétaires : le monde de l’open source offre de nombreuses alternatives de premier ordre. Authy, par exemple, est très connu.
Qu’est-ce que le TOTP (Time-Based One-Time Password) ?
Dans le cas des applications mentionnées, il convient toutefois de parler de TOTP, c’est-à-dire de la génération de mots de passe à usage unique basés sur le temps : un algorithme spécial est utilisé pour générer des mots de passe à usage unique qui ne sont valables que pour une courte période de temps. Comme nous l’avons expliqué dans l’article mentionné au début, un algorithme TOTP est utilisé pour générer le code à usage unique, qui combine un secret avec un horodatage (ou l’heure actuelle) et renvoie un code numérique à 6 chiffres qui n’est valable que pendant une période limitée, généralement 30 secondes. Une fois ce délai écoulé, l’application TOTP génère un nouveau code, toujours différent du précédent.
Les applications génératrices de TOTP peuvent être utilisées pour prouver la possession du secret à un moment précis : elles sont pratiques car elles ne nécessitent pas de matériel particulier ; tout appareil doté d’une unité centrale et d’une horloge correctement réglée peut générer un code TOTP valide.
De nombreux utilisateurs considèrent des applications telles que Google Authenticator et Microsoft Authenticator avec une certaine réticence, car ils ne font pas confiance au code propriétaire et craignent de se retrouver en difficulté, avec l’impossibilité d’accéder à leurs différents comptes en ligne, en cas de perte ou de vol de leur appareil. Google a récemment permis la sauvegarde des informations d’authentification via TOTP (tokens) sur le cloud, mais l’absence de chiffrement de bout en bout en a fait sourciller plus d’un. C’est pourquoi la société de Mountain View a décidé d’agir rapidement et d’activer le chiffrement de bout en bout sur Authenticator également.
Applications OTP pour l’authentification à deux facteurs du monde open source : Aegis et FreeOTP+
Si vous cherchez des alternatives aux Authenticators de Google et de Microsoft, vous pouvez vous tourner avec confiance vers des propositions open source telles qu’Aegis et FreeOTP+.
Aegis est téléchargeable gratuitement et stocke les jetons permettant de générer des OTP acceptés sur différents comptes dans un coffre-fort local crypté. Le coffre-fort peut être protégé par un mot de passe et éventuellement par des données biométriques telles que l’empreinte digitale ou la reconnaissance faciale. Si l’on oublie le mot de passe utilisé pour défendre le contenu du coffre-fort Aegis, il ne sera en aucun cas possible de récupérer ses jetons.
L’utilisation du capteur d’empreintes digitales accélère considérablement le processus d’authentification, même si parfois Aegis vous demande encore de confirmer votre mot de passe : « pour ne pas risquer de l’oublier… », estiment les auteurs de l’application. Dommage que cela arrive toujours lorsqu’on est pressé d’accéder à un service.
Les secrets TOTP sont des chaînes base32 arbitraires et ne sont donc pas très agréables à taper sur le clavier d’un téléphone. Heureusement, la plupart des services qui utilisent des codes OTP offrent la possibilité de générer un code QR contenant le secret : Aegis, comme d’autres applications de la même catégorie, peut utiliser l’appareil photo du smartphone pour les lire, capturer le contenu et configurer rapidement de nouveaux comptes à partir des services pris en charge.
Par défaut, Aegis affiche un écran avec tous les services déjà configurés, avec l’OTP actuellement valide pour chacun d’entre eux. En tapant sur un service particulier, vous pouvez copier le code OTP en mémoire et le coller dans un autre formulaire.
Aegis intègre diverses fonctions d’importation et d’exportation de données : l’écran d’importation est l’un des points forts de l’application, car il prend en charge un large éventail d’applications tierces, notamment Google Authenticator, Microsoft Authenticator et Cisco Duo.
Le fichier d’exportation est crypté par défaut, à moins que l’utilisateur n’ait recours à quelques options dont l’utilisation est fortement déconseillée.
Une autre application TOTP que nous recommandons vivement s’appelle FreeOTP+ et est elle-même une version dérivée de FreeOTP, publiée à l’origine (sous la licence Apache2) par Red Hat. À première vue, FreeOTP+ ressemble à Aegis en ce sens qu’il présente un écran unique qui se remplit progressivement avec les comptes ajoutés par l’utilisateur.
Par rapport à Aegis et à d’autres solutions similaires, FreeOTP+ n’affiche pas le code OTP valide pour un compte donné tant qu’il n’est pas touché. L’application peut être configurée pour demander une authentification au démarrage avant de fournir un code, mais ce comportement n’est pas activé par défaut.
Comme Aegis, FreeOTP+ peut ajouter des secrets TOTP provenant d’un code QR dans son archive, tout en offrant des options d’importation et d’exportation beaucoup plus limitées. Il ne prend pas non plus en charge l’organisation des comptes en groupes, ce que permet Aegis.
Sur le bureau, le gestionnaire de mots de passe open source KeePassXC permet également la gestion des codes TOTP : récemment audité pour vérifier la sécurité de KeePassXC et avec la prise en charge des passkeys qui sera bientôt ajoutée, KeePassXC permet d’activer TOTP simplement en allant dans la section Advanced.
Ici, en tapant otpauth://totp/ KeePassXC affiche un petit cadran d’horloge qui, lorsqu’on clique dessus, calcule et affiche un code OTP valide. La documentation du programme recommande de stocker les données TOTP dans une base de données distincte de celle qui contient les mots de passe, voire sur un appareil différent. Les raisons de cette suggestion sont évidentes : il ne faut jamais conserver le secret avec lequel les codes OTP sont générés à côté des identifiants de connexion aux différents comptes.