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 может быть указан только один.