Що міститься всередині «електронного сертифіката здоров'я» ЄС і як він працює
У низці країн ЄС вже використовують цифрові документи, які часто називають "паспортами вакцинації" або "зеленими квитками", у вигляді спеціального QR-коду.
Tobias Girstmair з Австрії подивився, що міститься в його сертифікаті. Найімовірніше, "паспорти вакцинації", які будуть дійсними у ЄС, матимуть схожий функціонал.
В Австрії вам потрібно або зробити щеплення, або отримати негативний результат тесту, або вилікуватися від COVID-19, щоб ходити до паба (та у будь-яке інше місце). Якщо ви не хочете носити з собою документи, що підтверджують одну з цих умов, ви можете натомість показати свій QR-код із Green Pass. Код суттєво більший за розміром, ніж зазвичай, оскільки там значно більше інформації, ніж просто посилання на сайт.
QR-код електронного сертифіката вакцинації (приклад)
Після розпізнавання QR-кода спеціальним інструментом (ви теж можете це повторити) виявилося, що це кодована (найбільш базовими символами, для кращого пересилання), архівована та підписана бінарна структура даних.
Ось така:
Більше деталей: повна специфікація того, які технології використані.
Ну і нарешті, використовуючи невеликий скрипт на Python, можна побачити що ж всередині (у більш-менш читабельному форматі):
'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-коду. Подібні коди використовуються також для підтвердження тестування або того, що людина перехворіла та відновилася після інфекції.