数百万设备上的安卓磁盘加密能够轻易被暴力破解。如果有人获取了你的安卓手机,那么他们就可能会通过一个友好的Python脚本破解文件系统内容,且无需知道手机密码或PIN码。
技术细节
安卓会利用一个随机生成的128位设备加密密钥即DEK来加密文件系统。安卓通过机主的PIN码或密码来加密DEK,并且跟被加密的文件系统一起存储在设备的闪存芯片中。当你交给安卓正确的PIN码或密码时,它就能解密DEK并且利用密钥来解锁文件系统。
然而,说起来容易做起来难。DEK实际上是通过机主的PIN码或密码以及名为“热键大师密钥块(KeyMaster Key Blob)”的加密数据块来加密的。这个块主要包括一个由“热键大师”项目生成的2048位的RSA密钥组成,而这个项目在设备进程的安全部分运行。“热键大师”创建了RSA密钥,将其存储在块中,并且将块的加密件交给了安卓。
了解安卓和在进程不安全部分运行的移动app十分重要。安卓无法看到“热键大师”的安全世界,因此也无法看到块中的RSA密钥。安卓只能得到加密形式的块,而且只有“热键大师”才能解密。
当输入PIN码或密码时,安卓就会拿走机密块,并将其连同PIN码或密码的scrypt密码传回给进程中安全部分的“热键大师”中。“热键大师”会通过融合到进程中的秘密密钥解密块以获取长RSA密钥。
“热键大师”随后就会秘密通过加密的PIN码或密码和长RSA密钥生成一个RSA签名,并将签名返回给安卓。安卓随后就会通过一系列算法来运行算法,最终解密DEK并解锁设备。
也就是说,所有的一切都取决于“热键大师”的块。这个块包含需要完成解密DEK的长RSA密钥。安卓只有加密块,而且只有用户拥有PIN码或密码,而只有“热键大师”能够解密加密的块。
如果你能够解密这个块,并且提取出RSA密钥,那么离解密文件系统就成功了一半。那么,现在你就可以开始暴力破解PIN或密码来完成解锁。在理想状况下,你应该永远无法拿到未被加密的块,但是话又说回来了……
漏洞
安卓定义了“热键大师”的工作原理,但是却将执行丢给了硬件厂商。美国高通公司为“热键大师”提供了ARM兼容的骁龙系统单晶片,它是数百万电话、平板电脑和其它设备的核心之所在。“热键大师”会在进程的信任区(TrustZone)中运行。操作系统在信任区外运行,而且在理想情况下,无法干扰安全区。特殊功能如加密和指纹扫描器都在受保护的信任区内运行。
安全研究员Gal Beniamini很长一段时间以来都在调查高通的信任区代码,他详细记录了如何从设备中提取“热键大师”的密钥。
高通在信任区中运行一个小型内核以提供QSEE(高通安全之星环境),而且几乎没有app能够在远离安卓的ASEE空间中运行。
Qualy的“热键大师”是一款QSEE app。Beniamini详细阐述了利用安卓内核中的安全漏洞加载你自己的QSEE app的可能性,而且在这个受保护的空间中,利用高通信任区内核中的权限升级漏洞来完全控制整个QSEE空间。所有这些完成之后,你就能够窥探“热键大师”的内部并且提取未加密的块。
有了这个块,你就能够通过暴力破解PIN码或密码来解密被加密的文件系统。但如果没有块的秘密RSA密钥就难办了。
它既是一种安全问题,也是设计缺陷:软件能够访问“热键大师”的重要密钥,因此目标就是绕过这些障碍。恶意app能够启动进程,攻击安卓内核进入QSEE区域,或者一条诡计多端的文本信息能够通过StageFright溜进信任区。或者说,FBI能够将一个定制化的安卓程序装到带有信任区环境的设备中,信任区环境能够提取出“热键大师”密钥,这样文件系统就可被暴力解锁。
Beniamini指出,安卓在所有设备上都使用了同样的全磁盘加密计划。该计划依赖于“热键大师”模块将密钥绑定到设备的硬件中。研究显示高通设备能够绕过这种“绑定”。其它厂商也可能也是这种情况。
漏洞修复了吗?
Beniamini利用安全漏洞链来渗透进“热键大师”,这些漏洞分别于今年1月份和5月份被修复。
如果你运行的是Nexus设备或者从谷歌和高通收到并安装了修复方案,那么在下次权限升级漏洞被发现之前是安全的。没有这些程序缺陷,就无法从用户区跳到内核、QSEE、“热键大师”。
尽管如此,还是有大量未被修复的安卓手持设备,因为需要厂商和移动运营商进行测试、验证并为客户发布更新。只有厂商说明需要修复补丁,人们才会信任这些补丁,而安卓硬件厂商在这方面是出了名的慢动作。这就导致手持设备的操作系统中漏洞未被修复。
多数时候,谷歌会通过谷歌应用商店服务悄悄推出补丁:不必经由硬件制造商就能直接安装修复方案。然而,安卓及其驱动中的问题如被用来破解“热键大师”的漏洞无法通过应用商店服务来修复,而且必须通过来自制造商的更新来修复。
即使修复了这个漏洞,但其影响也不会消失,因为高通信任区运行的方式意味着如果发现另外一个权限升级漏洞,那么就可以用同一种方式利用。
虽然谷歌指出这个问题在最新的安卓版本中已修复但拒绝置评。高通表示已跟Beniamini和谷歌就该问题进行合作。重大的变化将要求获取新的硬件,这会将拥有不安全手机的老客户晾在一边。不过高通相关人员指出,可对现有硬件部署一些措施将攻击发生的频率降低到最少。

