【发布时间】:2021-07-31 19:08:39
【问题描述】:
我正在尝试将 java 卡默认密钥 (40 41... 4F) 更改为我自己的密钥集。我尝试使用JCManager,但修改密钥的过程返回6A 88,这意味着reference data not found。
接下来我尝试使用 GPSShell put_sc_key 进行更改,但返回相同的错误。
什么是正确的 P1 和 P2 字节来更改默认键?
我该如何解决这个问题?
附录 1:
这是在 GPSShell 中执行GET DATA 命令的结果,如下所示:
mode_211
enable_trace
establish_context
card_connect
select -AID A000000151000000
Command --> 00A4040008A000000151000000
Wrapped command --> 00A4040008A000000151000000
Response <-- 6F108408A000000151000000A5049F6501FF9000
get_data -identifier E0
Command --> 80CA00E000
Wrapped command --> 80CA00E000
Response <-- E012C00401208080C00402208080C004032080809000
E012C00401208080C00402208080C00403208080
card_disconnect
release_context
附录 2:
这是我尝试使用带有ACR83 reader 的 GP pro 更改密钥的脚本:
gp -lock 010B0371D78377B801F2D62AFC671D95
Warning: no keys given, using default test key 404142434445464748494A4B4C4D4E4F
Failed to communicate with card in JnaCardTerminal{scardHandle=SCardContext{cd00000100000001}, name=ACS ACR83U 0}: SCardTransmit got response 0x57 (null: null)
【问题讨论】:
-
试试GlobalPlatformPro。 “密钥信息模板”中的密钥版本(可通过
GET DATA作为标记 0xE0 检索)... -
@vlp 不幸的是,我的阅读器与 GlobalPlatformPro 不兼容。我添加了附录 1 以显示
GET DATA执行细节。根据 GlobalPlatform,“关键信息模板”似乎是“隐式已知的 DES – 模式 (EBC/CBC)”。 -
你用的是什么阅读器? GlobalPlatformPro 几乎可以与任何智能卡读卡器配合使用(有错误的读卡器,但那是另一回事)
-
读卡器有PC/SC CCID兼容接口。 应该让它与 GlobalPlatform 一起工作是一件轻而易举的事。如果出现问题,可能不是阅读器或阅读器界面,这就是我的意思。
-
您可能正在尝试替换存储在 ROM 中的密钥。通常,您只需将新密钥放在 ID 较低的位置之一...我试图回答,但如果不能引用标准,我不会...