Il existe de nombreux cas de figure où l’on vous demande de scanner un code QR : pour lire un menu dans un restaurant, faute de carte disponible à cause du coronavirus par exemple. Si vous ne savez pas ce qu’est un code QR, ni comment il fonctionne, cette foire aux questions devrait vous éclairer.

Quelle est l’origine du code QR ?

Le code QR (QR signifiant Quick et Response, soit en français code de réponse rapide) a été mis au point par un Japonais, Masahiro Hara, pour le compte de l’entreprise Denso Wave, une filiale de Denso Corporation. Il s’agissait alors de stocker plus d’informations que le traditionnel code-barres, tout en suivant une approche qui soit justement rapide et fiable.

En 1994, le code QR est rendu public. Trois ans plus tard, en 1997, il est approuvé comme standard AIM (Automatic Identification Manufacturer). Le code QR perce ensuite au Japon en 1999 auprès de la norme industrielle japonaise, qui en fait un code 2D standard. Et en 2000, l’Organisation internationale de normalisation (ISO) l’approuve comme l’un de ses grands standards internationaux.

Le succès du code QR ne tient pas seulement à ses spécificités techniques. Si Denso Wave dispose d’un brevet lui permettant d’intervenir en cas de mésusage, l’entreprise a eu le flair de ne pas en verrouiller l’utilisation. Ainsi, il n’est pas requis de demander une autorisation préalable pour utiliser le code QR. Son emploi est libre tant que l’on suit la norme. En outre, c’est gratuit, ce qui a contribué au succès du code QR.

Comment fonctionne un code QR ?

Le code QR est l’équivalent d’un code-barres classique, sauf qu’au lieu d’être unidimensionnel (on ne le lit que dans un seul sens, horizontalement), il est bidimensionnel (on le lit dans deux sens, horizontalement et verticalement). C’est pour cela que l’on parle d’un code-barres en 2D. Grâce à cette forme, on stocke beaucoup plus d’informations, en fonction de l’utilisation que l’on veut en avoir.

Visuellement, le code QR est un carré dans lequel des modules noirs — de forme carrée — sont disposés sur un fond blanc. Ce code QR peut exister en plusieurs tailles : le plus petit peut compter 21 modules de côté et le plus grand 177 modules de côté. Selon la taille du code QR et des caractères que l’on cherche à encoder, un code QR peut contenir de quelques dizaines de caractères à plusieurs milliers.

Structure d'un code QR

La structure d'un code QR.

Source : Université Gustave Eiffel

Le code QR comporte trois carrés identiques un peu particuliers : si le code est orienté correctement, ils se trouvent dans chaque angle du grand carré, hormis l’angle en bas à droite. Ils servent à indiquer la position du code QR et de quelle façon il faut lire les données qui s’y trouvent. D’autres motifs techniques sont disséminés, en plus des données à encoder elles-mêmes.

Autre particularité du code QR, les corrections d’erreurs. Les motifs contenus dans le code-barres en 2D peuvent intégrer un degré plus ou moins important de redondance (7, 15, 25 ou 30 %), ce qui permet de rendre le code QR toujours exploitable même s’il en manque un bout ou qu’une partie est illisible. Évidemment, plus on laisse de la place aux corrections d’erreurs, moins on en laisse pour l’information.

Où vont mes données ?

Lors du confinement, le ministère de l’Intérieur a mis à disposition un formulaire pour générer une version numérique de l’attestation de sortie dérogatoire, utilisable sur un smartphone. Celle-ci fonctionne avec un code QR à scanner. Or, le formulaire sollicite des données personnelles, puisque ce sont elles que voulaient voir les forces de l’ordre en cas de contrôle d’identité.

Il est dès lors légitime de se demander la question de savoir ce qu’il advient de ces données. La place Beauvau a apporté une réponse à cette question : les données issues du code QR ne vont nulle part. Dans une publication sur LinkedIn, Philippe Deschamps, qui officie comme administrateur général et sous-directeur des systèmes d’information au ministère de l’Intérieur, a fait savoir « qu’aucune donnée personnelle ne sera renvoyée vers les serveurs du ministère ».

