【问题标题】:How to access RSA private key at start of an app?如何在应用程序启动时访问 RSA 私钥?
【发布时间】:2017-03-07 11:01:17
【问题描述】:

我想在运行之前保存一个RSA 对密钥(私钥和公钥),这样我就可以发送我的加密消息(使用公钥),当服务器给我返回结果时,使用私钥对其进行解密。

显然,我希望我的私钥免受任何漏洞(例如暴露)的影响。我不想在运行时生成/存储它(比如使用keystore)。它应该与应用程序包一起存在。

我不想在每次运行我的应用程序时生成 RSA 密钥对,因为我也想将它们放在我的服务器中,并且我想要一种安全的方式来存储它们(there are some ways to extract things.

【问题讨论】:

    标签: android rsa keystore private-key


    【解决方案1】:

    我不建议在您的应用中嵌入 RSA 加密/解密密钥对,因为:

    • 如果密钥被泄露,那么您的系统安全将完全受到影响,您需要向所有用户分发新应用

    • 密文大小受密钥长度限制

    要加密/解密客户端和服务器之间的消息,您只需要使用 TLS 通道 (https)。

    【讨论】:

    • 我想向服务器发送用户/密码以进行身份​​验证。所以不是很长。
    • 如果你只想加密从客户端发送到服务器的数据,那么你只需要服务器的公钥。然后将其包含在您的应用程序中没有安全风险。但我认为使用 https 是一种安全且简单的解决方案,并且允许以两种方式加密通道,没有大小限制
    • 正如你所说,我也这么认为,但我无法将服务器中vb.net 中生成的公钥设置为我的 android 应用程序,反之亦然。 java想要模数和指数的大整数,我无法转换用vb.bet导出的公钥xml
    • 您使用的是什么格式?在您的问题中发布一个示例。 Java 可以从 PEM 文件、二进制 DER 或使用模数和指数加载公钥。当然可以使用 openssl 转换 XML
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2013-07-17
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多