我想要存储我的RSA私钥,应用程序在安全地发送到服务器前对其数据进行签名,这样就比从app文件夹复制密钥要难得多。
我知道Java可以用来存储密钥并通过运行时加载它们,但是如果没有签名的jar的密码,如何从KeyStore
加载密钥呢?
例如,我已经将"mykey“键加载到KeyStore中,并签署了App.jar。我想在运行时从KeyStore
自动加载密钥,而不指定密码给KeyStore
,如果请求的应用程序被签名了。
也许,我不太理解KeyStore
的原理。但是任务是对发送到服务器的数据进行签名,并安全地存储密钥。(该应用程序是POS应用程序,因此应该自动加载,而不需要启动时提供任何密码)。
发布于 2014-11-28 19:48:28
正如其他人指出的那样,您不能真正阻止拥有应用程序(因此具有私钥)的人提取私钥。您可以混淆密钥,这可能是合理的,这取决于您想要完成的任务。在这种情况下,您可以将密钥密码隐藏在代码中的各个位置,并使用前面提到的KeyStore。这并不是真正的安全,但它可能对您的目的“足够好”。
分发给最终用户的任何密钥都不能被视为机密。
更重要的是,如果您的服务器信任任何已签名或未签名的客户端代码,则您的服务器可能存在安全问题。与信任客户端相比,您必须找到一种不同的方法来执行您的安全属性。
https://stackoverflow.com/questions/27197699
复制相似问题