Rendu d'un QR code sur l'attestation

Rendu d'un QR code sur l'attestation

Contacté par Numerama, le ministère de l’Intérieur confirme le caractère local du stockage : « aucune donnée n’est conservée ou enregistrée sur un quelconque serveur. Aucune trace non plus en local sur les tablettes / smartphones Néo dont sont équipés les policiers et gendarmes ». Et par souci de transparence et pour dissiper les suspicions, le code source de l’outil de génération de code QR est publié. Il est disponible sur GitHub.

Est-ce que c’est sécurisé ?

Il est courant de dire en informatique qu’il n’existe rien qui soit absolument sécurisé. Une fois que l’on a dit ça, la question qui doit surtout se poser est de déterminer quel serait le modèle de menace qui viserait l’attestation de déplacement numérique ou l’application utilisée par les forces de l’ordre pour scanner le code QR, et ensuite évaluer les risques et les bénéfices par rapport aux finalités poursuivies.

Au regard de ce que l’on sait aujourd’hui du dispositif mis en place par le gouvernement, tout est fait pour en savoir et en faire le moins possible : certes, le formulaire du ministère contient des données personnelles, mais celles-ci sont encodées dans un code QR qui ne reste que sur le smartphone de l’utilisateur. Cela évite des transferts inutiles et d’avoir à gérer (et donc à sécuriser) des bases de données.

Capture d’écran 2020-04-04 à 09.45.35

Le formulaire à remplir pour générer une attestation de déplacement dérogatoire en version numérique et avec un code QR.

Du côté des forces de l’ordre, le scanner du code QR, appelé CovidReader, a été conçu par un service spécialisé du ministère et elle n’est pas publique, ni pour l’heure son code source. Celui générant le code QR l’est par contre, pour qu’il puisse être contrôlé et, si besoin, corrigé et amélioré. Quant à la version d’Android sur laquelle évolue CovidReader, elle a été renforcée par l’ANSSI, le cyber-garde du corps de l’État.

Il reste possible d’imaginer un scénario catastrophe, avec un piratage du site du ministère de l’Intérieur pour distribuer des formulaires vérolés qui infecteraient en toute discrétion les smartphones. Mais c’est un risque hypothétique. De façon générale, le maillon faible de cette chaîne de la sécurité reste le smartphone du particulier, qui n’est peut-être pas à jour ou qui contient des applications douteuses.

Comment la police lit le code QR ?

Qui dit code QR dit nécessité d’avoir l’équipement adéquat pour pouvoir en décoder et lire le contenu. Pour ce travail, la police et la gendarmerie profitent du programme NEO, qui vise justement à les fournir en terminaux mobiles. Dans le cadre de ce projet, ce sont 115 000 smartphones et tablettes qui sont distribués aux forces de l’ordre : 65 000 pour la police et 50 000 pour la gendarmerie.

Sur ces terminaux, les forces de l’ordre utiliseront un scanner dédié, appelé CovidReader. Inutile de la chercher sur l’App Store ou Google Play, vous ne la trouverez pas : elle n’existe qu’en version Android et n’est pas destinée au public. C’est le service des technologies et des systèmes d’information de la Sécurité intérieure  — ST(SI)2 — qui s’est chargé de la concevoir.

Quant au système d’exploitation qui équipe les smartphones et les tablettes des forces de l’ordre, il a lui aussi été adapté pour leurs besoins. Il s’agit d’une version dérivée d’Android, modifiée par l’Agence nationale de la sécurité des systèmes d’information (ANSSI), qui se charge de protéger l’informatique de l’État. Cette version a d’ailleurs un nom : Secdroid, mot-valise entre Sécurisé et Android.

Nouveauté : Découvrez

La meilleure expérience de Numerama, sans publicité,
+ riche, + zen, + exclusive.

Découvrez Numerama+

Abonnez-vous à Numerama sur Google News pour ne manquer aucune info !