Как читать данные смарт-карты

Я пытаюсь получить данные со смарт-карты с помощью устройства чтения смарт-карт. Я использовал программное обеспечение (PascProbe.exe), чтобы получить все данные, которые я мог. Вот что я получил:

Считыватель карт: OMNIKEY CardMan 5x21-CL 0
ATR = 3B8F8001804F0CA0000003060A0018000000007A (шестнадцатеричный)
Тип карты: PicoPass 2KS
Серийный номер карты (CSN, UID): 504B4901FBFF12E0 (шестнадцатеричный);
Данные битов PACS (необработанный Виганд): 000000202FA473F8
применение формата карты HID H10304:
Код объекта: =762
Номер карты: =145916

Я понимаю, как получить CSN(UID) и ATR с карты, используя APDU, и я понимаю, как получить код объекта и номер карты из битов PACS (здесь формат карты H10304), но я не знаю, что мне нужно знать, чтобы получить "биты PACS" со смарт-карты. Пожалуйста помоги. (Я использую.Net)
Спасибо заранее

1 ответ

Решение

Вы делаете что-то подобное (как в.NET, так и в C++, это не имеет значения), используя команды Omnikey 5x21 и APDU.

  1. Начните защищенный сеанс (ЧИТАЙТЕ, НЕ ПИШИТЕ).
  2. Выберите 0x00
  3. Аут с KD 0x21
  4. Прочитайте 0x06, 0x07, 0x08, 0x09. (Если вы делаете это в защищенном сеансе, это реальные данные, записанные на карте, в противном случае это FF FF FF FF FF .....)
  5. Теперь вы получили свой Wiegand в 0x07? Если да, то сделано. Esle Снова прочитайте 0x07, но установите третий байт 0x80, а не 0x00 (это зависит от вашей карты)
  6. Завершите сеанс

То, как вы используете команды APDU в защищенном сеансе, совершенно иное, вам нужен ключ чтения. Также есть шифрование DES для связи.

Вы можете прочитать руководство разработчика о 5x21-CL. Но я уверен, что вы сделали это в то время, читая это.

Другие вопросы по тегам