javacard 的最终安全步骤

final security steps on javacard

我已经编写了我的小程序并安装在我的卡上。我应该怎么做才能防止在我的 java 卡上进一步修改或安装小程序?

我读到我应该更改默认键集。我试过 GPSshell 但我无法更改密钥!

我尝试了 jcManager,但它无法识别我的阅读器(acs 和 REINERSCT)!

我怎样才能完成我的卡交付用户。任何人都可以告诉我确保我的卡安全的最终确定步骤吗?

谢谢

无法更改颁发者安全域密钥。除此之外,全球平台规范还描述了多种安全准则来保护您的卡。意味着一些:

  • 加载文件数据块Hash/Signature(确保你在卡上加载了你真正想要的)
  • 将卡的生命周期更改为安全
  • 更改小程序的生命周期或以任何其他方式完成您的个性化过程
  • 更改卡管理器密钥或您的 ISD 或其他 SD
  • 禁用 GP Load/Delete 命令(专有)
  • 禁止选择卡片管理器(专有)

更改卡片管理器密钥是最重要和标准的。可以使用多样化。 尝试其他工具,例如 GP Pro 或再次检查您的所有操作。

更改身份验证密钥:

GPSShellJCManager 确实是不再支持的旧工具。尝试使用较新的工具,例如 GlobalPlatformPro [Its executable file download link].

使用 GPPro 更改默认身份验证密钥的命令:

gp -lock <PutTheNewKeyHere>

并反转上述操作(将新密钥更改为默认值):

gp -key <TheAboveNewKey> -unlock

描述了更多命令 here

更改小程序和安全域的生命周期:

要更改卡的生命周期,可以使用SET STATUS APDU 命令:

示例:

_OP_READY_ 到 INITIALIZED : 80 F0 P1 07 |Lc| AID

初始化安全80 F0 P1 0F |Lc| AID

P1 = 40:对于应用程序(包括 SSD)

P1 = 80 : 对于 ISD

将您的小程序设为默认选定小程序:

要将您的小程序安装为默认选择的小程序,请在 GPPro 中使用 -default 选项和安装命令:

GP -install <PathToYourCapFile> -default

(如果您更改了卡管理器身份验证密钥,您也需要在命令中添加 -key 选项)。


您还可以更改卡片的ATR,使ATR 难以识别您的卡片类型。要更改 ATR,您可以使用 Global Platform API 中的 SetATRHistBytes() 方法。