QR Quoi ? 🤔

Les QR Codes sont des images en mosaïque qui permettent la communication d'informations. Une fois scanné par un lecteur, le texte qu'ils contiennent peut déclencher une action simple — comme afficher un message — ou plus complexe, comme ouvrir une page web. Dans certains secteurs, ils servent à l'automatisation : tri de bagages, acheminement de colis, classement de médicaments, contrôle d'accès… Le champ d'application est vaste !

Et n'oublions pas que le QR Code est le cousin bien plus évolué du bon vieux code-barre :

Code-Barre QR Code
Date 1952 1999
Protocoles EAN (European Article Numbering) QR Code (ISO 18004 / Flashcode)
Dimensions 1D 2D
Données encodées 8, 10, 13 chiffres (EAN) Jusqu'à 7089 caractères numériques ou 4296 alphanumériques

Pour l'anecdote, les codes-barres peuvent aussi transmettre du texte via le code-128, basé sur les 128 caractères de la table ASCII.

Le langage du QR Code n'est pas vraiment humain, et sans machine pour déchiffrer la mosaïque on ne va pas loin. Cela dit, ils ne sont pas si sophistiqués que ça — certains (je n'en fais pas partie) sont capables de les lire à l'œil nu, mais un simple lecteur sur smartphone fait très bien l'affaire !

Exemple de QR Code :

QR Code contenant le mot "bonjour"

Tout ces pixels pour juste dire "bonjour" — je vous laisse tester si vous en doutiez ! 😄

La boisson à volonté, c'est fini… et pour cause ! 🥤

Si vous suivez mes aventures, vous vous souvenez peut-être de mon générateur de QR Code pour avoir de la boisson à volonté au KFC. Spoiler : ça ne fonctionne plus. Au départ, le texte que le distributeur de sodas devait lire n'était pas crypté — c'était simplement un identifiant de gobelet et une quantité en cl à servir, lisible par n'importe qui. Aujourd'hui, ces informations sont cryptées : sans la clé de décryptage, impossible de générer un QR Code valide.

Pour illustrer simplement le principe du cryptage, imaginons que je remplace chaque lettre par son rang dans l'alphabet (A=1, B=2… Z=26). La clé de décryptage, c'est juste la table inverse.

Si je génère un QR Code avec le texte BILOU GATES, un lecteur sans la clé verra :

2 - 9 - 12 - 15 - 21 - 7 - 1 - 20 - 5 - 19

Tant qu'on ne connaît pas la méthode de cryptage utilisée, impossible de créer un QR Code correctement interprété par le distributeur. Retrouvez l'épisode originel ici : "Boisson à volonté au KFC !"

L'attestation de déplacement numérique (souvenir de 2020) 😷

En 2020, pendant le confinement lié au Covid-19, un site d'État permettait de générer une attestation numérique sous forme de QR Code scannable lors des contrôles. Sauf que — contrairement au KFC — ce QR Code n'était pas crypté. Ce qui signifie qu'on pouvait tout à fait le générer soi-même en respectant le bon format.

Les informations présentes dans le QR Code d'attestation étaient :

  • Le nom et le prénom
  • La date et la ville de naissance
  • L'adresse de confinement
  • Le motif de sortie
  • Un horodatage automatique

En clair, voici à quoi ressemblait le contenu du QR Code :

QR Code d'attestation de déplacement Covid-19

code
Cree le: 31/02/2020 a 24h31; Nom: GATES; Prenom: Bilou;
Naissance: 02/09/1986 a Redmond; Adresse: One Apple Park Way. Cupertino. CA 95014;
Sortie: 31/02/2020 a 24h31; Motifs: Promenade du poisson rouge

Du coup, on pouvait générer soi-même son QR Code en respectant ce format ?

Oui. Mais pourquoi cette mise en forme alors ? C'est simple : le texte du QR Code servait de base de données brute. L'application CovidReader des forces de l'ordre parsait ce texte en utilisant les points-virgules comme séparateurs pour afficher proprement chaque information dans un tableau :

Interface de l'application CovidReader

La fraude la plus courante portait sur l'horodatage : les autorités voulaient s'assurer que l'attestation n'était pas générée à la dernière seconde face à un contrôle. Or, CovidReader était dans l'impossibilité de savoir comment, où et surtout quand le QR Code avait réellement été créé.

Je code comme une merguez, mais pourtant… 🌭💻

Sans vouloir défier les autorités, je me suis quand même créé un générateur de QR Code maison — en repartant de la base de celui pour le KFC. J'y ai même ajouté la possibilité de décaler l'heure de création en minutes, histoire de pouvoir prétendre avoir généré l'attestation bien avant le contrôle.

HackTestation - générateur de QR Code maison
Interface du générateur HackTestation
QR Code généré par HackTestation

J'ai nommé l'application "HackTestation" avec toute la subtilité qui me caractérise. En rechargeant simplement la page, l'horodatage se mettait à jour automatiquement.

⚠️ ATTENTION : Je ne cautionne pas la fraude, quelle qu'elle soit !
C'est d'ailleurs pour cette raison que cet article n'est sorti qu'après la fin du confinement.

#Covid
Commentaires 0
Laisser un commentaire