QR code d'authentification à deux facteurs : ce qu'il contient — featured illustration
Sécurité

QR code d'authentification à deux facteurs : ce qu'il contient

7 min de lecture
Créer un QR code

Vous activez la double authentification. Le site affiche un carré, vous demande de le scanner avec une application d'authentification, et prévient que vous ne le reverrez plus. Vous scannez, six chiffres apparaissent sur votre téléphone, changent toutes les trente secondes, et le site les accepte. Votre téléphone et un serveur à l'autre bout du monde sont d'accord, sans jamais se parler.

Il n'y a aucune conversation en cours. Il n'y en a jamais eu. Les deux camps ont calculé la même réponse à partir du même matériau de départ, et ce matériau est précisément ce que vous avez scanné.

Ce qu'il y a réellement dans le carré

Ce que renferme le carré est une adresse d'un genre un peu particulier. Ce n'est pas une page web que vous pourriez ouvrir dans un navigateur, mais une chaîne structurée, écrite selon une convention que toutes les applications d'authentification savent interpréter de la même façon. Quatre éléments y figurent, et chacun joue un rôle bien distinct qu'il vaut la peine de connaître avant de scanner :

  • Le secret. Une chaîne aléatoire générée par le service, unique à votre compte chez lui. C'est là que tout se joue.
  • Un libellé. En général le nom du service et votre identifiant, pour la liste de l'application.
  • L'émetteur. À quel service l'entrée appartient.
  • Des paramètres. L'algorithme, le nombre de chiffres et la fréquence de rotation du code.

Votre application lit cette chaîne, stocke le secret sur l'appareil et ajoute une ligne à sa liste. Voilà toute la configuration : un transfert de données unique, avec le carré comme moyen commode de faire passer une longue chaîne aléatoire sur un téléphone sans la taper. L'idée générale d'un code qui transporte du texte structuré s'applique ici à la lettre, et la façon dont les codes encodent des données en détaille la mécanique.

La plupart des pages de configuration proposent aussi le même secret sous forme d'un bloc de lettres à saisir à la main, ce que vous utilisez sur un appareil sans caméra.

Comment six chiffres apparaissent des deux côtés

Le serveur détient le secret. Votre téléphone détient désormais le même secret. Les deux disposent aussi de l'heure courante.

L'algorithme combine le secret avec l'intervalle de temps en cours, généralement une fenêtre de trente secondes, et fait passer le tout dans une fonction à sens unique. Tronquez le résultat et vous obtenez six chiffres. Même secret plus même fenêtre produit les mêmes chiffres sur n'importe quel appareil détenant les deux.

Rien n'est transmis. Votre téléphone fonctionne hors ligne parce qu'il a les ingrédients et fait le calcul localement. C'est pourquoi les codes continuent de fonctionner en avion.

Deux conséquences en découlent. L'horloge de votre téléphone doit être à peu près juste, raison pour laquelle une application qui se met soudain à refuser tous les codes souffre en général d'une dérive d'horloge, corrigée en activant la synchronisation automatique de l'heure. Et les codes tournent parce qu'un nombre à six chiffres volé doit devenir sans valeur en quelques secondes.

Pourquoi vous ne voyez le code qu'une seule fois

Le secret est affiché lors de l'inscription puis masqué. Les services le font exprès.

Un secret récupérable à tout moment depuis vos paramètres de compte serait une cible permanente. N'importe qui accédant brièvement à votre compte connecté pourrait le récupérer et générer des codes valides indéfiniment. Ne l'afficher qu'une fois ferme cette porte.

L'effet pratique, c'est que le moment où vous scannez est le moment où vous vous engagez. Si votre téléphone est perdu ou effacé ensuite, impossible de revenir en arrière et de rescanner. Vous récupérez via un mécanisme de secours, ou vous refaites l'inscription depuis zéro, ce qui suppose d'être connecté, c'est-à-dire précisément ce que vous venez peut-être de perdre.

Ce qui nous amène à la partie que presque tout le monde saute.

Les codes de secours sont le vrai filet de sécurité

Presque tous les services proposant l'authentification à deux facteurs vous remettent aussi des codes de récupération à usage unique au moment de l'inscription. De longues chaînes, huit ou dix en général, sur cette même page que vous parcouriez à toute vitesse.

Ce sont eux la vraie réponse à un téléphone perdu. Chacun fonctionne une fois à la place du code à six chiffres, et en utiliser un vous rend l'accès au compte pour que vous puissiez inscrire un nouvel appareil.

Rangez-les à un endroit qui ne dépend pas du téléphone hébergeant votre application d'authentification. Une entrée dans un gestionnaire de mots de passe, une feuille imprimée dans un tiroir, un fichier chiffré sur un ordinateur. Pas une capture d'écran sur le téléphone en question, c'est exactement ce qui lâche quand ce téléphone tombe dans une rivière.

