其他应用可以访问钥匙串中的密钥吗?



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

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

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

用于应用私钥的 Android 密钥存储 Android 现在提供自定义 KeyStore 工具中的 Java Security Provider,称为 Android Key 存储,允许您生成和保存私钥,这些私钥可能是 仅由你的应用查看和使用。要加载 Android 密钥存储,请通过 "AndroidKeyStore" to KeyStore.getInstance()。

要在 Android 密钥存储中管理应用的私有凭据, 使用 KeyPairGenerator with KeyPairGeneratorSpec 生成新密钥。 首先通过调用 getInstance() 获取 KeyPairGenerator 的实例。 然后调用 initialize(),给它一个实例 KeyPairGeneratorSpec,您可以使用 KeyPairGeneratorSpec.Builder. 最后,通过调用获取您的 KeyPair 生成密钥对()。

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

最新更新