Un QR code d'authentification n'est ni sûr ni dangereux en soi : c'est un canal de transport. Tout dépend de ce qu'il contient et de la durée pendant laquelle ce contenu reste valable. Un QR code qui encode une URL de connexion est un magic link affiché à l'écran, avec les mêmes faiblesses. Un QR code dynamique à usage unique qui ouvre un canal éphémère chiffré est un objet de nature différente.
Trois usages qu'il faut distinguer
| Usage | Ce que le QR code transporte | Risque dominant |
|---|---|---|
| Amorçage d'un TOTP | le secret partagé d'amorçage | capture par photographie, secret durable |
| Connexion multi-appareils | une référence de session en attente | relais du QR vers une victime (QR jacking) |
| Validation d'une opération | un contexte de transaction à confirmer | affichage tronqué ou trompeur du contexte |
| Ouverture d'un canal éphémère | une amorce à usage unique, sans donnée personnelle | compromission de l'appareil lui-même |
La première ligne mérite une remarque : le QR code d'amorçage TOTP contient un secret qui restera valable des années. Une photographie de cet écran, une capture partagée dans un ticket de support, et le second facteur est copié sans que personne ne le sache. C'est l'usage le plus banal et le plus mal protégé.
Le quishing : pourquoi le QR contourne vos défenses
Le hameçonnage par QR code — quishing — exploite une propriété simple : une image traverse les filtres qui analysent les liens. Un QR imprimé sur une affiche, collé sur un terminal de paiement ou inséré dans une pièce jointe échappe à l'analyse d'URL de la passerelle de messagerie.
Il déplace en outre le clic vers un appareil personnel, généralement hors du périmètre géré : pas de proxy d'entreprise, pas de protection des points d'accès, un écran étroit qui masque l'adresse réelle. L'utilisateur ne peut pas survoler un QR code pour en vérifier la destination avant de l'ouvrir.
Trois mesures réduisent l'exposition sans dépendre de la vigilance de l'utilisateur :
- Ne jamais faire d'un QR code entrant une étape d'un parcours d'authentification. Si votre organisation n'envoie jamais de QR code par courriel, tout QR reçu est signalable sans hésitation.
- Afficher systématiquement le domaine de destination dans l'application qui scanne, avant ouverture.
- Traiter les QR physiques comme des supports altérables. Un autocollant se remplace ; les contrôles d'intégrité des affichages en agence ou en libre-service relèvent de la sécurité physique.
Le relais de QR : l'attaque qui vise la connexion multi-appareils
Le scénario est direct. L'attaquant ouvre la page de connexion du service légitime, récupère le QR code affiché, et le présente sur sa propre page contrefaite. La victime le scanne avec son application authentique, approuve — et la session s'ouvre chez l'attaquant. Aucun élément n'a été falsifié : la victime a validé une vraie demande de connexion, simplement pas la sienne.
Ce que cela implique pour la conception :
- Le contexte doit être affiché sur l'appareil qui approuve, pas seulement sur celui qui affiche le QR : quel service, depuis quel lieu, sur quel navigateur.
- La durée de validité doit être très courte, et le code doit se régénérer à intervalle réduit.
- La proximité doit être vérifiée lorsque c'est possible, pour rendre difficile un relais à distance.
- L'approbation doit exiger un geste explicite, distinct du simple fait d'avoir scanné.
Ce qui distingue un QR code dynamique à usage unique
La différence entre un QR code « lien » et un QR code « canal » tient à ce qu'il reste exploitable après le scan.
| Propriété | QR code encodant une URL | QR code dynamique ouvrant un canal éphémère |
|---|---|---|
| Contenu | destination lisible et transmissible | amorce sans valeur réutilisable |
| Durée de vie utile | celle du lien, souvent plusieurs minutes | usage unique, canal refermé après emploi |
| Effet d'une capture d'écran | rejeu possible | inopérant hors du canal ouvert |
| Donnée personnelle transportée | souvent un identifiant ou un jeton | aucune |
| Preuve exigée après le scan | parfois aucune | résolution d'un challenge par l'utilisateur |
C'est le modèle retenu par HIAsecure : le QR code dynamique n'ouvre pas une session, il ouvre un canal éphémère chiffré dans lequel l'utilisateur doit ensuite prouver une intention humaine consciente via un challenge cognitif. Photographier l'écran ne donne donc rien, puisque l'élément décisif n'est pas transporté par l'image.
Bonnes pratiques d'implémentation
- Régénérer le code à intervalle court et l'invalider dès la première utilisation.
- Ne jamais encoder de donnée personnelle ni d'identifiant permanent dans le code.
- Afficher le contexte complet de l'opération sur l'appareil approbateur, en clair et sans troncature.
- Journaliser chaque scan et chaque approbation, avec les éléments de contexte — une exigence de traçabilité que NIS2 et DORA rendent très concrète en cas d'incident.
- Prévoir un parcours alternatif pour les utilisateurs qui ne peuvent pas scanner, sans qu'il soit plus faible que le parcours principal.
- Pour l'amorçage TOTP : afficher le secret une seule fois, interdire la capture lorsque c'est possible, et invalider les amorces non consommées.
FAQ
Un QR code est-il plus sûr qu'un code envoyé par SMS ?
Cela dépend entièrement de ce qu'il contient. S'il encode une URL ou un jeton, il présente les mêmes faiblesses de rejeu, sans la dépendance au réseau opérateur. S'il ouvre un canal à usage unique suivi d'une preuve utilisateur, il n'appartient pas à la même catégorie.
Faut-il interdire les QR codes dans les communications d'entreprise ?
Une règle claire et connue de tous — « nous n'envoyons jamais de QR code pour vous authentifier » — vaut mieux qu'une interdiction technique partielle. Elle transforme chaque QR reçu en signal d'alerte évident.
Comment protéger l'amorçage TOTP par QR code ?
En affichant le code une seule fois, dans une session déjà authentifiée fortement, avec une durée de validité minimale et une invalidation immédiate après enrôlement. Le secret ne doit jamais être renvoyé par courriel ni copié dans un outil de ticketing.
Le scan d'un QR code peut-il compromettre le téléphone ?
Le scan seul ne fait qu'interpréter une donnée. Le risque provient de ce que l'application en fait ensuite : ouverture d'une page, installation, connexion à un réseau. Une application qui affiche la destination avant d'agir réduit fortement ce risque.
Aller plus loin : pilier : authentification cognitive · QR dynamique face à l'AiTM · sécuriser la connexion avec magic link · panorama du passwordless