KMP Agency | Mais que contient notre Pass AntiCovid ?

Mais que contient notre Pass AntiCovid ?

Suite aux annonces de notre président, un nombre impressionnant de Français se sont rués sur Doctolib : Prenez rendez-vous en ligne chez un professionnel de santé pour se faire vacciner et obtenir le Saint-Graal : "Le certificat COVID numérique UE".

Mais alors, que contient vraiment ce QR Code ? Des données personnelles ? Le simple résultat ? Un réel certificat ?

Qu'est-ce qu'un QR Code ?

Avant tout, il faut savoir qu'est-ce qu'un QR Code, car nous utilisons ce bout d'image rempli de pixels noirs de plus en plus souvent, mais comment ça fonctionne ?

Bien que réaliser soit même de A à Z son propre QR Code est assez complexe, son fonctionnement est extrêmement simple, stocker du texte (un lien, un message, etc) dans une image qui peut ensuite être de nouveau transformée en texte.

Plus le texte est long, plus le QR Code contiendra de pixels. On peut d'ailleurs voir que celui de notre Certificat COVID comporte plus qu'un simple lien au vu de son nombre de pixels.

Quel est donc ce fameux texte ?

Si vous tentez de faire l'expérience chez vous et de lire le QR Code avec l'appareil photo de votre téléphone, rien ne vous sera affiché.

Effectivement, votre appareil peut récupérer le texte du QR Code mais il ne pourra le comprendre car ce n'est pas un lien.

J'ai donc utilisé un lecteur qui ne tente pas de comprendre le texte mais simplement de l'afficher, et nous obtenons une belle chaîne de caractères incompréhensible :

HC1:NCFOXN%TSMAHN-H%WK6OR8JE0L4N1P1C2I:ID+4HW05B9NZN59KXG4RNK055-MPW$NLEENKE$JDVPLZ2KD0KSKE MCAOI8%M/U6*6AV-38DR8%MDD22L63X7GYPH1R94A99RLHPZW6-Z7DR0P.M09E:TU+MM0W5QX5BT1X%E.ZPBM9X0BD-I/2DBAJDAJCNB-43X48YISLV423VLJVE0I23FU2O1BLD3423ZQT-EJDG3O3H5NJ73PHB%336J37A0AKDNKBK4MH00N8JH06/4A.PJHPJCQJW6/97DKFN$K6QS47PG6I2%KYZPBGK34JWLG56H0API0VN5%54I45U8QYASD5I+:3NFUWN8N4AJBMB7HFZ7.JE$T.+CBUMMJBNMDXT57VJ3QQXG9ZL005T1LJE4KMNRKWASCEPKAT5HZ+GBQ2GPHACHG+EA3U0PGIZ9FCCPCQ3-QG/54AT$*0%43R:D

Ce long texte n'a pas été écrit par des martiens, c'est une structure de données (JSON) qui a été encodée en base45, compressée puis signée.

Base45 : compressé et signé ?

Compressé ?

Un QR Code ne peut pas stocker un nombre illimité de données, il faut donc compresser au maximum pour faire rentrer toutes les informations dans notre image.

Pour ça, encoder en Base45 offre une solution très pratique dès que l'on utilise des QR Codes.

Signé ?

Lorsque vous signez un contrat de votre main, nous arrivons à savoir que c'est bien vous qui avez posé vos initiales, cependant nous ne pouvons pas imiter votre signature.

Le principe est assez similaire dans notre cas, c'est appelé "Chiffrement asymétrique", je vais tenter de vous l'expliquer dans le jargon du commun des mortels.

Pour chiffrer nous allons avoir deux clés, une privée et une publique.

La clé privée je dois la garder en lieu sûr, ne la partager avec personne, cette clé va me permettre de chiffrer mon message.

La clé publique je peux la partager avec les personnes qui ont besoin de lire mon message chiffré, cette clé ne peut que déchiffrer.

Pour notre QR Code, le message a été chiffré et seul l'état a cette capacité car elle détient les clés privés. Ensuite elle met à disposition la clé publique pour que nous puissions lire le QR Code.

De cette manière, il est quasiment impossible de falsifier un QR Code !

Et si on le déchiffre, qu'est ce que l'on obtient ?

Pour déchiffrer le QR Code j'ai donc récupéré la clé publique mise à disposition et j'ai obtenu le résultat suivant :

{
   "1":"FR", // Pays qui a crée le certificat
   "6":1626175383, // Date de la création
   "4":1680175383, // Date d'expiration
   "-260":{
      "1":{
         "ver":"1.3.0",
         "nam":{
            "fn":"PRENOM",
            "fnt":"PRENOM",
            "gn":"NOM",
            "gnt":"NOM"
         },
         "dob":"1998-11-26", // Date de naissance
         "t":[
            {
               "tg":"840539006", // Maladie concernée (COVID-19)
               "tt":"LP217198-3", // Vaccin ou test
               "sc":"2021-05-07T17:11:00+02:00", // Date du prélèvement (si test)
               "tr":"260415000", 
               "tc":"FRANCE", // Pays du vaccin ou test
               "co":"FR", // Pays du vaccin ou test (code ISO)
               "is":"APHP", // Lieu du vaccin ou test
               "ci":"URN:UVCI:01:FR:Z5IFMSHUGLWX17I#V" // Identifiant du certificat
            }
         ]
      }
   }
}

Ici nous avons donc un Certificat d'un test PCR mais sur celui d'un vaccin nous trouverons plus d'informations (fabricant du vaccin, nombre de doses nécessaires, nombre de doses effectuées).

Le code source des applications est accessible, il est donc très simple de comprendre le fonctionnement et de s'assurer que personne ne profite de ces outils pour venir nous traquer : eu-digital-green-certificates

⚠️ Toutes les données affichées dans cet article ont été volontairement modifiées pour éviter toute usurpation d'identité, je vous invite à utiliser votre propre QR Code si vous souhaitez faire l'essai chez vous.

Nous vous présentons nos cookies

Sur ce site, nous utilisons des cookies pour mesurer notre audience. Pas de crainte, votre anonymat est conservé. Vous pouvez sélectionner ici ceux que vous autorisez à rester.

Google Analytics

Un projet ? Une idée ? Parlons-en !