Ludovic Frank - Développeur indépendant

Pourquoi il n'est pas possible de falsifier le QR Code du pass sanitaire ?

ionicons-v5-k Ludovic Frank 28 juil. 2021
3890 lectures Niveau : Débutant

Hey bonjour vous 😎, les vacances se passent bien ? Aujourd'hui, on traite d’un sujet trop tendance, le pass sanitaire (oui, je suis toujours à la mode ! 🤣.
Comment ça ? Encore un sujet épineux ? Mais non, mais non … ça va passer crème.
Cet article est dans la même ligné que “le cadenas HTTPS” et “les ransomwares” car le pass sanitaire utilise la cryptographie, mais pas pour chiffrement.
Prêt ? C’est parti !

Comment obtenir un pass sanitaire gratuitement ?

Ah ! c’est pour ça que vous êtes là (petit chenapan 😛), OK, je vais vous donner la solution ultime pour avoir son propre pass sanitaire à son nom et tous et tous … en plus, il est garanti qu’il passe absolument partout … 
En fait, c’est très simple, sur internet il y a des sites qui vous le proposent gratuitement, il suffit de prendre un rendez-vous sur, par exemple, « Vitte ma dose », et paf, un mois après vous avez votre précieux sésame, c’est super simple et ça marche à tous les coups 😮

Le vif du sujet : pourquoi on ne peut pas falsifier un pass sanitaire ?

Que contient le pass sanitaire ?

Pour commencer, voyons ce qui a dans le QR Code du pass sanitaire, déjà, le format des données, je ne vais pas détailler, mais nous avons deux standards, en France, c’est le format “2D-DOC” qui est utilisé alors qu’en Europe c’est le “DCC” , si cela vous intéresse vous pouvez faire vos recherches sur internet.

Maintenant que contient réellement le QR Code ? 

  • Le nom de famille
  • Le prénom
  • La date de naissance
  • La maladie (Covid-19)
  • Le code du vaccin (je ne sais pas comment ça s’appelle réellement)
  • Le nom du vaccin
  • Le nombre de doses reçues / nombre de doses requises
  • La date de l’injection
  • Où l’on en est dans le cycle (commencé,  terminé …)
  • Une signature (c’est elle qui nous intéresse)

Cette liste est basée sur ce que j’ai pu comprendre en scannant le QR Code, elle n’a pas vocation à être exacte, ce dont je suis sûre c’est qu’il y a bien une signature numérique 😊 sinon cet article n’existerait même pas ! 

Les données du pass sanitaire sont-elles chiffrées ? 

Non, n’importe qui en possession du QR Code peut les lire, c’est pour cela qu’il ne faut pas partager son pass sanitaire sur internet (même pas en floutant une partie du QR Code). On ne peut pas le falsifier, mais on peut le copier (avec nom, prénom … etc).

Les données sont signées numériquement via un système de clefs asymétriques 

Yess ! Là c'est le moment où je peux vous renvoyer vers l’article “comment se protéger des ransomware” pour la partie clef publique / clef privée. (quand je vous dis que “tout est lié” 😁)

Mais même si je l’ai déjà expliqué, je vais essayer ici de vulgariser encore plus ce qu’est une clef publique et une clef privée en cryptographie (cela vient en complément, je vous recommande vivement de lire la partie clef privée / clef publique de l’article sur les ransomware).

La clef privée
On va tenter de prendre des parallèles avec la vie de tous les jours.

Lorsque vous voulez faire certifier un document auprès d’une entreprise ou une organisation publique (mairie par exemple), la personne qui certifie le document utilise un tampon, certains tampons laissent carrément un relief dans le papier pour les rendre encore plus difficiles à copier. 
Le tampon est l’équivalent de la clef privée. C’est lui qui laisse sa trace sur le document, mais sans lui, il n’est pas possible de laisser la trace, c’est assez difficile à falsifier. Une clef privée c’est comme un tampon complètement impossible a falsifié aujourd’hui . En fait si c’était possible internet ce serait un  chaos et les services bancaires, je n’en parle même pas … 😌

