В продовження статті Паспорт громадянина України (ID картка) попробуємо вичитати дані, які містяться в чіпі паспортної карти.
Найпростіше вичтитати карту з допомогою мобільного телефону із підтримкою NFC із ОС Android.
В майбутньому кадровод просто зчитує інформацію з паспорта телефоном, і дані потрапляють в інфосистему підприємтсва (WorkDay, SAP, etc)…
Для цього інсталюємо програму UAID READER (passportua.com) (з сайту), яку як замовник пропонує державне підприємство “Поліграфічний комбінат “Україна”.
UPD1: компанія UnIT виклала нові додатки UAID Reader (passportua2.com) для Android (поточна версія додатку підтримує процесори, які сумісні з
архітектурами arm64-v8a і х86_64, які є 64-бітними) і UAid Reader для iOS.
При запуску отримуємо привітання:
і спосіб авторизації:
Доступитися до даних можна з використанням:
- CAN (останні шість цифр номера документа)
- PIN1 коду
- PIN2 коду
Тобто зчитати паспорт на бачачи MRZ дані паспорта неможливо (кількість спроб/захист від перебору не відомо). При спробі доступу перебором після 3 спроби вводу PIN карта блокується, потрібно вводити PUK. Після 10 спроб чіп остаточно блокується.
При успішній авторизації і отримання даних буде відображено наступні дані:
- Фотографія власника (розмір фото 427*548, JPEG v1.1, RGB, 24 біти)
- Ім’я, прізвище, по батькові [FirstLastNames, MiddleName]
- Дата народження [BirthDay]
- Орган видачі [Authority]
- Номер документа
- МЗЗ документа [Mrz]
- Фото зразка підписа
На вкладці розширені дані:
- Ім’я, прізвище англійською
- Місце реєстрації, і дата внесення змін [PlaceOfRegistration, DateOfChange]
- Дата видачі паспорта [DateOfIssue]
- Термін дії документа
- Сімейний стан [MarriageState, DateOfChange]
- Місце народження [BirthPlace]
- Номер ЄДДР [RegistryNumber]
- РНОКПП
Також на сторінці піліграфкомбінату можна завантажити ПЗ для комп’ютера:
- UAPass (Java)
- UAID Reader
В документації викорситовували зчитувач OMNIKEY CardMan 5021 (5×21-CL).
Також виявлено що чіп використаний у паспортній карті ідентичний закордонному паспорту.
Завдяки статті виявилося що використовується 2 типи чіпів NXP JCOP P60D145 і P71D321.
Дані також можна зчитати з допомогою програми ReadID – NFC Passport Reader, перевагою що програма сама зчитує MRZ для доступу до даних камерою.
На вкладці Detail розміщенно більше інформації:
На вкладці Advanced міститься інформації про цифрові сертифікати і підписи блоків. Як ми бачимо версія Logical Data Structure (LDS) 1.7 і підтримує наступні методи доступу: AA, PACE, EAC, BAC. Документ підписано сертифікатом на основі SHA256WITHRSA, публічний підпис на базі еліптичних кривих (EC). Сертифікат країни на основі SHA256WITHRSA, публічний підпис на базі RSA. Також нижче відображено блоки інформації для яких перераховується підпис і порівнюється з тим який збережено.
У нових паспортах пофіксали безпеку доступу до чіпу.
Завантажити піблічні сертифікати країн можна на сайті ICAO за посиланням. Сертифікат для України виглядає так:
dn: CN=CN\=CSCA-UKRAINE\,OU\=SCPD PCU\,O\=Polygraph combine UKRAINA for secu rities production\,serialNumber\=UA-16286441-0001\,C\=UA+SN=186BB1,o=Certif icates,c=UA,dc=data,dc=pkdDownload OTDoc9303Result: WARN:DSC:CDP: Document Signer Certificate field CRL Distrib ution Point Field_Not_Present|DSC:IAN: Document Signer Certificate field Is suer Alternative Name Field_Not_Present|DSC:SAN: Document Signer Certificat e field Subject Alternative Name Field_Not_Present|DSC:DTL: Document Signer Certificate field Document Type List Extension Field_Not_Present|DSC:BAC: Document Signer Certificate field Basic Constraints Path_Length_Not_Zero|ER R:DSC:EXT: Document Signer Certificate field Extensions Default_Value_Encod ed|DSC:BAC: Document Signer Certificate field Basic Constraints Field_Prese nt OTDoc9303Code: WARN:DSC.CDP.14:DSC.IAN.14:DSC.SAN.14:DSC.DTL.14:DSC.BAC.25:E RR:DSC.EXT.22:DSC.BAC.15 userCertificate;binary:: **************************** sn: 186BB1 cn: CN=CSCA-UKRAINE,OU=SCPD PCU,O=Polygraph combine UKRAINA for securities p roduction,SERIALNUMBER=UA-16286441-0001,C=UA objectClass: top objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person
Як бачимо можливості такого паспорту досить широкі. На паспорті можна зберігати також персональний цифровий підпис і здійснювати інші маніпуляції. Про реверс програм доступу, звідки скопійовано код (там і є Stack Overflow і GitHub) розкажу у наступних замітках.
Юрій Р. ◯ 0009-0005-3702-9223. (2018). Паспорт громадянина України (ID картка) – inside. Блог UA ID. Взято з: https://blog.uaid.net.ua/ua-id-passport-inside