【问题标题】:How to change java card default key with my own keys?如何用我自己的密钥更改 java 卡的默认密钥?
【发布时间】:2021-07-31 19:08:39
【问题描述】:

我正在尝试将 java 卡默认密钥 (40 41... 4F) 更改为我自己的密钥集。我尝试使用JCManager,但修改密钥的过程返回6A 88,这意味着reference data not found

接下来我尝试使用 GPSShell put_sc_key 进行更改,但返回相同的错误。

什么是正确的 P1P2 字节来更改默认键?

我该如何解决这个问题?

附录 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 较低的位置之一...我试图回答,但如果不能引用标准,我不会...

标签: javacard globalplatform


【解决方案1】:

我发现 pyResMan 在我的情况下很有用。这是一个 python 应用程序,可帮助您轻松列出卡片上的密钥集并添加/修改密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多