La clef privée on peut également la voir comme une clef de votre trousseau (vous savez le genre de clef BIEN sécurisé et impossible à copier sans passer par le fabricant), 
La clef peut ouvrir une serrure, et si la clef permet d’ouvrir la serrure on sait que c’est la bonne clef).

La clef publique
Quand la “clef privée” est le tampon, eh bien, la clef publique et la "trace" de ce tampon laisser sur le document, on sait que ça a été tamponné par « ce tampon », c’est visible, mais très difficile à imiter (en fonction de la complexité du tampon). La trace du tampon sur le document permet de savoir que le document a été “signé” par la bonne organisation et rend donc ce document officiel, pour le pas sanitaire, la signature numérique fait pareil.

Et pour le second parallèle, quand la clef sur votre porte-clefs est la “clef privée” et bien … la serrure est la « clef publique », celle-ci ne permet pas de recréer la clef de votre trousseau (normalement), mais elle permet de savoir quand c’est la bonne clef qui est utilisée.

À qui appartient la clef privée du pass sanitaire

Une clef privée reste entre les mains d’une organisation qui lui permet de certifier des données numériques, dans mon cas par exemple j’ai plusieurs clefs privées, en venant sur ce site, j’ai utilisé une de mes clés privées pour vous certifier que vous êtes bien connecté en HTTPS à « Ludo Dev » (article sur le cadenas HTTPS).
Pour la clef du pass sanitaire, elle est entre les mains de l’assurance maladie… et au vu du travail effectué sur le pas sanitaire, je peux dire sans trop de risque qu’ils l’ont bien protégé comme il faut pour éviter tout vol.

Et la clef publique elle est où ?

Comme son nom l’indique, elle est publique, donc disponible à la vue de tous, par exemple l’application "TousAntiCovid - Verif" l’utilise, c’est comme ça que cette app peut afficher si un pass sanitaire est valide ou non.

Comment se passe la signature

Lorsque le pass sanitaire est créée (avec nom et prénom … etc.), l’ensemble des données passent dans un algorithme qui utilise la clef privée pour créer une signature numérique, si par la suite on modifie les données du pass sanitaire (le nom, prénom … etc.) sans modifier la signature le QR Code ne sera plus valide et l’application “TousAntiCovid - Verif” affichera « pass non valide » car la signature ne correspond plus aux données du pass. 
Pour rendre ce pass modifié valide, il faut signer numériquement les nouvelles données, ce qui est impossible sans la clef privée.

Pourquoi cette méthode a-t-elle été utilisée ?

Alors là c’est mon interprétation et non les dires des développeurs du pass sanitaire.
Cette méthode permet de vérifier de l’authenticité d’un pass sanitaire SANS traquer les utilisateurs, les développeurs auraient pu utiliser une méthode avec serveur central, à chaque scan de QR Code un serveur central est interrogé pour savoir si c’est bon … Le problème c’est que la méthode du serveur central permet de tracer les gens, savoir où ils ont été et quand… ce qui serait un problème pour la vie privée… Ici cette méthode a complètement été écartée.
Donc non … la pass sanitaire n’est pas un outil de surveillance de masse si ça l’était, il n’aurait pas été conçu comme ça.

Mais du coup c’est impossible de créer un faux pass sanitaire ? 

Ah ! Vous êtes têtu, hein ! 😛
On va déjà commencer par rappeler que la création de faux et l’usage de faux sont punis sévèrement par la loi …
Les seuls moyens qui seraient éventuellement possibles pour créer un faux pass sanitaire seraient de :

  • Voler la clef privée à l'assurance maladie (oubliez, ils l’ont bien protégé 😊)
  • Corrompre une personne ayant accès au logiciel de création (je n’aimerais pas être à la place de cette personne, ça va piquer sévèrement une fois prise la main dans le pot de confiture).

Conclusion

Le pass sanitaire a été fait proprement, il n’y a pas de tentative de pistage, ils ont bien mis en place un système permettant de vérifier l’authenticité, bref il fait ce pour quoi il a été créé.
Il ne me reste plus qu'à vous souhaiter une bonne fin de semaine 😁