关于javacard

时间:2016-01-19 13:27:28

标签: security javacard globalplatform

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

我已经读过我应该更改默认密钥集。我尝试了GPShell,但我无法更换密钥!

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

如何最终确定我的卡以交付用户。任何人都可以告诉我最终确定步骤,以确保我的卡安全吗?

由于

2 个答案:

答案 0 :(得分:4)

更改身份验证密钥:

GPShell JCManager 是不再支持的旧工具。尝试使用较新的工具,例如 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

INITIALIZED SECURED 80 F0 P1 0F |Lc| AID

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

P1 = 80:对于ISD

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

要将applet安装为DEFAULT SELECTED小程序,请在GPPro中使用-default选项和安装命令:

GP -install <PathToYourCapFile> -default

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

您还可以更改卡的ATR,使其难以通过ATR识别您的卡类型。要更改ATR,您可以在全球平台 API中使用SetATRHistBytes()方法。

答案 1 :(得分:3)

无法更改Issuer Security Domains键。除此之外,还有多种安全指南可以保护您的卡,这些指南由全球平台规范描述。意思是:

  • 加载FileData阻止哈希/签名(确保您在卡上加载了您实际想要的内容)
  • 将卡的生命周期更改为已安全
  • 更改小程序的生命周期或以任何其他含义完成个性化过程
  • 更改卡管理器密钥或您的ISD或其他SD
  • 禁用GP加载/删除命令(专有)
  • 禁用卡管理器的选择(专有)

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