Що міститься всередині «електронного сертифіката здоров'я» ЄС і як він працює

У низці країн ЄС вже використовують цифрові документи, які часто називають "паспортами вакцинації" або "зеленими квитками", у вигляді спеціального QR-коду.

Tobias Girstmair з Австрії подивився, що міститься в його сертифікаті. Найімовірніше, "паспорти вакцинації", які будуть дійсними у ЄС, матимуть схожий функціонал.

В Австрії вам потрібно або зробити щеплення, або отримати негативний результат тесту, або вилікуватися від COVID-19, щоб ходити до паба (та у будь-яке інше місце). Якщо ви не хочете носити з собою документи, що підтверджують одну з цих умов, ви можете натомість показати свій QR-код із Green Pass. Код суттєво більший за розміром, ніж зазвичай, оскільки там значно більше інформації, ніж просто посилання на сайт.

qr-code-covid.png

QR-код електронного сертифіката вакцинації (приклад)

Після розпізнавання QR-кода спеціальним інструментом (ви теж можете це повторити) виявилося, що це кодована (найбільш базовими символами, для кращого пересилання), архівована та підписана бінарна структура даних.

Ось така:

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

Більше деталей: повна специфікація того, які технології використані.

Ну і нарешті, використовуючи невеликий скрипт на Python, можна побачити що ж всередині (у більш-менш читабельному форматі):

{-260: {1: {'dob': '1998-02-26', # Дата народження
     'nam': {'fn': 'Musterfrau-Gößinger', # Прізвище
         'fnt': 'MUSTERFRAU<GOESSINGER',
         'gn': 'Gabriele', # Ім`я
         'gnt': 'GABRIELE'},
     'v': [{'ci': 'URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B', # ID сертифіката
         'co': 'AT', # країна вакцинації
         'dn': 1, # доз отримано
         'dt': '2021-02-18', # дата вакцинації
         'is': 'Ministry of Health, Austria', # хто видав сертифікат
         'ma': 'ORG-100030215', # виробник вакцини
         'mp': 'EU/1/20/1528', # id, що за вакцина
         'sd': 2, # скільки загалом потрібно доз
         'tg': '840539006', # проти якої хвороби вакцина (COVID-19)
         'vp': '1119349007'}], # вакцина чи профілактика
     'ver': '1.2.1'}}, # схема об`єкту даних
1: 'AT', # країна видача QR коду
4: 1624458597, # дата закінчення дії QR коду
6: 1624285797} # дата генерації QR коду

Отже, з цих даних, які містить показаний вище QR-код, видно що 23-річна Габріеле (видумана особа) була щеплена в лютому вакциною від компанії BioNTech / Pfizer (як визначити різні поля даних). У QR-коді немає інформації про те, скільки людина матиме імунітет. Такий показник обчислюється за кількістю отриманих доз та датою вакцинації, а також обставин (наприклад, відвідування ресторану та відвідування роботи) за допомогою програми-сканера. Окрім вашого імені та назви виробника отриманої вакцини, всередині немає зайвих даних, тому QR-код не є жахіттям з погляду конфіденційності.

Задачею програми-сканера, якою будуть читати цей QR-код на вході у паб чи під час паспортного контролю, є не лише визначити всі необхідні параметри та допомогти прийняти рішення, чи можна пропускати людину (чи є імунітет, чи та вакцина тощо). Також дуже важливою задачею є перевірка справжності сертифіката. Зі специфікації виходить, що для цього програми-сканери на кожному телефоні матимуть копії публічних ключів усіх уповноважених органів, що видаватимуть такі сертифікати (QR-коди). Це зроблено для того, щоб перевірку можна було робити офлайн, тобто навіть в умовах відсутності доступу до інтернету.

Отже, якийсь уповноважений орган (наприклад, Ministry of Health, Austria, як вище) видає такий сертифікат на основі даних про вакцинацію та людину, що у них є. І підписує цей сертифікат своїм цифровим підписом (приватним ключем). А програма сканер, маючи у своєму розпорядженні відповідний публічний ключ, серед інших, для "Ministry of Health, Austria", офлайн може перевірити справжність даних з QR-коду. Подібні коди використовуються також для підтвердження тестування або того, що людина перехворіла та відновилася після інфекції.

covid-19 паспорт вакцинація

Знак гривні
Знак гривні