完整的设备加密是否可以保护我的数据免受Google和政府的侵害?


13

苹果公司最近拒绝在访问加密用户数据方面遵守法律法规,从而在技术界引起了轰动。他们的声明是他们没有解密该数据的技术能力。

作为Android用户,我是否可以使用任何类似的可能性(最好是内置于操作系统中而不是第三方)来获得Google和我的设备制造商的类似保护?我知道我的设置中包含“完整设备加密”,但这会阻止Google等访问它吗?

作为参考,我的设备运行Android Lollipop,并且是OnePlus 2。如果像棉花糖这样的其他版本允许我这样做,那就很好。

Answers:


10

Google不知道您设备的加密密钥是什么。整个过程在您的设备上进行,并且密钥永远不会在任何地方传输。密钥本身也不以明文形式存储在设备上

存储加密密钥

加密的密钥存储在加密元数据中。硬件支持是通过使用受信任的执行环境(TEE)签名功能来实现的。以前,我们使用通过将scrypt应用于用户密码和存储的盐生成的密钥来加密主密钥。为了使密钥具有抵御现成的攻击的能力,我们通过使用存储的TEE密钥对生成的密钥进行签名来扩展此算法。然后,通过再次使用scrypt将生成的签名转换为适当的长度密钥。然后,此密钥用于加密和解密主密钥。

因此,即使有人拥有您的加密主密钥的副本,如果没有设备SoC中的TEE密钥,他们也无法解密它。

因此,除了实现上的缺陷外,完整的设备加密将阻止任何人访问您的数据,除非他们知道/获取您的密码或可以猜出您的密码(例如,通过强行使用它或某种社会工程技术)。在缺少必要的硬件支持的设备上,FDE将尝试使用仅软件方法对密钥进行加密。


@beeshyams这是处理器的功能。ARM的实现称为“ TrustZone”,但是其他体系结构也提供了类似的机制。这个想法是,您可以生成设备密钥,将其存储在TEE只能访问的地方,然后再不将其透露给外界。当您需要加密/解密某些内容时,您可以要求在TEE中运行的代码为您执行此操作,因此密钥仍然是安全的。维基百科上有一篇不错的文章
eldarerathis

1
@eldarerathis我听说,iPhone 6和更高版本甚至可以通过OEM更新获得安全保护,因为密码验证(包括定时延迟/锁定)完全在硬件中实现。我要问的是,Android是否执行类似的操作,或者纯粹是软件锁定-当然可以通过固件更新来绕开。我还要问的是,是否存在带有引导加载程序的基于Android的手机,它们会拒绝更新而无需输入用户指定的密码-这将使绕过软件锁定期变得更加容易。
鲍勃

1
重述的另一种方法是是否存在一种要求允许更新之前进行解密(带有用户密码)的方法。换句话说,是否可以在没有解密密钥的情况下(无需强制擦除用户数据)安装(OEM,已签名)更新?
鲍勃

1
@Bob据我所知,Android不需要解密密码即可执行更新过程,因为它仅加密/userdata分区,而不加密更新实际上要修改的分区(通常为/system/boot)。它几乎与iPhone 5(及更低版本)在同一条船上。
eldarerathis

1
我要补充一点,我不确定每次尝试的一般延迟是否可以通过更新“禁用”,或者Android是否人为地扩展它。Android在密钥生成过程中使用scrypt round,因此在解密密钥时也需要使用scrypt,并且scrypt专门设计为难以加速,以缓解暴力破解。那将保持一致。但是,X次失败尝试后的锁定(或缩放锁定,如果存在)则将通过AFAIK软件实现。
eldarerathis

-1

如果使用密钥的时间过长而无法进行暴力破解,即使攻击者能够使用暴力破解技术,完全的设备加密也可以保护您的设备-假设有多种方法可以使他们这样做。斯诺登说64个字符足够用于真正坚不可摧的加密。因此,可以获得完全的安全性-如果您不介意每次唤醒电话时都输入64个字符的密码。


您是否知道屏幕锁定PIN码长度的限制?考虑相应地重新启动您的答案
beeshyams

是的,如果您检查源代码,则限制为16个字符。
Firelord
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.