Читайте данные гражданина с JavaCard
Наше правительство начало выдавать Smart National ID Card (SNIC)
У меня есть устройство чтения смарт-карт (ACR38-IPC)
Когда я вставил свой SNIC в считыватель, Windows обнаружила его и установила драйвер, теперь он отображается в диспетчере устройств как: ActivIdentity Mini Driver (Oberthur ID-One Cosmo V7.0 128K)
Я узнал, что это JavaCard v2.2.2
Я хочу прочитать мой национальный идентификационный номер карты из SNIC с помощью считывателя в приложении C#.
Я искал в интернете, но не нашел подходящего ответа. Я не хочу создавать апплет и загружать его на карту, я просто хочу прочитать информацию о гражданине, хранящуюся на карте.
Я также установил программное обеспечение, предоставленное другими странами их гражданам для чтения их карточек, но они не могут прочитать мою карточку.
Моя главная проблема заключается в том, что органы, выдающие SNIC, ничего не говорят мне о карте (совершенно нелепо), они даже не дают мне мой PIN-код (не правда ли, удивительно???) (возможно, они не хотят, чтобы широкая публика развивалась) приложения, использующие эту карту, они позволят своим людям делать это и получат выгоду: кумовство)
Все, что я знаю, это тип карты, и я хочу извлечь свою информацию из карты (я думаю, что она не должна быть защищена ПИН-кодом и может быть прочитана, даже если я не знаю ПИН-кода)
Пожалуйста, помогите мне, как начать
это разбор ATR для моей карты: разбор ATR
2 ответа
Взглянув на ATR, кажется, что карта утверждает, что имеет EF.DIR. Это, вероятно, означает, что интерфейс APDU соответствует стандарту ISO 7816-4. Это также означает, что карта, вероятно, будет соответствовать стандарту ISO 7816-15, и этот стандарт основан на общедоступном стандарте PKCS#15 (предупреждение, ссылка ftp на версию 1.1 стандарта в формате PDF). Сами карты Java содержат только базовую поддержку APDU ISO 7816-4, хотя уровень связи (ISO 7816-3) (более или менее) соблюден. Остальное зависит от разработчика карты Java.
Чтобы начать читать эту карту, нужно получить доступ к копии ISO 7816-4. Кроме того, вам необходимо прочитать структуры BER и DER, так как очень вероятно потребуется понимание структур ASN.1. После этого вы сможете читать данные, используя SELECT
а также READ BINARY
APDU-х. Прочитав EF.DIR, посмотрите, что находится внутри этого файла.
Если вам повезет, карта соответствует стандарту ISO 7816-15. ISO 7816-15 описывает способ обнаружения всех файлов и объектов на карте. Единственная проблема заключается в том, что разбор ISO 7816-15 - это не то, что можно сделать днем. Чтобы получить представление, взгляните на стандарт PKCS#15, на котором основан стандарт ISO.
К сожалению, бизнес смарт-карт является одним из исключений. Наличие какой-то официальной документации было бы очень полезно. Утверждение о том, что карта соответствует стандарту ISO 7816-4, означает почти ничего (ISO 7816-4 - это скорее общий стандарт, полезный для людей, которые создают свои собственные стандарты, и это ужасный стандарт даже для этой цели).
К сожалению, стандарты ISO/IEC строго платные. Вы могли бы хотеть найти библиотеки и такие, которые реализуют это все же. Поиск в Google по ISO/IEC 7816-4 должен возвращать много информации (возможно, включая нелегальные загрузки стандарта).
Без каких-либо полезных исходных данных (таких как страна-эмитент или, очевидно, спецификация SNIC) трудно найти значимый ответ.
Некоторые намеки:
- Java-карты имеют только одну фиксированную инструкцию, SELECT, которая определенно не может прочитать желаемую информацию и вряд ли понадобится здесь, поскольку приложение по умолчанию, по-видимому, именно то, что вас интересует.
- ПИН может присутствовать или нет; не очевидно, что это ваш ПИН-код, он может быть предусмотрен для будущего приложения, которого еще нет на карте (например, приложения для цифровой подписи) или оно никогда не понадобится вообще.
- Даже если для считывания данных не требуется ПИН-код, может потребоваться аутентификация из фоновой системы; вполне возможно, что без этого ничего нельзя прочитать. Без существенной дополнительной информации это не изменится. Одни только карты не помогут прогрессировать.
- Если карта совместима с ИКАО и / или имеет бесконтактный интерфейс, в ваших интересах, чтобы ни один перехватчик не мог прочитать информацию из вашего кармана. Как правило, нужно выполнить действие, которое показывает согласие с чтением, как Basic Access Control, для которого требуется информация, напечатанная на карте.