7 security android keystore android-keystore android-security
我正在为Android编写应用程序,我必须存储两个密钥,我将使用它来加密/解密某些消息.(我必须存储私钥RSA).我读了:
https://developer.android.com/training/articles/keystore.html#WhichShouldIUse
还有一节标题为:
在Keychain或Android Keystore Provider之间进行选择
但是,我不确定我应该选择哪种方法来获得最安全的解决方案.
请帮我 .
正如页面所说:
如果需要系统范围的凭据,请使用KeyChain API
KeyChain API的目的是使用用户名/密码凭据来获取此应用(以及潜在的其他应用)可以使用的"令牌".KeyChain还用于在后台同步私人信息(如邮件).
但在您的情况下,听起来您只想存储一个私有RSA密钥.在这种情况下,Keystore是一个更好的解决方案.请注意,密钥库仅适用于4.3+设备,这是因为它使用硬件支持的安全存储(如ARM Trustzone和其他安全执行环境)来存储其私钥(如果存在硬件模块).此功能已在Android 4.3中添加.
要使用密钥库,您需要使用公钥生成证书,并使用私钥保存在密钥库中.Keystore使用用户锁屏模式/ pin/etc.(如果存在)加密私钥.请注意,这有时会导致令人恼火的事实,即只要用户没有擦除其证书存储区或删除应用程序(在Android <= 5下),用户就无法再禁用其锁定屏幕,因此请务必删除证书当不再需要钥匙时.密钥库将私钥保存在硬件模块中(如果存在),因此提取私钥或使用私钥加密数据的其他应用程序要困难得多.它仍然不是100%万无一失,因为发现了新的漏洞,root可以绕过(在某种程度上)这个额外的保护层.但它仍然比将私钥保存在文件中更好.
此外,如果你想更深入地了解这一切是如何工作的,那么我建议你阅读本文,详细介绍Android中的Keystore和其他安全机制.
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |