[英]Android - Secure storage
我如何在Android设备中存储一个秘密密钥,唯一可能使用密钥,而不是检索它。 例如:我从应用程序向此“安全存储”导入私有/生成RSA密钥对或对称密钥。 现在,NOBODY应该能够检索密钥,甚至是原始应用程序。 (密钥的非秘密部分 - RSA密钥对的公钥 - 但不是对称密钥的一部分 - 仍然应该是可检索的,特别是如果密钥是在安全存储中生成的)
密钥库现在应该充当黑盒子,提供加密数据的输入和解密数据的输出,例如,我提供我想要解密的加密值,并获取解密的值。
如果这是在Android设备的硬件安全芯片中实现的话,这是一个很大的优点,就像智能卡芯片一样,它具有防篡改功能,即使设备被植根和克隆也可以保证密钥的安全。
Android手机的哪些想法,有这样的防篡改芯片? 关于如何使用这种存储的任何想法?
发现了一个类似的问题: Android安全存储,但这不能回答我的问题。
我会回答这个但是有所保留。
https://developer.android.com/training/articles/keystore.html
“密钥材料可能绑定到Android设备的安全硬件(例如,可信执行环境(TEE),安全元素(SE))。 当为密钥启用此功能时,其密钥材料永远不会暴露在安全硬件之外 “。
因此,您为密钥启用了该功能。 然而,
“如果Android操作系统受到攻击或攻击者可以读取设备的内部存储, 攻击者可能可以在Android设备上使用任何应用程序的Android Keystore密钥 ,但不能从设备中提取它们。”
这是因为Android允许使用密钥而没有本质上不安全的秘密。 因此我的预订。
在使用安全芯片回答Android设备时,我会对搜索说。 似乎TEE soc已经存在了一段时间。
秘密:[______________]
找到了在Android上获取安全存储所需的操作:
您需要购买符合ASSD规范(高级安全SD)的Secure MicroSD卡。 这是一个包含安全元素的MicroSD卡,通常是PKI解决方案,您可以在卡上生成私钥,因此无法提取私钥,但可以提取公钥并使用它来加密只有MicroSD卡可以解密。
两个例子是CertGate MicroSD(可作为消费者版本称为“SmartCard-HSM Android”)和一个不再用于消费者版本的是G&D移动安全卡。
这使得它成为一个安全的存储设备,不会被根电话攻击,并且根据定义不能复制,也不可能。 如果你正确点击,唯一的方法是使用公钥强制私钥作为验证。 但是如果你使用RSA-2048,那在技术上也是不可能的。
原因是手机制造商似乎将内置的手机安全元件锁定到制造商认可的应用程序,因此您无法任意使用它。 唯一的方法是以MicroSD卡的形式向手机添加安全元素。
(此答案仅适用于5.0之前的Android版本)
你问的是不可能的。 具有越狱设备的用户可以比您更多地控制设备。 没有地方可以隐藏任何东西,而且永远不会有。 您正在寻找的是“(在) 安全虽然不安全 ”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.