2

我的问题很简单。我有一个应用程序需要密钥来签署发送到服务器的请求。如果我将它们的密钥存储在钥匙串中,其他应用程序可以访问此密钥吗?如果是的话,我还有什么其他选择可以安全地存储密钥?内部存储是要走的路吗?谢谢你的时间。

(我知道如果密钥存储在设备上,持久的攻击者会得到密钥,但这不是我关心的问题)。

4

1 回答 1

2

您可以安全地存储在特定于您的应用程序的 AndroidKeyStore 中。它保留应用程序特定的证书。它适用于 API >= 18。

用于应用程序私钥的 Android 密钥库 Android 现在在 KeyStore 设施中提供了一个自定义 Java 安全提供程序,称为 Android 密钥库,它允许您生成和保存只有您的应用程序可以看到和使用的私钥。要加载 Android 密钥库,请将“AndroidKeyStore”传递给 KeyStore.getInstance()。

要在 Android Key Store 中管理您的应用程序的私有凭据,请使用 KeyPairGenerator 和 KeyPairGeneratorSpec 生成一个新密钥。首先通过调用 getInstance() 获取 KeyPairGenerator 的实例。然后调用 initialize(),将 KeyPairGeneratorSpec 的实例传递给它,您可以使用 KeyPairGeneratorSpec.Builder 获得它。最后,通过调用 generateKeyPair() 获取您的 KeyPair。

http://developer.android.com/about/versions/android-4.3.html

于 2014-01-23T21:47:29.973 回答