truecrypt加密分区


在2007年,谷歌公司推出了基于Linux系统内核的开源智能手机操作系统——安卓(Android)。经过近八年的发展,安卓系统已经从智能手机领域扩展到了汽车、教育、电视、平板电脑等多个行业。根据Strategy Analytics(SA)的最新报告,2014年智能手机总出货量为13亿台,其中安卓系统的市场占有率达到了81.2%。

尽管安卓设备用户规模庞大,但他们的安全意识却有待提高。年度《消费者报告》指出,有近40%的手机用户未采取适当的安全措施。手机丢失或被窃、用户淘汰旧手机时的数据问题等日益突出,恶意软件也可能利用系统漏洞非法获取用户的个人数据。

为了提高数据存储的安全性,谷歌从安卓3.0版本开始提供了可选的磁盘加密解决方案,但因其加密性能等原因并未被广泛采用。在安卓6.0版本中,谷歌引入了更高级别的全盘加密要求。这项新要求旨在增强安卓设备的安全性,通过全盘加密技术(Full Disk Encryption,FDE)提供离线数据保护。

全盘加密技术属于动态加密的一种,安卓的全盘加密基于Linux系统的设备映射框架dmcrypt实现,对用户数据分区的透明加密存储。当启用全盘加密功能后,所有写入磁盘的内容会在提交写入之前自动加密,而从磁盘读取的数据则会在交给应用程序前自动解密。

在安卓设备中,由于“/system”目录是只读的,不能存储用户个人数据,而数据分区(data)和T-Flash卡存储了大量可读写的用户数据,因此谷歌提出的全盘加密主要针对这两部分进行。应用程序在读取或写入文件时,会调用操作系统提供的接口,操作系统则会调用磁盘加密模块完成数据的加密与解密过程。

从安卓3.0到6.0,谷歌不断改进其全盘加密技术,提高加密强度和性能。在安卓5.0中,谷歌引入了硬件关联和可信执行环境(Trusted Execution Environment,TEE)签名,以提高主密钥的安全性。可信执行环境是智能手机CPU中的一块安全区域,能够确保隐秘数据在独立、可信赖的环境中存储、处理并受到保护。

安卓的全盘加密使用AES-CBC加密算法,每个数据分区扇区都被分别加密,其中AES密钥的安全性至关重要。用于加密磁盘的主密钥是随机生成的,由锁屏密码或PIN码保护。在安卓磁盘加密中,主密钥经过加密后保存在元数据分区中。

对于不同版本的安卓系统,其全盘加密的实现方式和安全性也有所不同。从安卓3.0到4.3,使用crypto footer结构保存加密参数,而在4.4中,谷歌用Scrypt替换了原有的PDE2算法,大大提高了加密难度。在安卓5.0中,引入了TEE签名和硬件关联,使得主密钥能够抵抗离线攻击。到了安卓6.0,谷歌将全盘加密作为要求而非建议,对内存容量、锁屏支持和AES加密性能做出了明确规定,这一举措使得对安卓设备的取证变得更加困难。

随着安卓系统的不断发展,谷歌在隐私保护方面做出了许多努力,通过改进全盘加密技术提高了安卓设备的安全性。对于用户来说,增强自身的安全意识,采取适当的安全措施同样重要。