Emv smartcard reader как пользоваться
Обновлено: 07.07.2024
1) Информация, возможно, и не конфиденциальная, но персональная - соответственно, любая попытка ее машинной обработки попадает под соответствующий ФЗ, это Вы должны понимать для начала.
2) Вопрос, собственно, не в закрытости информации, а в закрытости интерфейсов карты. Я Вам уже писал, что обычно такая информация передается с заключением договора о нераспространении. В открытом доступе ее может просто не быть.
3) Вы уверены, что знание интерфейса Вам поможет? Там нет никакой криптозащиты?
PS. Чтобы не вводить никого в заблуждение - у меня нет такой информации.
Не знаю, может что-то изменилось, но с покон веков использовались CTAPI для чтения/записи чип-карт. На сколько я понял вам ето бля банковских карт? Вам нужна структура записей на карте. она стандартизированна(в большинстве случаев) ФИО. возраст, адресс, номер в открытой форме, остальная информация шифрованна и финкция для авторизации зашифроанна, для расшифровки и получения информации нужно подать команду на карту, получить запрос на пароль, вернуть пароль и читать данные. в общем все ето описанно в CTAPI(CT-API). и актуально для европы(стандартизация структуры данных и последовательность чтения) Большое спасибо AcerExtensa, по поводу банковских смарт карт действительно много информации, и общие данные считать без проблем, но мне необходимо считать информацию, как я уже писал выше с удостоверения личности и водительских прав, опять же повторюсь с данных документов мне не нужна какая то сверх секретная информация, которая является защищенной и приследуется за взлом по закону, вся это информация которую мне нужно получить ее можно без проблем прочитать глазами(такие данные как фио, адрес и.т.д). Но работа с данным видом смарт карт не похоже на банковские смарт карты. Друзья помогите:] Давай по очереди:1. Ты можеш прочесть данные в бинарном виде с карты?
2. Ты не можеш их расшифровать, так сказать?
Уважаемый(-ая) AcerExtensa, у мя получилось:
1) инициализировать смард ридер (CI691)
2) инициализировать карту
3) я получил с нее кое- какие данные, вот они
__________________________________________________ _______________
SMART CARD INFO
ICC STATE
ATR STRING . 3B 77 18 00 00 4B 41 53 41 4B 49 44
ICC PRESENCE . 2
ICC INTERFACE STATUS . 255
ICC TYPE PER ATR . 1
CURRENT IO STATE . < no info >
PROTOCOL
DEFAULT DATA RATE . 10080
MAX DATA RATE . 312500
ASYNC PROTOCOL TYPES . 3
DEFAULT CLK . 3750
MAX CLK . 7500
MAX IFSD . 254
SYNC PROTOCOL TYPES . < no info >
IFD PROTOCOL
CURRENT PROTOCOL TYPE . 1
CURRENT CLK . 3750
CURRENT F . 372
CURRENT D . 12
CURRENT N . 0
CURRENT W . 10
CURRENT IFSC . 0
CURRENT IFSD . 254
CURRENT BWT . 0
CURRENT CWT . 0
CURRENT EBC ENCODING . 0
EXTENDED BWT . < no info >
__________________________________________________ __________
, но мне кажется это не то что нужно, скорее всего это информация о ПО смард ридера.
4) Теперь для получения данных в бинарном виде используются так называемые APDU (Application Protocol Data Unit) команды(5-ти байтовые), на которые ридер должен дать ответ, так вот я и застопорился на этих командах, я не знаю как правильно их посылать. Вот я и прошу скинуть ссылочку где можно будет об этом что нибдуь почитать более детально, я нашел много инфы, но она вся поверхностная.. Всем большое спасибо.
фрэймворк для работы с картами: opensc
выложи код, как ты пытаешся читать.
//. Э то основная процедура которая должна вернуть бинарник
procedure bt_SendClick(Sender: TObject);
begin
label2.caption := Bin2HexExt(pcsc.GetResponseFromCard(Hex2Bin(adpu_c omand)), true, true);
end;
//. Эта функция если правильно передать в нее APdu команду выдаст ответ.Функция SCardTransmit берется со стандартной библиотеки winscard.dll
//. Эта функция и должна дать мне бинарник, но поскольку GetResponseFromCard не дает правильного ответа, соответственно и преборозовать не чего не получаеться.
function Hex2Bin(input: string): string;
var
hex, output: string;
loop : integer;
begin
for loop := 1 to Length(input) do if Pos(input[loop], hexchars) > 0 then hex := hex + AnsiUpperCase(input[loop]);
loop := 1;
if Length(hex) > 0 then
repeat
output := output + Chr(StrToInt('$'+Copy(hex,loop,2)));
loop := loop + 2;
until loop > Length(hex);
Result := output;
end;
-------------------------------------------------
Пишу я на дельфи.
Краткое описание:
Программа для чтения и сохранения данных с пластиковых и бесконтактных NFC EMV платёжных карт MasterCard, Maestro, VISA.
NFC EMV Card Reader считывает и сохраняет данные и информацию с бесконтактных платежных карт (кредитных, дебетовых, предоплаченных и т.д.) на вашем устройстве на базе Android. С помощью этого приложения вы можете считывать данные со своей существующей пластиковой или цифровой платежной карты.
Возможности:
• Чтение, хранение и управление несколькими платежными картами.
• Просмотр доступных данных и записей приложения.
• Извлечение конфиденциальной информации о платежных картах.
• Просмотр данных «Дорожка 1» и «Дорожка 2» (которые наиболее активно используются при обработке платежных карт).
• Просмотр последних совершенных транзакций.
Дополнительная информация:
• POS/POP-терминалы по всему миру используют стандарт EMV для обработки бесконтактных транзакций. Используя это приложение, вы сможете увидеть пример связи между POS/POP-устройством и платежной картой, которую вы хотите прочитать.
• Важно - за использование этого приложения плата не взимается. Это также означает, что с платежных карт, которые вы читаете, НЕ будут списываться средства.
• Приложение можно использовать в основном для справок или анализа.
• Если вы собираетесь считывать данные цифровой платежной карты с другого устройства Android (например, из Google Pay, Android Pay или другого приложения для цифрового кошелька), перед началом работы необходимо отключить Android Beam на обоих устройствах.
Поддерживаемые в настоящее время платежные карты (с AID):
• Mastercard - Кредитная или дебетовая (глобальная) - A0000000041010
• Mastercard - Common (только для США) - A0000000042203
• Mastercard - Обычная - A0000000049999
• Maestro - Дебетовая - A0000000043060
• Maestro - Дебет (внутри Великобритании) - Maestro UK (Switch) / Solo (Switch) - A0000000050001 / A0000000050002
• Visa - Кредитная или дебетовая (международная) - A0000000031010
• Visa - Common (только для США) - A0000000980840
• Visa Electron - Кредитная или дебетовая (международная) - A0000000032010
Обновление 2.2 - поддерживаются все платежные карты с неопределенными идентификаторами AID и следующими идентификаторами RID:
A000000004, A000000005, A000000003.
Это означает, что принимаются почти все платежные карты Mastercard и Visa, выпущенные во всем мире.
Перед тем, как начать читать карты:
• Убедитесь, что платежные карты, которые вы хотите прочитать, являются бесконтактными (на них напечатан логотип RFID).
• Убедитесь, что в настоящее время это приложение поддерживает платежные карты.
• Включите NFC (связь ближнего поля) в настройках (если он не включен).
Примечания по безопасности:
• Приложение использует только разрешения «NFC» и «VIBRATE». Нет разрешения «ИНТЕРНЕТ». Это означает, что разработчик не отправляет и не хранит никаких данных.
• Данные платежных карт хранятся в частном порядке в базе данных на устройстве, используемом в качестве считывателя.
• В целях защиты конфиденциальности некоторые конфиденциальные данные скрыты до выполнения дополнительной разблокировки.
Техническая информация:
• Операционное устройство должно иметь оборудование NFC, необходимое для этого приложения.
Правовая оговорка:
• Это программное обеспечение должно использоваться только для чтения ваших собственных платежных карт, если это разрешено законом. Его нельзя использовать в незаконных целях.
• Это программное обеспечение предоставляется без каких-либо гарантий и вы используете его на свой страх и риск. Риск невелик, но ваши платежные карты могут прийти в негодность.
Считыватель для смарт-карт Рутокен SCR 3001 является устройством для чтения и записи смарт-карт.
Считыватель совместим с операционными системами: Windows, macOS и Linux.
Внешний вид считывателя представлен на иллюстрации:
Подключение считывателя к компьютеру
Подключите считыватель к USB-порту компьютера.
Подключение смарт-карты к считывателю
Вставьте смарт-карту в считыватель. Корректный способ представлен на иллюстрации:
Обратите внимание на положение чипа смарт-карты.
Значения индикаторов считывателя
Индикаторы работы считывателя и смарт-карты расположены на передней части корпуса считывателя:
Левый индикатор показывает текущее состояние считывателя, правый — смарт-карты.
Состояния индикаторов и их значения представлены в таблице:
- не горит (считыватель не подключен к компьютеру)
- мигает (проблема со считывателем)
- горит (считыватель подключен к компьютеру)
- не горит (смарт-карта не подключена к компьютеру)
- мигает (происходит обмен данными со смарт-картой)
- мигает с длинными интервалами (проблема со смарт-картой)
- горит (смарт-карта подключена к компьютеру)
Работа со считывателем в ОС Windows
Проверка работы считывателя
Чтобы проверить работу считывателя:
Определение версии прошивки считывателя
Чтобы определить текущую версию прошивки считывателя:
- Откройте Диспетчер устройств.
- Рядом с пунктом Устройства чтения смарт-карт щелкните по галочке. Откроется список подключенных устройств.
- Два раза щелкните по верхней строке Устройство чтения смарт-карт Microsoft Usbccid (WUDF). Откроется окно со свойствами считывателя.
- Перейдите на вкладку Сведения.
- В раскрывающемся списке Свойство выберите пункт ИД оборудования.
В поле Значение указана версия прошивки считывателя (на иллюстрации версия прошивки 5.11).
Работа со считывателем в ОС Linux
Проверка работы считывателя
Чтобы проверить работу считывателя, подключите его к компьютеру и введите команду:
Если в результате выполнения команды отобразится название модели считывателя Aktiv Rutoken SCR 3001 Reader, то значит он работает корректно.
Если в результате выполнения команды отобразились строки "Scanning present readers. Waiting for the first reader. ", то необходимо внести в конфигурационный файл info.plist запись о считывателе.
Для изменения файла info.plist необходимы права администратора.
Чтобы внести изменение в конфигурационный файл info.plist:
- Найдите этот файл на компьютере. Путь до файла:
/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents - Откройте файл info.plist в любом текстовом редакторе.
- Найдите массив <key>ifdVendorID</key> и добавьте в него строку <string>0x0A89</string>.
- Найдите массив <key>ifdProductID</key> и добавьте в него строку <string>0x0069</string>.
- Найдите массив <key>ifdFriendlyName</key> и добавьте в него строку <string>Aktiv Rutoken SCR 3001 Reader</string>.
- Сохраните изменения в файле info.plist.
- Отключите считыватель от компьютера.
- Перезагрузите систему.
- Подключите считыватель к компьютеру и снова проверьте работу считывателя.
Определение версии прошивки считывателя
Чтобы определить версию прошивки считывателя, подключите его к компьютеру и введите команду:
В результате в строке bcdDevice отобразится версия прошивки считывателя (на иллюстрации версия прошивки 5.11).
Работа со считывателем в macOS
Проверка работы считывателя
Чтобы проверить работу считывателя:
Определение версии прошивки считывателя
Чтобы определить версию прошивки считывателя:
- Подключите считыватель для смарт-карт к компьютеру.
- Откройте программу Lauchpad.
- В строке поиска введите слово "информация" ("information").
- Откройте программу Информация о системе (System Information).
- На боковой панели окна программы выберите пункт USB.
- Для считывателя в окне программы отобразится название модели считывателя и информация о нем.
В поле Версия указана версия прошивки считывателя (на иллюстрации версия прошивки 5.11).
Нас попросили помочь с настройкой считывателя смарт-карт на компьютере под управлением Windows 7. Но, это заставило задуматься о том, что произойдет, если мы подключим устройство чтения карт к ноутбуку с Ubuntu и сможем ли мы считать содержание с Thai ID card.
Считыватель смарт-карт EZ100PU
Давайте сначала посмотрим на сам считыватель.
На другой стороне платы слот для смарт-карт.
Использование считывателя смарт-карт в Ubuntu 18.04
Давайте подключим считыватель к ноутбуку и вставим Thai ID card (контактная смарт-карта).
Смарт-карта автоматически определяется как EMV Smartcard Reader.
[ 3024.839989 ] usb 3 - 2 : new full - speed USB device number 3 using xhci _ hcd [ 3025.020314 ] usb 3 - 2 : New USB device found , idVendor = 058f , idProduct = 9540 , bcdDevice = 1.20 [ 3025.020317 ] usb 3 - 2 : New USB device strings : Mfr = 1 , Product = 2 , SerialNumber = 0 [ 3025.020320 ] usb 3 - 2 : Product : EMV Smartcard ReaderПришлось обратиться к Интернету, и мы нашли пост на Linuxmint, объясняющий, как это сделать, основываясь на более раннем посте об испанских идентификационных картах.
Необходимо установить несколько пакетов (примечание: не все могут понадобиться, но важными являются pcscd и pcsc-tools):
sudo apt install libccid pcscd pinentry - gtk2 pcsc - tools libpcsclite - dev libreadline - dev coolkeyТеперь запускаем сканирование на считывателе:
V 1.5.2 ( c ) 2001 - 2017 , Ludovic Rousseau & lt ; ludovic . rousseau @ free . fr > 250000 bits / s at 4 MHz , fMax for Fi = 5 MHz = > 312500 bits / s Possibly identified card ( using / usr / share / pcsc / smartcard_list . txt ) : Possibly identified card ( using / home / jaufranc / . cache / smartcard_list . txt ) :Обнаружен Alcor Micro AU9560, и он обнаруживает тайский паспорт, возможно потому, что программа, использованная для создания карты, была неправильно настроена.
В smartcard_list.txt есть несколько других кодов специально для карт Thai ID. Вы можете проверить этот файл, чтобы увидеть все виды поддержки карт. Вот некоторые, для справки, с пометкой «Thai»:
Чтение и декодирование данных с ID Card
Получить доступ к оборудованию можно с помощью считывателя и получить тип карты. Это все хорошо, но было бы хорошо иметь возможность доступа и декодирования данных внутри Thai ID card. Пользователь Github Bouroo написал код для этого на Python и NodeJS.
Сделаем это с помощью скрипта Python. Сначала нам нужно установить некоторые зависимости:
Читайте также: