Au cours des deux dernières années, le concept d’authentification à deux facteurs (2FA), longtemps réservé aux geeks, a fait son chemin dans le grand public. Toutefois, les discussions se limitent encore largement à l’utilisation de l’authentification à deux facteurs pour les mots de passe à usage unique par SMS. C’est triste à dire, mais ce n’est pas l’option la plus fiable. Voici pourquoi :

  • Il est facile de jeter un coup d’œil furtif aux mots de passe envoyés par SMS si les notifications de l’écran de verrouillage sont activées.
  • Même si les notifications sont désactivées, une carte SIM peut être retirée et installée dans un autre smartphone, donnant accès aux SMS contenant des mots de passe.
  • Les SMS contenant des mots de passe peuvent être interceptés par un cheval de Troie tapi dans le smartphone.
  • Utilisant diverses tactiques sournoises (persuasion, corruption, etc.), les criminels peuvent se procurer une nouvelle carte SIM avec le numéro de la victime dans un magasin de téléphonie mobile. Les SMS iront alors sur cette carte, et le téléphone de la victime sera déconnecté du réseau.
  • Les SMS contenant des mots de passe peuvent être interceptés grâce à une faille de base dans le protocole SS7 utilisé pour transmettre les messages.

Notez que même la plus high-tech et la plus laborieuse des méthodes de vol de mot de passe par SMS ci-dessus (exploitation SS7) a déjà été utilisée dans la pratique. Le reste est de la routine quotidienne pour les méchants. Cela dit, nous n’avons pas affaire à des hypothèses, mais à une menace réelle.

Dans l’ensemble, les mots de passe SMS ne sont pas très sûrs, et parfois ils sont très peu sûrs. Il est donc logique de scruter l’horizon pour trouver des alternatives lorsqu’il s’agit de 2FA, ce qui est le sujet d’aujourd’hui.

Codes à usage unique dans un fichier ou sur papier

La façon la plus simple de remplacer les mots de passe à usage unique basés sur les SMS est d’utiliser, oui, des mots de passe à usage unique, mais préparés à l’avance. Ce n’est pas la pire des options, surtout pour les services auxquels vous vous connectez peu souvent. Même pour le bon vieux Facebook, cette méthode peut très bien faire l’affaire, surtout comme plan de secours.

C’est assez simple : Sur demande, le service génère et affiche une dizaine de codes à usage unique qui peuvent être utilisés ultérieurement pour authentifier une connexion. Ces codes peuvent être imprimés ou griffonnés et placés dans un coffre-fort. Ou, plus simplement encore, ils peuvent être enregistrés dans des notes chiffrées dans un gestionnaire de mots de passe.

Il n’est pas très important que les codes soient conservés sous forme physique ou numérique – ce qui compte, c’est qu’ils (1) ne soient pas perdus et (2) ne puissent pas être volés.

Il existe aussi une application pour cela : Authenticator apps

En dehors de tous les « un » de cette phrase, un ensemble de codes à usage unique générés une seule fois présente un inconvénient : Tôt ou tard, il prendra fin, et vous pourriez vous retrouver sans code au moment le plus inopportun. Heureusement, il existe une meilleure solution : Les codes à usage unique peuvent être générés à la volée à l’aide d’une petite et (généralement) très simple application d’authentification.

Comment fonctionnent les applications d’authentification

Il est très facile d’utiliser les applications 2FA. Voici ce que vous devez faire :

  • Installer l’appli authentificatrice sur votre smartphone,
  • Aller dans les paramètres de sécurité du service avec lequel vous voulez utiliser l’appli,
  • Sélectionner 2FA (en supposant que l’option existe) ; le service vous montrera un code QR qui peut être scanné directement dans l’appli 2FA,
  • Scanner le code avec l’appli – elle commencera à générer un nouveau code à usage unique toutes les 30 secondes.

