Как читать или писать смарт-карты
Я новичок со смарт-картой. У меня есть смарт-карта (поддержка ISO 7816-4), но у меня нет спецификаций и считывателя omnikey. Я использую PCSC острый. Я могу передать только успешно получить инструкцию вызова. Я тоже могу читать ATR. Одна из моих карт ATR - 3B-DB-94-00-80-31-FE-45-00-31-C0-64-20-27-02-00-00-90-00-45. Но не может передать любую другую инструкцию. Ответ, который получает sw1 и sw2, выглядит как "файл не найден", "Неверный параметр" и так далее. Мой вопрос: есть ли какой-нибудь распространенный способ чтения или записи на смарт-карте. И могу ли я читать или писать на смарт-карту, спецификация производителя которой неизвестна.
3 ответа
Попробуй эти апду
Выберите MF APDU:
00 A4 00 00 00
Создать EF APDU(передать двоичный файл с идентификатором файла 0X3F01):
00 E0 00 00 09 62 07 83 02 3F 01 82 01 01
Запись данных APDU (данные - 0102030405):
00 D0 00 00 05
Прочитать 5-байтовые данные:
00 B0 00 00 05
В Интернете есть SDK, специально для dot NET
Здесь http://www.smartcard-api.com/download.shtml
Вы можете скачать полный код по ссылке выше, которая в ответ дает вам значения ATR и UID карты
Я мог читать значения карт, все еще глядя на то, как записывать данные на бесконтактные карты.
В настоящее время большинство смарт-карт соответствует глобальному стандарту платформы, даже внутри страны это может быть не Java-карта.
Таким образом, вам нужно знать ключ для аутентификации карты и использовать какой-либо инструмент на основе глобальной платформы для доступа к карте.
Один вариант инструмента, как:
https://github.com/martinpaljak/GlobalPlatformPro
Существует еще одна оболочка на основе javascript, которую вы можете использовать для создания некоторых интерактивных сценариев:
http://www.openscdp.org/scsh3/
По сути, вам нужно знать, какие данные и команды вам нужны для изменения данных, и какой тип аутентификации вам нужно выполнить перед выполнением дальнейшей операции.