QR codes, smartphones et sécurité

Les "QR codes" fleurissent depuis quelques années dans tous les environnements : presse, lieux publics, pages web, boîtes d'emballages... mais savez-vous vraiment si leur utilisation est sécurisée ? Que risquez-vous en utilisant ces mystérieux dessins noir & blanc ?

les codes QR

S'inspirant du code Morse et des systèmes audio utilisés par le cinéma, deux étudiants américains inventèrent dans les années 50 un système permettant d'automatiser l'enregistrement de produits dans les entreprises : le code-barres, représentation graphique de données basée sur la succession de barres et d'espaces.

Ce n'est pourtant qu'au milieu des années 70 que le système fut perfectionné et démocratisé, en étant rapidement adopté par les supermarchés pour le suivi des produits.

Au début des années 90, un sous-traitant de la société Toyota au Japon, perfectionna le procédé et incluant une deuxième dimension à la représentation des données: ainsi naquit le QR code (Quick Response code). Contrairement au code-barres qui était scanné par un faisceau laser, le code QR entraina l'utilisation d'un capteur d'image couplé à un processeur pour déchiffrer le code bidimensionnel.

Là où les codes-barres se contentent d'un espace de stockage de moins de 20 digits, les codes QR peuvent stocker jusqu'à 7 089 caractères numériques ou 4 296 caractères alphanumériques.

A noter : tous les détails sur les QR codes et leurs spécifications sont disponibles sur le site http://www.qrcode.com/en/.

attaques par codes QR

Il n'en fallait pas davantage pour que l'industrie du mobile s'empare de la technologie, à l'heure où les smartphones sont tous équipés d'un capteur d'image et d'un système d'exploitation permettant de développer tous les outils nécessaires, à commencer par les lecteurs de codes QR.

En fonction des données stockées, les lecteurs de codes QR peuvent déclenchent des actions spécifiques, rendant ainsi la lecture des codes plus confortables :

  • ouverture d'un navigateur Web à l'adresse donnée par le code QR
  • appel d'un numéro de téléphonique, tel que défini dans le code QR
  • envoi d'un SMS au destinataire et avec le message, tels qu'indiqués dans le code
  • intégration d'un contact dans un annuaire ou d'un évènement dans un calendrier
  • simple affichage d'un texte
  • des contenus plus attrayants ...

Quelles merveilleuses fonctionnalités nous sont donc offertes ici ! Une nouvelle expérience utilisateur hors du commun me direz-vous ?

A un bémol près cependant : la sécurité portée par le lecteur de codes QR. A l'instar des protocoles de communication ou des codecs multimédia, ce n'est pas le protocole ou le codec en lui-même qui va induire un risque en termes de sécurité, mais bel et bien son implémentation.

Comme l'explique justement des chercheurs du centre de recherche Secure Business Austria, dans leur article de recherche intitulé "QR Code Security", la manipulation de codes QR peut être le vecteur de nombreuses attaques (chapitre 4) :

  • injections SQL ou de commandes
  • fraude
  • phishing et pharming
  • exploitation de failles dans le lecteur
  • social engineering

Pour preuve, les récentes déclarations de Symantec qui déclarait récemment que de faux codes QR sont fréquemment trouvés dans les lieux publics (métro, aéroports, centre-ville) : des organisations ayant pris la fâcheuse habitude de coller des codes QR malveillants en lieu et place des codes QR officiels sur des publicités, affiche ou affichage officiels.

les lecteurs de QR code

Vous l'aurez donc compris, l'une des premières protections à mettre en place passe par le lecteur de codes QR que vous choisirez pour votre smartphone. Comme tout lecteur, il se doit avant tout :

  • d'implémenter correctement les spécifications QR-code
  • de proposer à l'utilisateur un parcours de validation avant action

Autant être transparent, je n'ai pas eu l'occasion de tester l'ensemble des applications permettant de gérer les codes QR sur smartphone, les systèmes d'exploitation étant nombreux et les applications dédiées encore plus.

Néanmoins, il est à noter que deux applications semblent disposer d'une forte crédibilité sur les environnements phares du marché :

A titre d'exemple, la première fois que vous scannez un QR code sous QR Droïd, ce dernier vous propose de déterminer le parcours de validation par défaut pour ce type de code QR. Après avoir scanné un code QR renvoyant une URL, QR Droid vous proposera ceci :

QR code reader
 
QR code reader

Vous pourrez donc :

  1. visualiser le contenu décodé du code QR
  2. définir si par défaut vous êtes redirigé automatiquement vers l'URL du contenu
  3. définir si par défaut vous souhaitez qu'à l'avenir ce processus vous soit proposé

testez votre lecteur QR

Afin de vous aider à tester vous-même le comportement de votre lecteur de codes QR, vous trouverez ci-dessous quelques exemples de codes générés via le site GOQR.me.

Trois types de codes QR vous sont proposés:

  • le 1er contient du texte avec du code JavaScript ouvrant une boite de message
  • le 2nd contient une URL vers le site du blog Sécurité
  • le 3ème contient un numéro de téléphone correspondant au +33 1 23 45 67 89

QR code example

Lancez votre lecteur de codes QR et vérifiez par vous-même si ce dernier intègre bien une phase d'affichage du contenu du code et une demande de confirmation avant déclenchement de l'action associée.

En espérant que cette brève approche de la sécurité dans les codes QR vous ait plus, n'hésitez pas à nous faire pas de votre retour d'expérience, vos propositions de lecteurs... via les commentaires.

Vincent

crédit photo : © vector_master - Fotolia.com

Vincent Maurin

Chez Orange Business, je suis en charge du domaine Sécurité au sein de la Direction du Développement des Produits et des Services. Mes expériences passées au cœur d'entités opérationnelles m'amènent à porter un regard particulier sur les difficultés de mise en œuvre des politiques et stratégies de sécurité pour les entreprises. Sécurité, efficacité et pragmatisme sont mes principaux axes de réflexion.