【问题标题】:When should use KeyChain in Android?什么时候应该在 Android 中使用 KeyChain?
【发布时间】:2017-08-30 07:37:13
【问题描述】:
我有一个问题,我应该在什么上下文中使用 KeyChain API。
KeyChain 真的安全吗?
我知道 KeyChain API 允许我安装 PKCS#12 密钥库并获取
用于加密目的的私钥/公钥。
所以,如果有人反编译我的 .apk 并获得 .p12 文件。
他们可以从此文件中提取私钥/公钥并解密我的数据
我希望有人可以为我解释一下。谢谢!
【问题讨论】:
标签:
android
cryptography
keychain
【解决方案1】:
来自documentation
在 Keychain 或 Android Keystore Provider 之间进行选择
如果您需要系统范围的凭据,请使用 KeyChain API。当应用程序通过 KeyChain API 请求使用任何凭据时,用户可以通过系统提供的 UI 选择应用程序可以访问哪些已安装的凭据。 这允许多个应用在征得用户同意的情况下使用同一组凭据。
凭证可用于数字签名、加密、SSL 身份验证或 VPN
您可以通过编程方式安装 p12 文件或让用户直接安装该文件。 p12 文件受密码保护,因此反编译包含嵌入密钥的 APK 将无法直接访问它们