Les codes sont créés sur la base d’une clé (connue seulement de vous et du serveur) et de l’heure actuelle, arrondie à 30 secondes. Ces deux composantes sont les mêmes pour vous et le service, les codes sont donc générés de manière synchrone. Cet algorithme est appelé OATH TOTP (Time-based One-Time Password), et il est de loin le plus utilisé.

Il existe une alternative, appelée OATH HOTP (HMAC-based One-Time Password). Au lieu de l’heure actuelle, cet algorithme utilise un compteur qui augmente de 1 pour chaque code nouvellement créé. Mais il est rarement rencontré dans la vie réelle, car son utilisation complique la génération synchrone des codes du côté de l’application et du service. En termes simples, il y a un risque non négligeable que le compteur se détraque au mauvais moment, et que votre mot de passe à usage unique ne fonctionne pas.

Donc, OATH TOTP peut être considéré comme la norme de facto (bien qu’officiellement ce ne soit même pas une norme, comme les créateurs insistent dans la spécification).

Compatibilité des apps et services 2FA

La grande majorité des apps 2FA utilisent le même algorithme, donc n’importe lequel peut être utilisé pour les services qui supportent les authentificateurs ; faites votre choix.

Bien sûr, comme pour toute règle empirique, il y a des exceptions. Pour des raisons connues d’eux seuls, certains services préfèrent faire leurs propres apps 2FA qui ne fonctionnent que pour eux. Qui plus est, les services eux-mêmes ne fonctionnent pas avec d’autres apps que les leurs.

Ceci est particulièrement courant chez les grands éditeurs de jeux vidéo : par exemple, Blizzard Authenticator, Steam Mobile avec Steam Guard intégré, Wargaming Auth, et d’autres sont tous incompatibles avec les apps et services tiers. Seules ces apps personnalisées peuvent être utilisées avec les plateformes de jeu concernées.

Cette voie étrange a également été empruntée par Adobe avec son Adobe Authenticator, qui ne fonctionne qu’avec les comptes AdobeID. Cependant, vous pouvez utiliser d’autres authentificateurs pour vous authentifier dans AdobeID, donc on ne comprend pas du tout pourquoi une application distincte était nécessaire.

En tout cas, la plupart des entreprises informatiques normales ne restreignent pas les utilisateurs dans leur choix d’applications 2FA. Et même si une entreprise décide soudainement de créer sa propre app, la plupart du temps, elle peut être utilisée pour protéger non seulement ses propres comptes, mais aussi ceux d’autres services.

Il suffit de choisir l’app d’authentification que vous préférez en termes de fonctionnalités supplémentaires – elle fonctionnera avec la plupart des services qui prennent généralement en charge les apps 2FA.

Les meilleures apps pour l’authentification à deux facteurs

Le choix d’apps 2FA est étonnamment large. Recherchez « authentificateur » dans Google Play ou l’App Store, et vous verrez des dizaines d’options. Nous vous déconseillons d’installer la première app sur laquelle vous posez les yeux ; elle n’est peut-être pas la plus sécurisée. N’oubliez pas que vous êtes sur le point de lui confier les clés de vos comptes (elle ne connaîtra pas vos mots de passe, bien sûr, mais vous ajoutez le 2FA car les mots de passe ont tendance à fuir). En général, il vaut la peine d’opter pour une application réalisée par un développeur majeur et digne de confiance.

Bien que la fonction de base de toutes ces applications soit la même – créer des codes à usage unique en utilisant un seul et même algorithme, certains authentificateurs ont des fonctions supplémentaires ou des caractéristiques d’interface qui peuvent séduire. Voici quelques-unes des options les plus intéressantes.

1. Google Authenticator

Plateformes prises en charge : Android, iOS

Comme l’ont noté tous les médias technologiques, Google Authenticator est le plus facile à utiliser de toutes les nombreuses applications 2FA existantes. Elle n’a même pas de paramètres. Tout ce que vous pouvez faire est d’ajouter un nouveau jeton (le nom donné au générateur de code pour un compte individuel) ou de supprimer un jeton existant. Pour copier un code, il suffit de le toucher. C’est tout !

