Чтение данных ID-карты в Ubuntu с помощью считывателя смарт-карт EZ100PU (Thai ID Edition)


Нас попросили помочь с настройкой считывателя смарт-карт на компьютере под управлением Windows 7. Но, это заставило задуматься о том, что произойдет, если мы подключим устройство чтения карт к ноутбуку с Ubuntu и сможем ли мы считать содержание с Thai ID card.

Считыватель смарт-карт EZ100PU

Давайте сначала посмотрим на сам считыватель.

Это устройство для чтения смарт-карт FAST ID EZ100PU, соответствующее стандарту ISO7816. Это страница продукта конкретной модели, но поиск EZ100PU показывает только, что производитель — InfoThink Technology, находящийся в Тайване.

Считыватель смарт-карт USB поставляется с компакт-диском, содержащем драйверы для Windows, Linux, Mac OS и Android, а также SDK с демо-программой и примером кода на C ++, Visual Basic .NET и C #. Как мы увидим далее, драйвер Linux не нужен, поскольку он работает «из коробки».

Конструкция платы (RX-N99B-2) очень проста, имеется только основной чип — USB-контроллер смарт-карт Alcor AU9560. А также можно увидеть область, которая взаимодействует с чипом смарт-карты, в нижней левой части печатной платы. 

На другой стороне платы слот для смарт-карт.

Использование считывателя смарт-карт в Ubuntu 18.04

Давайте подключим считыватель к ноутбуку и вставим Thai ID card  (контактная смарт-карта).

Смарт-карта ​​автоматически определяется как EMV Smartcard Reader.

Пришлось обратиться к Интернету, и мы нашли пост на Linuxmint, объясняющий, как это сделать, основываясь на более раннем посте об испанских идентификационных картах.

Необходимо установить несколько пакетов (примечание: не все могут понадобиться, но важными являются pcscd и pcsc-tools): 

Теперь запускаем сканирование на считывателе: 

Обнаружен Alcor Micro AU9560, и он обнаруживает тайский паспорт, возможно потому, что программа, использованная для создания карты, была неправильно настроена.

В smartcard_list.txt есть несколько других кодов специально для карт Thai ID. Вы можете проверить этот файл, чтобы увидеть все виды поддержки карт. Вот некоторые, для справки, с пометкой «Thai»:

Thai GSM UICC (Телекоммуникации) 
Thai id card (Другое) 
Seven-Eleven Value Card / Умный кошелек — Таиланд (другое) 
Thailand National ID (eID)
Thai National ID Card (eID)
Thai National ID Card (eID)
Thai (паспорт) 
Truemove H Thailand (Телекоммуникации) 
True Money Touch Sim (Таиланд) 
Seven-Eleven Value Card/ Умный кошелек — Таиланд (бесконтактный) 
Тайский паспорт 2010, 2011 
Тайский паспорт 2005

Чтение и декодирование данных с ID Card

Получить доступ к оборудованию можно с помощью считывателя и получить тип карты. Это все хорошо, но было бы хорошо иметь возможность доступа и декодирования данных внутри Thai ID card. Пользователь Github Bouroo написал код для этого на Python и NodeJS.

Сделаем это с помощью скрипта Python. Сначала нам нужно установить некоторые зависимости: 

Теперь мы можем запустить скрипт, и он будет извлекать данные соответственно: 

На консоли все отображалось правильно, включая имя и адрес, на тайском языке. Сценарий также сохранит фотографию, хранящуюся в удостоверении личности, используя имя файла <CID> .jpg, где CID — это идентификационный номер карточки.

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.