SCP03 Внешняя аутентификация

Я пытаюсь выполнить взаимную аутентификацию на eUICC, используя SCP03. Когда я отправляю на карту команду External Authenticate, я получаю от нее ответ: AF8023026985, который, как мне кажется, SW = 6985.

Кто-нибудь, пожалуйста, скажите мне, что мне не хватает?

Вот как я создаю внешнюю команду аутентификации в Python 3:

extAuthCmdBase = '8482330010'
initialStrForMac = 16 * '00' + extAuthCmdBase + hostCryptogram
C_MAC = aes.CMAC(initialStrForMac, sMAC)
extAuthAPDU = extAuthCmdBase + hostCryptogram + C_MAC[:16]
len_apdu = hex(len(extAuthAPDU))[2:].upper().zfill(2)
expExtAuthAPDU = 'AE80' + '22' + len_apdu + extAuthAPDU + '0000'

person Satan    schedule 17.01.2020    source источник
comment
Я вижу много строк, содержащих шестнадцатеричные цифры, где я ожидал бы байтов, например. грамм. в initialStrForMac '00' нужно заменить на '\x00'. Учитывая, что это повлияет на каждую команду: где вы спрятали преобразование в двоичный файл?   -  person guidot    schedule 18.01.2020
comment
Спасибо за ваш комментарий @guidot. Преобразование 16*''00' в 16*\x00' происходит в aes.CMAC(), где я конвертирую шестнадцатеричную строку на bytes.fromhex(hexString).   -  person Satan    schedule 18.01.2020


Ответы (1)


Наконец-то я получил SW=9000 от доп. авт.

Используется цепочка сценариев как для инициализации обновления, так и для расширения. команда авторизации.

Все эти команды инициализации обновления и внешней аутентификации должны быть отправлены в одном сеансе. Это, в зависимости от того, как запрограммирована ОС eUICC, может быть реализовано с помощью концепции цепочки сценариев, с помощью которой eUICC будет понимать, что сеанс будет продолжен, и дальнейшие последующие команды должны быть отправлены хостом.

Чтобы узнать о процедуре объединения сценариев, см. ETSI TS 102 226, раздел TLV связывания сценариев.

Тег для команды инициализации обновления: «AE80830101» Тег для внешней команды аутентификации: «AE80830102»

Используемый здесь режим тегов представляет собой расширенный формат команды приложения удаленного управления "защищенные данные" - кодирование неопределенной длины.

person Satan    schedule 18.01.2020
comment
Хотя очевидно, что Get Challenge и External Authenticate должны появляться в одном и том же сеансе, инициализация не должна быть связана. - person guidot; 20.01.2020