Cette simplicité a toutefois un inconvénient : Si vous n’aimez pas quelque chose dans l’interface ou si vous voulez plus de fonctionnalités, vous devrez installer une autre application d’authentification.

+ Très facile à utiliser.

2. Duo Mobile

Plateformes prises en charge : Android, iOS

Duo Mobile est également extrêmement convivial, minimaliste et exempt de paramètres supplémentaires. Il présente un avantage par rapport à Google Authenticator : Duo Mobile garde les codes cachés par défaut – pour les voir, l’utilisateur doit appuyer sur le jeton spécifique. Si, comme moi, vous n’aimez pas avoir un tas de codes pour tous vos comptes en affichage public chaque fois que vous ouvrez l’authentificateur, alors cette fonctionnalité de Duo Mobile est pour vous.

+ Masque les codes par défaut.

3. Microsoft Authenticator

Plateformes prises en charge : Android, iOS

Microsoft a également choisi l’approche sans fioritures avec son authentificateur minimaliste. Cela dit, Microsoft Authenticator est sensiblement plus riche en fonctionnalités que Google Authenticator. Pour commencer, bien que tous les codes soient affichés par défaut, chaque jeton peut être configuré séparément pour être masqué.

Deuxièmement, Microsoft Authenticator simplifie la signature des comptes Microsoft. Après avoir saisi votre mot de passe, il vous suffit d’appuyer sur le bouton dans l’application pour confirmer la connexion – et c’est tout, sans même avoir besoin de saisir un code à usage unique.

+ Peut être configuré pour masquer les codes.
+ Fonctions supplémentaires pour la signature dans les comptes Microsoft.

4. FreeOTP

Plateformes prises en charge : Android, iOS

Il y a quatre raisons pour lesquelles vous pourriez choisir ce bébé de Red Hat. Premièrement, le logiciel est open source. Deuxièmement, il s’agit de l’application la plus légère de notre liste – la version iOS ne fait que 750 Ko. (En comparaison, le minimaliste Google Authenticator nécessite près de 14 Mo, et l’application Authy, abordée plus bas, fait un énorme 44 Mo.)

Troisièmement, l’application cache les codes par défaut, ne les affichant que si le jeton est tapé. Quatrièmement, et non des moindres, FreeOTP vous permet de configurer les tokens de manière très flexible et manuelle, si vous le souhaitez. Naturellement, la méthode habituelle de création de tokens, en scannant un code QR, est également prise en charge.

+ Masque les codes par défaut.
+ Ne prend que 750KB.
+ Open source.
+ Paramètres maximaux lors de la création manuelle d’un token.

5. Authy

Plateformes prises en charge : Android, iOS, Windows, macOS, Chrome

Authy est la plus fantaisiste des applications 2FA, son principal avantage étant que tous les tokens sont stockés dans le cloud. Il est ainsi possible d’accéder aux tokens depuis n’importe lequel de vos appareils. En même temps, cela simplifie la migration vers de nouveaux appareils. Il n’est pas nécessaire de réactiver 2FA dans chaque service, vous pouvez donc continuer à utiliser les tokens existants.

Les tokens dans le cloud sont cryptés avec une clé basée sur un mot de passe défini par l’utilisateur, ce qui signifie que les données sont stockées en toute sécurité et pas du tout faciles à voler. Vous pouvez également définir un code PIN de connexion pour l’application ou la protéger avec une empreinte digitale si votre smartphone est équipé du scanner adéquat.

Le principal inconvénient d’Authy est qu’il nécessite la création d’un compte lié à un numéro de téléphone mobile – sinon, il ne fonctionnera pas du tout.

+ Les jetons sont stockés dans le cloud, ce qui permet de les utiliser sur tous vos appareils.
+ La migration vers d’autres appareils est très facile pour cette même raison.
+ La connexion à l’application est protégée par un code PIN ou une empreinte digitale.
+ Seul le code du dernier token utilisé est affiché à l’écran.
+ Contrairement à d’autres apps, elle prend en charge non seulement Android et iOS, mais aussi Windows, macOS et Chrome.

