【发布时间】:2018-02-16 04:57:46
【问题描述】:
我正在开发一个 Android 应用程序,我必须在其中使用有效负载加密。对于这个后端,给我一个预先生成的密钥对(RSA 公钥和私钥)用于加密和解密。
到目前为止,我将这 2 个密钥(RSA 公钥和私钥)保存在硬编码的字符串中,但每个人都知道这样做并不安全。
所以在这个过程中,客户端将使用服务器的公钥加密发送请求,服务器将使用自己的私钥解密。并且响应只能由客户端的私钥解密,因为它是由客户端的公钥加密的。
注意 - RSA 公钥和私钥对于我的应用来说是静态的,我想将其放在安全的地方进行管理。
所以主要的问题是我应该把那个私钥放在我的应用程序的什么地方。密钥在我的应用程序中是静态的,因为服务器人员将其分发给移动团队。而且我们不能使用我们自己生成的私钥。
那么,第一次在客户端提供私钥的最佳方式是什么。
编码愉快 :-)
【问题讨论】:
-
不应传输私钥。这有暴露他们的风险,因此他们不再是私人的。
-
@GurV,实际上我们希望通过传输密钥来保证安全,因为密钥传输本身并不安全。
-
@Code-Apprentice,实际上密钥不是由服务器传输的,最初是服务器给我们(客户端),然后我们将它们保持为硬编码。
-
“最初服务器给我们(客户端)”是什么意思?这是如何实现的?
-
是的@Code-Apprentice,服务器给我们密钥对并告诉我们保留这些密钥,您只能使用这些密钥进行加密或解密。
标签: java android encryption android-keystore