SmartCard ВЗАИМНАЯ АУТЕНТИФИКАЦИЯ

Привет! Я ищу информацию о работе MUTUAL AUTHENTICATION со смарт-картами. Интересно, можете ли вы мне помочь. Я работаю над командами обратного инжиниринга apdu и хотел бы узнать, как рассчитать MAC. Например, у меня есть следующее:

APPLET: A4 00 04 0C XX XX XX
APDU: 00 84 00 00 08 C9
TRX: 00 82 00 00 28 [seed bytes Transformed enc mac ...] 00
TRX: B0 0C 0D 81 00 97 01 5D 8E 08 [MAC] 00

Первые две команды я их прекрасно понимаю, но начиная с третьей 00 82 я хотел бы узнать, как рассчитать MAC и что следует, чтобы получить показания, которые я хотел бы узнать, информацию и документы, чтобы прочитать и узнать больше. о ВЗАИМНОЙ АУТЕНТИФИКАЦИИ

1 ответ

Решение

Краткое описание Mutual Authenticate в целом (я согласен, ISO 7816-4 немного сжато по смыслу, концентрирующемуся на интерфейсе:

  • Взаимная аутентификация - это комбинация внутренней аутентификации и внешней аутентификации.

  • Сначала хост-приложение запрашивает случайное число с карты.

  • Затем это случайное число каким-то образом шифруется с использованием секретного ключа, обычно с применением алгоритма MAC

  • Результат вычисления отправляется обратно на карту в поле командных данных Mutual Authenticate, а другое случайное число генерируется снаружи.

  • Карта проверяет результат MAC и, в случае успеха, дает право доступа. Он также вычисляет MAC из предоставленного извне случайного числа, используя другой ключ, и отправляет его как ответ команды. В случае неудачи предпринимаются некоторые меры против грубой силы либо счетчиком ошибок, блокирующим ключ, либо существенной задержкой.

  • Хост-приложение проверяет MAC с карты. Если результат верный, хост-приложение может быть уверенным, это "легальная" карта.

Две точки имеют решающее значение:

  • как отделить и кодировать MAC и внешне предоставленное случайное число - например, как структуру TLV, используя два объекта данных
  • как идентифицировать оба ключа, так как в P2 может быть указан только один.
Другие вопросы по тегам