– Ne fonctionne pas sans un compte Authy lié à un numéro de téléphone.

6. Yandex.Key

Plateformes prises en charge : Android, iOS

À mon avis, le concept derrière Yandex.Key en fait la meilleure application pour le 2FA. D’une part, elle ne nécessite pas d’inscription immédiate – vous pouvez commencer à l’utiliser aussi facilement que Google Authenticator. D’autre part, elle dispose de plusieurs fonctionnalités supplémentaires accessibles à ceux qui ne sont pas timides en matière de paramètres.

Premièrement, Yandex.Key peut être verrouillée avec un code PIN ou une empreinte digitale. Deuxièmement, il permet de créer une copie de sauvegarde des jetons protégée par un mot de passe dans le cloud Yandex (cette étape nécessite effectivement un numéro de téléphone) et de la restaurer sur n’importe quel appareil utilisé. De même, il est possible de transférer les tokens sur un nouvel appareil lorsque vous devez migrer.

Yandex.Key parvient à combiner la simplicité de Google Authenticator avec les fonctionnalités étendues d’Authy, selon ce que vous préférez. Le seul inconvénient de l’appli est que l’interface n’est pas si facile à utiliser avec un grand nombre de tokens.

+ Minimalisme au départ, fonctionnalité étendue disponible via les paramètres.
+ Des copies de sauvegarde des tokens peuvent être créées dans le cloud pour une utilisation sur plusieurs appareils et une migration vers de nouveaux.
+ La connexion à l’application est protégée par un code PIN ou une empreinte digitale.
+ Seul le code du dernier token utilisé est affiché à l’écran.
+ Remplace le mot de passe permanent de votre compte Yandex.

– Avec de nombreux tokens, pas si facile de trouver celui dont on a besoin.

FIDO U2F authentificateurs matériels : YubiKey et autres

Si une application générant des codes à usage unique vous semble un moyen trop fragile et intangible de protéger vos comptes, et que vous voulez quelque chose de plus solide et fiable qui verrouille votre compte avec une clé qui va littéralement dans votre poche, alors ne cherchez pas plus loin que les jetons matériels basés sur la norme U2F (Universal 2nd Factor), créée par l’Alliance FIDO.

Comment fonctionnent les jetons FIDO U2F

Les jetons matériels U2F sont la coqueluche des spécialistes de la sécurité, principalement parce que, du point de vue de l’utilisateur, ils fonctionnent très simplement. Pour commencer, il suffit de connecter le jeton U2F à votre appareil et de l’enregistrer dans un service compatible. L’ensemble du processus ne prend que quelques clics.

Après cela, pour confirmer la connexion au service, vous devrez connecter le jeton U2F à l’appareil à partir duquel vous vous connectez et appuyer sur le bouton du jeton (certains appareils nécessitent un scan du PIN ou de l’empreinte digitale, mais c’est une fonctionnalité supplémentaire). C’est tout – pas de paramètres complexes, de saisie de longues séquences de caractères aléatoires ou d’autres charabias souvent associés au mot cryptographie.

Insérez la clé et appuyez sur le bouton – et c’est vraiment tout

En même temps, sous le capot, les choses sont intelligentes et cryptographiquement solides : Lors de l’enregistrement d’un jeton sur un service, une paire de clés cryptographiques est créée – privée et publique. La clé publique est stockée sur le serveur, et la clé privée est stockée dans une puce Secure Element, qui est le cœur du jeton U2F, et ne quitte jamais l’appareil.

La clé privée est utilisée pour chiffrer la confirmation de connexion, qui est transmise au serveur et peut être déchiffrée à l’aide de la clé publique. Si quelqu’un se faisant passer pour vous tente de transférer une confirmation de connexion chiffrée avec la mauvaise clé privée, alors le déchiffrage avec la clé publique produira du charabia, et le service n’accordera pas l’accès au compte.

