JavaCard 存储(秘密)数据

Posted

技术标签:

【中文标题】JavaCard 存储(秘密)数据【英文标题】:JavaCard store (Secret) Data 【发布时间】:2017-07-19 13:24:51 【问题描述】:

设置: 带有 JavaCard 2.2.2 的 NXP SmartCard

我想以秘密方式在智能卡上存储一个封装的密钥部分和一个 pem 文件。 但我想知道是否可以将这种文件或至少将它们的二进制数据存储为字节流。我在一个旧文档中找到了 FileSystem 类,但它似乎在 JavaCard 2.2.2 中消失了。 有没有可能以安全的方式存储数据?

【问题讨论】:

加密并存储在一个普通(持久)字节数组中? 【参考方案1】:

密钥和其他敏感数据应始终存储在 Java Card Key 对象或 PIN 对象中。操作系统可确保此类机密数据的最佳完整性。密钥不应该存储在纯字节数组中。

PEM 只是一种格式。如果它代表一个密钥,则将其存储在Key 对象中;如果它代表证书,则可以将其存储在纯字节数组中。证书数据不敏感。

Java Card 运行时没有文件系统实现;你必须建立自己的。

【讨论】:

谢谢,我会尝试并报告。我必须和我们的架构师谈谈我们将拥有什么样的数据。 对吗,AES Key 最多存储 16 字节或 128 位?问自己应该如何存储 4096 位...创建 32 个键? 您将每个键存储在其对应的对象中。仅对 AES 密钥使用 AESKey。您可能正在寻找 RSAPrivatKey 或 RSAPublicKey

以上是关于JavaCard 存储(秘密)数据的主要内容,如果未能解决你的问题,请参考以下文章

大数据存储的秘密之分区

在 JavaCard 中将字节转换为短字节

.Net 测试项目的用户特定和秘密数据存储在哪里?

JAVACARD减少应用开发风险的建议

在数据库中存储 API 密钥和秘密

OAuth:存储访问令牌和秘密