Que contient le code QR du passeport vert de l'UE ?
Environ seize pays auraient déjà commencé à utiliser le pass sanitaire de l'UE
Le Parlement européen a validé le pass sanitaire au début du mois et les différents pays de l'Union se préparent à le déployer dès le 1er juillet. Si la cadence s'accélère au niveau de chaque gouvernement, et sous la surveillance des régulateurs étatiques, bon nombre de citoyens demeurent toutefois préoccupés par les données qui seront collectées dans le cadre de la mise en place du pass sanitaire ainsi que leur sécurité. Pour montrer que cette préoccupation n'a pas lieu d'être, l'UE a partagé un script Python permettant de décoder et de vérifier le code QR d'un certificat. Certains l'ont essayé et partagent ce qu'ils y ont trouvé.
Le code QR ne contiendrait pas de données superflues
Pour rappel, le pass sanitaire de l'UE, aussi connu sous le nom de certificat vert numérique de l'UE, a pour objectif de faciliter les voyages au sein de l'Union dans le contexte de la crise sanitaire. Ce certificat sanitaire contiendra un code QR prouvant que son titulaire a été vacciné, qu'il a passé un test PCR ou antigénique rapide négatif ou qu'il est immunisé après avoir été infecté par le Covid-19. Le certificat ne donnera pas de droit automatique aux personnes vaccinées avec des sérums non autorisés par l'Agence européenne du médicament, comme les vaccins chinois et russes utilisés en Hongrie.
600423
Dans ce cas, ce sera alors à l'État membre d'accepter ou non ces personnes sur son territoire. En gros, le statut Covid du titulaire du certificat, qui sera disponible aux formats numérique et papier, sera prouvé par un code QR inscrit sur le document. En ce qui concerne la vie privée et la confidentialité des données, l'UE a assuré qu'aucune donnée personnelle n'est stockée dans une base de données centrale. « Les données personnelles obtenues via les certificats ne pourront pas être stockées dans les États membres de destination », lit-on dans le communiqué du Parlement européen.
Tobias Girstmair, un étudiant australien en informatique, s'est exercé à décoder le code QR d'un pass sanitaire quelconque, généré à partir de données fictives, et a partagé ce qu'il a trouvé. « En tant que personne soucieuse du respect de la vie privée, je voulais juste savoir quels détails je donnais lorsque je laissais mon serveur scanner mon code », a-t-il écrit dans un billet de blogue sur son site Web personnel. Voici ci-dessous à quoi ressemble un certificat vert numérique de l'UE. Girstmair note qu'il est assez volumineux pour un code QR, mais comme il est censé contenir plus qu'un lien hypertexte, sa taille est normale.
t@thi3nkpad ~ % zbarimg --raw greenpass.png
HC1:NCFOXN%TS3DH3ZSUZK+.V0ETD%65NL-AH-R6IOO6+IUKRG*I.I5BROCWAAT4V22F/8X*G3M9JUPY0BX/KR96R/S09T./0LWTKD33236J3TA3M*4VV2 73-E3GG396B-43O058YIB73A*G3W19UEBY5:PI0EGSP4*2DN43U*0CEBQ/GXQFY73CIBC:G 7376BXBJBAJ UNFMJCRN0H3PQN*E33H3OA70M3FMJIJN523.K5QZ4A+2XEN QT QTHC31M3+E32R44$28A9H0D3ZCL4JMYAZ+S-A5$XKX6T2YC 35H/ITX8GL2-LH/CJTK96L6SR9MU9RFGJA6Q3QR$P2OIC0JVLA8J3ET3:H3A+2+33U SAAUOT3TPTO4UBZIC0JKQTL*QDKBO.AI9BVYTOCFOPS4IJCOT0$89NT2V457U8+9W2KQ-7LF9-DF07U$B97JJ1D7WKP/HLIJLRKF1MFHJP7NVDEBU1J*Z222E.GJF67Z JA6B.38O4BH*HB0EGLE2%V -3O+J3.PI2G:M1SSP2Y3D38-G9C+Q3OT/.J1CDLKOYUV5C3W1A:75S4LB:6REPKM3ZYO4+QDNDLT2*ESLIH
Il s'agit d'une structure de données binaires codée en Base45, compressée et signée. Le groupe qui a conçu le laissez-passer vert de l'UE a publié la spécification du code QR, qui explique en détail le pourquoi et le comment des technologies choisies. « Mais en bref : il est fortement optimisé pour la taille et la fiabilité », explique Girstmair. Une fois décodé, l'on se retrouve avec les octets qui composent le document signé. Les métadonnées (ID de la clé et l'algorithme de signature utilisé) sont surlignées en bleu, la signature en vert et la structure de données principale de CBOR en rouge.
La partie non-ASCII au début est l'émetteur du code QR, ainsi que les dates d'expiration et de génération sous forme d'horodatage UNIX 32 bits, le reste des valeurs est à peu près lisible tel quel. Voici ci-après ce qu'il explique :
t@thi3nkpad ~ % zbarimg --raw greenpass.png|cut -b5-|tr -d '\n'|base45 --decode|openssl zlib -d|xxd
00000000: d284 4da2 0448 d919 375f c1e7 b6b2 0126 ..M..H..7_.....&
00000010: a059 0133 a404 1a60 d345 6506 1a60 d0a2 .Y.3...`.Ee..`..
00000020: 6501 6241 5439 0103 a101 a461 7681 aa62 e.bAT9.....av..b
00000030: 646e 0162 6d61 6d4f 5247 2d31 3030 3033 dn.bmamORG-10003
00000040: 3032 3135 6276 706a 3131 3139 3334 3930 0215bvpj11193490
00000050: 3037 6264 746a 3230 3231 2d30 322d 3138 07bdtj2021-02-18
00000060: 6263 6f62 4154 6263 6978 3155 524e 3a55 bcobATbcix1URN:U
00000070: 5643 493a 3031 3a41 543a 3130 3830 3738 VCI:01:AT:108078
00000080: 3433 4639 3441 4545 3045 4535 3039 3346 43F94AEE0EE5093F
00000090: 4243 3235 3442 4438 3133 2342 626d 706c BC254BD813#Bbmpl
000000a0: 4555 2f31 2f32 302f 3135 3238 6269 7378 EU/1/20/1528bisx
000000b0: 1b4d 696e 6973 7472 7920 6f66 2048 6561 .Ministry of Hea
000000c0: 6c74 682c 2041 7573 7472 6961 6273 6402 lth, Austriabsd.
000000d0: 6274 6769 3834 3035 3339 3030 3663 6e61 btgi840539006cna
000000e0: 6da4 6366 6e74 754d 5553 5445 5246 5241 m.cfntuMUSTERFRA
000000f0: 553c 474f 4553 5349 4e47 4552 6266 6e75 U
00000110: 696e 6765 7263 676e 7468 4741 4252 4945 ingercgnthGABRIE
00000120: 4c45 6267 6e68 4761 6272 6965 6c65 6376 LEbgnhGabrielecv
00000130: 6572 6531 2e32 2e31 6364 6f62 6a31 3939 ere1.2.1cdobj199
00000140: 382d 3032 2d32 3658 40f1 9401 7d5f 93fa 8-02-26X@...}_..
00000150: 8cd8 a646 631e fd8f 9fc1 159d 3b06 17c7 ...Fc.......;...
00000160: f403 a993 88db f0da 6271 2bd9 402b 6181 ........bq+.@+a.
00000170: 34f0 4197 fc98 0be5 9820 8d66 bf35 c104 4.A...... .f.5..
00000180: 7d5b 2c0a e53d 7aad d4 }[,..=z..
En utilisant Python, l'on peut ensuite extraire les données suivantes de la charge utile. Elles ont été annotées en suivant le schéma du certificat.
{-260: {1: {'dob': '1998-02-26', # date of birth
'nam': {'fn': 'Musterfrau-Gößinger', # family name
'fnt': 'MUSTERFRAU
'gnt': 'GABRIELE'},
'v': [{'ci': 'URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B', # certificate ID
'co': 'AT', # country of vaccination
'dn': 1, # doses received
'dt': '2021-02-18', # date of vaccination
'is': 'Ministry of Health, Austria', # cert issuer
'ma': 'ORG-100030215', # vaccine manufacturer
'mp': 'EU/1/20/1528', # vaccine product id
'sd': 2, # total number of doses
'tg': '840539006', # targeted disease (COVID-19)
'vp': '1119349007'}], # vaccine or prophylaxis
'ver': '1.2.1'}}, # schema version
1: 'AT', # QR code issuer
4: 1624458597, # QR code expiry
6: 1624285797} # QR code generated
Alors que révèle le code QR ? Comme vous pouvez le voir, Gabriele, 23 ans, a été vaccinée en février, une fois, avec le Comirnaty de BioNTech/Pfizer. Ce qui n'est pas inclus, c'est la date pendant laquelle elle est considérée comme immunisée. Celles-ci sont calculées à partir du nombre de vaccins reçus et de la date de la vaccination, ainsi que des circonstances (aller au restaurant ou au travail, par exemple) par l'application scanner. Ceci montre en effet qu'en dehors du nom/fabricant du vaccin reçu, il n'y a pas de données superflues à l'intérieur. « Le code QR n'est pas un cauchemar pour la vie privée, comme certains l'ont craint », a conclu Girstmair.
Pour vérifier les données de votre propre passeport vert, vous pouvez consulter greenpass.py. Il prend le PDF de gruenerpass.gv.at ou l'image en format PNG du code QR lui-même sur la ligne de commande, et imprime toutes les données, annotées avec le schéma mentionné ci-dessus.
Plusieurs pays ont déjà mis en place le pass sanitaire
À l'heure actuelle, environ seize pays auraient commencé à utiliser le "certificat numérique COVID" de l'UE (EUDCC) pour permettre à leurs citoyens de voyager facilement à travers l'Union. Selon la Commission européenne, quinze États membres (l'Autriche, la Belgique, la Bulgarie, la Croatie, la République tchèque, le Danemark, l'Estonie, l'Allemagne, la Grèce, la Lettonie, la Lituanie, le Luxembourg, la Pologne, le Portugal et l'Espagne) se sont connectés à la passerelle et ont commencé à délivrer les premiers certificats. Ils sont rejoints par l'Islande, qui est le premier des quatre pays de l'Espace économique européen à adhérer au système.
D'autres pays devraient suivre le mouvement lorsque ses fonctions seront déployées à l'échelle du continent d'ici le 1er juillet. Le projet de l'UE est de mettre en place un système unique pour faciliter la sécurité des voyages en vérifiant le statut du détenteur du laissez-passer vis-à-vis du coronavirus, que ce soit par la vaccination, un résultat négatif récent ou la preuve de la guérison du virus. Selon la Commission, plus de 20 pays ont testé avec succès le système au cours du mois dernier.
Par ailleurs, la Commission souhaite que 70 % des 450 millions d'habitants de l'Union aient reçu au moins une dose de vaccin d'ici la fin juillet, ce qui facilitera davantage la mise en place du pass sanitaire. La chef de la Commission, Ursula von der Leyen, a révélé le mois dernier que l'UE était en bonne voie pour atteindre cet objectif, avec plus de 250 millions de doses administrées à ce jour. En outre, plus de 80 millions d'Européens auraient déjà été entièrement vaccinés.
Sources : Tobias Girstmair, Script Python de décodage et de vérification, Projet du certificat vert numérique de l'UE, Commission européenne
Et vous ?
:fleche: Quel est votre avis sur le sujet ?
:fleche: Que pensez-vous des données contenues dans le code QR ?
Voir aussi
:fleche: Application TousAntiCovid et Pass sanitaire : les informations personnelles et médicales sont disponibles en clair
:fleche: Le Parlement européen valide le pass sanitaire : et maintenant ? Les vols internationaux devraient bientôt reprendre leur cours normal
:fleche: Covid-19 : accord trouvé sur le pass sanitaire européen, il sera disponible sur smartphone, mais aussi en version papier
:fleche: Covid-19 : un « certificat sanitaire » européen, en version électronique ou papier, disponible dès le 15 juin, a annoncé Thierry Breton
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