Quelles sortes de dispositifs U2F existe-t-il

L’exemple le plus célèbre et le plus courant d’U2F est YubiKey, fabriqué par Yubico. Cette société a essentiellement été le fer de lance de cette norme, mais a choisi de la rendre ouverte, raison pour laquelle l’Alliance FIDO a été créée. Et comme la norme est ouverte, votre choix n’est pas limité : Les dispositifs compatibles U2F sont produits et vendus par diverses entreprises, et les magasins en ligne proposent une gamme de modèles différents.

YubiKey – peut-être le jeton U2F le plus populaire

Par exemple, Google a récemment introduit une suite d’authentifiants sous la bannière Google Titan Security Keys. En fait, il s’agit de clés produites par Feitian Technologies (le deuxième fabricant de jetons U2F le plus populaire, après Yubico) pour lesquelles Google a développé son propre micrologiciel.

Bien sûr, tous les authentificateurs matériels compatibles avec la norme U2F fonctionneront aussi bien avec tout service également compatible avec cette norme. Cependant, il existe des différences, la plus importante étant les interfaces prises en charge par la clé. Cela détermine directement les périphériques avec lesquels elle peut fonctionner :

USB : pour se connecter aux PC (peu importe qu’ils fonctionnent sous Windows, Mac ou Linux ; les clés fonctionnent sans installer de pilote). En plus de l’USB-A habituel, il existe des clés pour l’USB-C.

NFC : nécessaire pour une utilisation avec les smartphones et tablettes Android.

Bluetooth : nécessaire sur les appareils mobiles qui ne disposent pas de NFC. Par exemple, les propriétaires d’iPhone ont toujours besoin d’un authentificateur basé sur Bluetooth. Bien qu’iOS permette désormais aux applications d’utiliser le NFC (avant cette année, seul Apple Pay était autorisé), la plupart des développeurs d’applications compatibles U2F n’ont pas encore tiré parti de cette fonctionnalité. Les authentificateurs Bluetooth présentent quelques inconvénients : premièrement, ils doivent être chargés ; deuxièmement, ils prennent beaucoup plus de temps pour se connecter.

Les modèles de base des jetons U2F ne prennent généralement en charge que l’U2F et coûtent entre 10 et 20 dollars. D’autres dispositifs plus coûteux (20 à 50 $) peuvent également fonctionner comme une carte à puce, générer des mots de passe à usage unique (y compris OATH TOTP et HOTP), générer et stocker des clés de chiffrement PGP, et être utilisés pour se connecter à Windows, macOS, Linux, etc.

Que choisir : SMS, app, ou YubiKey?

Alors, que choisir pour l’authentification à deux facteurs ? Il n’y a pas de réponse universelle à cette question. Diverses versions et combinaisons de 2FA peuvent être utilisées pour différents services. Par exemple, les comptes prioritaires (une boîte aux lettres liée à d’autres comptes, etc.) doivent être protégés au maximum, c’est-à-dire verrouillés par un jeton U2F matériel et toutes les autres options 2FA bloquées. De cette façon, vous pouvez être sûr que personne ne pourra jamais accéder à votre compte sans ce jeton.

Une bonne option est de lier deux clés à votre compte, comme pour les clés de voiture : l’une est toujours dans votre poche, l’autre est dans un endroit sûr au cas où la première serait perdue. De plus, vous pouvez utiliser différents types de clés : Par exemple, une application d’authentification sur votre smartphone comme clé principale, et un jeton U2F ou un bout de papier avec des mots de passe à usage unique dans votre coffre-fort comme clé de secours.

Dans tous les cas, le principal conseil est d’éviter autant que possible d’utiliser des mots de passe à usage unique basés sur des SMS. Il est vrai que ce n’est pas toujours possible. Les services financiers, par exemple, sont notoirement conservateurs et offrent rarement l’authentification par autre chose que par SMS.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.