我是Java卡开发的新手。我想知道如何在java卡applet中存储安全密钥值。因为我想使用PKI(公钥基础结构)进行身份验证。它可能吗?如果是,我们如何在Java卡小程序中存储密钥。
答案 0 :(得分:2)
是的,因为javacard支持非对称加密,即RSA。
您可以在创建applet期间使用预定义数组,applet特定安装参数或专有APDU来实例化密钥。然后私钥应存储在RSAPrivateKey
。
如果您的卡支持Global Platform,请查看card specification。它们提供了各种密钥加载和内容加载方式。
答案 1 :(得分:2)
这当然是可能的,你应该做以下事情:
您的Java卡应支持RSA或EC密钥对生成和签名/验证操作。现在大多数卡都有,但可能有一些卡没有非对称协处理器。
此答案假设您创建了一个新密钥对,因为使用较旧的私钥不太安全。如果您要加载现有的私钥,只需拨打RSAPrivateKey
或更快RSAPrivateCrtKey
的所有设置者即可。需要使用Java Card KeyBuilder
实例创建这两个对象。
请注意,这可能需要大量的知识。您可能最好使用像MuscleCard这样的开源解决方案。