Почему безопасный канал java SIM-карты возвращает "не совпадают"?
Я пытаюсь установить апплет на SIM-карту, которая поддерживает Java-карту V3.0.4. Когда я пытаюсь установить безопасный канал для загрузки апплета, карта возвращает ошибку:
mode_211
enable_trace
establish_context
card_connect
select -AID A000000151000000
Command --> 00A4040008A000000151000000
Wrapped command --> 00A4040008A000000151000000
Response <-- 6F108408A000000151000000A5049F6501FF9000
open_sc -security 1 -keyind 0 -keyver 0 -mac_key 79AA24D80FF0056101F1D9AB6DCAF0E6
-enc_key 79AA24D80FF0056101F1D9AB6DCAF0E6
Command --> 80CA006600
Wrapped command --> 80CA006600
Response <-- 664A734806072A864886FC6B01600B06092A864886FC6B020202630906072A86488
6FC6B03640B06092A864886FC6B048000640B06092A864886FC6B040255640B06092A864886FC6B0
481079000
Command --> 8050000008F05E65BF5254BC9F00
Wrapped command --> 8050000008F05E65BF5254BC9F00
Response <-- 00005147A5190C5352322002001C1F47B6C76BABFD305EBBC2CD1BB39000
mutual_authentication() returns 0x8030F00A (The Secure Channel Protocol passed and reported do not match.)
Я использую GPShell-1.4.4. Я полагаю, проблема в неправильном наборе ключей! Я правда или есть что-то еще, что я не могу догадаться, что?!
Спасибо за ваш ответ,
1 ответ
(Я частично повторно использую ответ, который я написал для вашего предыдущего вопроса, который вы внезапно удалили)
Код ошибки GP211_ERROR_INCONSISTENT_SCP означает, что предполагаемая версия SCP для GPShell не соответствует реальной версии SCP, предоставленной картой ( см. Здесь).
Проверьте 12-й байт ответа карты на INITIALIZE UPDATE
- Идентификатор протокола защищенного канала (см., Например, спецификацию карты GP 2.3, раздел E5.1.6) и параметр использования -scp
,
В качестве альтернативы вы можете использовать GlobalPlatformPro, так как GPShell довольно устарел...
Помните, что вы можете заблокировать свою карту, выдав несколько INITIALIZE UPDATE
Команды без успешной аутентификации!
Поскольку ваш текущий вопрос содержит полный журнал, можно проанализировать данные тега Card Data (согласно GP 2.2.1):
66 Card Data
73 Card Recognition Data / Discretionary Data Objects
06 OID
2A864886FC6B01 {globalPlatform 1} // Card Recognition Data
60 Application Tag 0
06 OID
2A864886FC6B020202 {globalPlatform 2 2 2} // GP 2.2 Card
63 Application Tag 3
06 OID
2A864886FC6B03 {globalPlatform 3} // Card Identification Scheme
64 Application Tag 4
06 OID
2A864886FC6B048000 {globalPlatform 4 128 0x00} // SCP80 i=0x00
64 Application Tag 4
06 OID
2A864886FC6B040255 {globalPlatform 4 2 0x55} // SCP02 i=0x55
64 Application Tag 4
06 OID
2A864886FC6B048107 {globalPlatform 4 129 0x07} // SCP81 i=0x07
Так что вы можете использовать -scp 2 -scpimpl 0x55
или же -scp 2 -scpimpl 85
(что бывает так же).
Или используйте GlobalPlatformPro.
альтернативно -scpimpl 0x15
должен работать так же, как хорошо известный бит псевдослучайного алгоритма (вызов карты) в "i" не должен иметь значения...
Удачи!