【问题标题】:ECDH with key in Android Key StoreECDH 与 Android Key Store 中的密钥
【发布时间】:2018-08-21 14:08:15
【问题描述】:

我正在开发一个生成 EC 不对称密钥的 Android 应用程序。当我的应用程序连接到设备时,它们会交换他们的公钥。然后他们使用 ECDH 建立一个共享秘密。然后使用此共享密钥来派生 AES 会话密钥。这一切都很好。

我现在正在处理非对称密钥的存储。我想把它放在 Android KeyStore 中,但我不知道如何进行 ECDH 操作。密钥库中的密钥可用于签名、解密或加密,但我看不到进行 ECDH 操作的可能性。有可能吗?

在浏览 SO 时,我看到 this discussion 说这是不可能的。如果是这种情况,我该如何“保护”我的非对称密钥?

谢谢

【问题讨论】:

  • 嗨,在我的一个应用程序中,我想像你一样执行无缝步骤,但我找不到好的加密库或代码,我想在共享秘密之前执行一些步骤。你有任何代码参考吗?
  • @Gevaria Purva:你可以试试Conscrypt of Bouncy Castle
  • 它会为我提供证书签名吗?我尝试了很多库,但没有找到好的解决方案。

标签: android cryptography keystore android-keystore ecdh


【解决方案1】:

AndroidKeyStore 目前不支持 ECDH,您可以在此处查看 https://developer.android.com/training/articles/keystore

将密钥对安全地存储到设备中的替代方法是使用由 AndroidKeyStore 管理的加密密钥来加密 EC 私钥。

您可以使用 RSA 或 AES 密钥,具体取决于您的目标版本。见how to securely store encryption keys in android?

【讨论】:

  • 对于大多数应用来说,这不是一个安全的选择。密钥库的目的是拥有一个可信的执行环境并保护密钥免受可能的越狱。如果可能,请使用 RSA ... 直到 Android 正确支持 ECDH。绕过它会导致关键攻击。
  • 埃里克,我刚看到你的消息。我也担心这可能不安全,所以我在这里问了一个问题:stackoverflow.com/questions/54789464/…
猜你喜欢
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多