Si vous ne vous souvenez pas d'avoir sauvegardé les vôtres, la plupart des services permettent d'en régénérer un jeu neuf depuis la section sécurité tant que vous êtes connecté. Le faire aujourd'hui, en commençant par votre compte de messagerie, représente vingt minutes réellement utiles.

Une capture d'écran du code de configuration est un mot de passe

Le carré contient le secret. Quiconque le possède peut générer des codes valides indéfiniment, depuis n'importe quel appareil, sans votre téléphone et sans que vous le sachiez. Il n'expire pas, il ne tourne pas, et le compte ne donne aucun signal indiquant qu'un second appareil produit des codes.

Une capture d'écran d'un code de configuration n'est donc pas une copie de confort. C'est une deuxième clé, posée dans une photothèque qui se synchronise probablement avec le cloud et ressort dans la bande des photos récentes chaque fois que vous joignez une image à quoi que ce soit.

Si vous en avez pris une pendant la configuration et que le compte fonctionne, supprimez-la, y compris du dossier des éléments récemment supprimés et de toute copie dans le cloud. Et n'envoyez jamais un code de configuration à qui que ce soit, quel que soit le motif invoqué. Un conseiller du support n'en a aucun usage légitime. Ce type de demande est un cousin des astuces décrites dans repérer les codes malveillants et dans notre panorama de la sécurité des QR codes.

Si vous devez inspecter le contenu d'un code sans laisser une application agir dessus, le lire sans ouvrir le lien décrit la méthode la plus sûre.

Passer à un nouveau téléphone

Le secret vit dans l'application, sur l'appareil : changer de téléphone signifie donc déplacer ces secrets.

Si votre application prend en charge la synchronisation cloud ou un compte, l'installer sur le nouveau téléphone et s'y connecter ramène généralement les entrées. Que ce soit actif par défaut, et ce que cela couvre, varie selon les applications et les versions.

Si elle prend en charge un transfert d'appareil à appareil, l'ancienne application affiche en général un code d'export que la nouvelle lit. Il vous faut les deux téléphones en état de marche en même temps, faites-le donc avant d'effacer l'ancien.

Si rien de tout cela ne s'applique, réinscrivez chaque compte à la main : connectez-vous, désactivez puis réactivez la double authentification, scannez le nouveau code. Lent, mais fiable, et bonne occasion d'enregistrer de nouveaux codes de secours.

Microsoft Authenticator, Google Authenticator, 1Password, Authy et les autres lisent tous ce même code de configuration standard, c'est pourquoi le carré d'un service fonctionne dans l'application de votre choix. Ce que chacune propose autour de la sauvegarde et de la migration relève de sa propre décision et évolue avec le temps, consultez donc la documentation actuelle de celle que vous utilisez.

Un point qui surprend : l'ancien téléphone continue de générer des codes valides. Effacer un téléphone n'informe le service de rien. Le secret reste valable tant que vous ne vous réinscrivez pas ou que vous ne supprimez pas la méthode côté service. Quand vous mettez un appareil au rebut, migrez proprement ou réinscrivez-vous, et ne supposez pas qu'une réinitialisation d'usine a révoqué quoi que ce soit.

Et en France ?

Pour vos comptes bancaires, le mécanisme est souvent différent. Depuis la directive européenne sur les services de paiement (DSP2), les banques françaises doivent appliquer une authentification forte pour les paiements en ligne et l'accès au compte, et la plupart l'ont intégrée dans leur propre application, avec une validation dans l'appli plutôt qu'un code à six chiffres.

Une règle s'applique donc sans exception : votre banque ne vous demandera jamais de scanner un QR code reçu par e-mail ou SMS pour valider une opération que vous n'avez pas lancée vous-même. Si c'est le cas, c'est une tentative de fraude.

Si l'appareil a déjà disparu

Si le téléphone a déjà disparu, tout n'est pas perdu, mais l'ordre dans lequel vous tentez les recours compte beaucoup. Voici les pistes à épuiser, de la plus simple à la plus lourde :

  • Utilisez un code de secours. C'est leur raison d'être.
  • Tentez la récupération de compte. La plupart des services ont une voie alternative, souvent une adresse e-mail vérifiée ou un numéro de récupération. Attendez-vous à un délai, car une voie rapide ici ruinerait le principe.
  • Cherchez une seconde méthode inscrite. Une clé de sécurité ou un appareil de secours est peut-être déjà rattaché.
  • Commencez par votre compte de messagerie. C'est la voie de récupération de tout le reste, rétablissez donc l'accès là en premier.
  • Une fois revenu dedans, réinscrivez-vous et supprimez l'ancienne entrée pour que le secret de l'appareil perdu cesse de fonctionner.

Prochaine étape : ouvrez les paramètres de sécurité de votre fournisseur de messagerie, générez un jeu neuf de codes de secours, et rangez-les ailleurs que sur le téléphone qui fait tourner votre application d'authentification.

Partager cet article