Какова точная процедура выполнения внешней аутентификации?

Я пытаюсь выполнить внешнюю аутентификацию на смарт-карте, я получил 8-байтовый вызов от карты, а затем мне нужно сгенерировать криптограмму карты на этих 8 байтах. Но я не знаю, как выполнить эту операцию криптограммы (набор инструментов смарт-карты, преобразующий 8 байтов в 72 байта). Следующие команды генерируются набором инструментов

  1. 00 A4 04 00 0C A0 00 00 02 43 00 13 00 00 00 01 04
  2. 00 22 41 A4 06 83 01 01 95 01 80
  3. команда: 80 84 00 00 08 Ответ: (вопрос 8 байт)
  4. команда: 80 82 00 00 48 (72 байта данных)

Может ли кто-нибудь сказать, какие шаги нужно выполнить, чтобы преобразовать 8-байтовый вызов в 72-байтовый?


person 123r789    schedule 04.07.2013    source источник


Ответы (1)


Конверсия — не совсем правильный термин. Вам необходимо применить криптографический алгоритм с правильным ключом к полученному вызову. Я предполагаю, что выполняется команда External Authenticate, но странная длина поля данных не позволяет сделать никаких предположений об используемом алгоритме. Возможно, в команде также предусмотрен внешний вызов и установлены сеансовые ключи. Поскольку предполагаемая команда Get Challenge и команда External Authenticate имеют байт класса, указывающий на проприетарную команду, ISO 7816-4 здесь не поможет, и вам нужно обратиться к спецификации карты. Чтобы узнать ключ, вам, вероятно, придется подписать соглашение о неразглашении с эмитентом карты.

person guidot    schedule 04.07.2013
comment
Да, так что обращайтесь в Sagem или Morpho из группы SAFRAN — благодаря таблице RID в OpenSC действительно легко найти производителя :) - person Maarten Bodewes; 06.07.2013