Java me 使用j2me在设备上存储生成的密钥对

Java me 使用j2me在设备上存储生成的密钥对,java-me,bouncycastle,Java Me,Bouncycastle,我正在使用Bouncy Castle生成一个公钥/私钥对,并将其用于加密任务。 安全存储密钥对的最佳方法是什么 我一直无法找到在设备密钥库中存储的方法。存储在txt文件上是行不通的,因为它非常不安全。我可以将它存储在RMS中,但如何从一个有足够动机窥探的人那里获得它呢 数据存储更新: RMS的问题是,如果应用程序保存在mem卡中,那么任何人都可以轻松访问数据存储。请参见我的答案,保存在记录存储中是安全的 每个应用程序都有自己的记录存储,并在应用程序卸载时删除,因为您已经在使用Bouncy Ca

我正在使用Bouncy Castle生成一个公钥/私钥对,并将其用于加密任务。 安全存储密钥对的最佳方法是什么

我一直无法找到在设备密钥库中存储的方法。存储在txt文件上是行不通的,因为它非常不安全。我可以将它存储在RMS中,但如何从一个有足够动机窥探的人那里获得它呢

数据存储更新:
RMS的问题是,如果应用程序保存在mem卡中,那么任何人都可以轻松访问数据存储。

请参见我的答案,保存在记录存储中是安全的


每个应用程序都有自己的记录存储,并在应用程序卸载时删除,因为您已经在使用Bouncy Castle,然后只需实现一个简单的PBE(基于密码的加密)方案,即可对存储的记录进行加密。有关如何实现这一点的示例,请看一看我多年前编写的简单应用程序

如果您查看.record包,您可以看到我对各个记录进行了加密和存储


这种方法的“缺点”是您需要让用户选择一个“密码短语”,并将其作为PBE的一部分使用。我不知道有任何其他方法可以做您想做的事情,并维护存储信息的安全性。任何“隐藏”密钥的尝试都是徒劳和不安全的。

您是否计划将私钥存储在设备上?是的。我还能把它存放在哪里?在这种情况下,你对“安全”的衡量标准是什么?将加密的私钥存储在文件中是否足够安全,而解密密钥在应用程序中是硬编码的?@GregS-实际上考虑过:)但希望有一个“更好的”方式doing@GregS安全,即用户不可能查看/推断解密密钥并使用它手动解密文件。请参阅我的更新。该链接没有显示任何有关记录存储安全的信息。但是,如果不知道记录存储的名称,则无法访问该链接。您可以对数据进行加密,或者将其发送到服务器并存储到其他位置