其他

Pixel的更好、更快、更强

2016-12-01 DevRel 谷歌开发者


文|Google 高级软件工程师 Paul Crowley 和高级软件工程师 Paul Lawrence

如果您的手机落入他人手中,加密可以保护您的数据。全新 Google Pixel 和 Pixel XL 均默认加密,以提供强大的数据保护,而其出色的 I/O 性能和持久的电池续航时间则继续维持出色的用户体验。除了加密之外,Pixel 手机还首次运行 Android Nougat 版本,该版本包含更多安全改进。 

本文介绍 Google Pixel 设备上的加密实现以及它如何改善设备的用户体验、性能和安全性。 



采用基于文件的加密技术的直接启动体验


Android Nougat 中引入的安全功能之一是基于文件的加密。基于文件的加密 (FBE) 是指不同的文件使用不同的密钥进行加密,这些密钥可以独立进行解锁。FBE 还可将数据分成设备加密 (DE) 数据和凭据加密 (CE) 数据。 

直接启动使用基于文件的加密,通过合并解锁和解密屏幕,可在设备重新启动时带来无缝的用户体验。对于用户而言,这意味着在设备启动后可以立即使用闹铃、无障碍设置和电话之类的应用。 



使用 TrustZone® 增强安全性


现代处理器支持一种代码执行模式,即便内核受到破坏,仍可保持安全性。在基于 ARM® 的处理器上,该模式称为 TrustZone。从 Android Nougat 开始,所有磁盘加密密钥在存储时均会使用 TrustZone 软件保管的密钥进行加密。这样便会以两种方式保护加密的数据: 

  • TrustZone 执行验证启动过程。如果 TrustZone 检测到操作系统遭到修改,则不会解密磁盘加密密钥,这有助于保护磁盘加密 (DE) 数据的安全。

  • TrustZone 会为用户凭据猜测设置一个等待期,在连续多次猜测输入之后,该等待期会延长。通过设置 1624 种有效的四点图案和 TrustZone 不断增长的等待期,要尝试所有图案所需的时间将会超过四年。这提高了所有用户(尤其是那些图案、PIN 码或密码较短、更容易猜测的用户)的安全性。



在 Pixel 手机上加密


使用不同的密钥保护不同的文件夹要求采用与全盘加密 (FDE) 截然不同的方法。对于基于 Linux 的系统而言,行业标准的 eCryptFS 乃是自然之选。


然而,eCryptFS 并不能满足我们的性能要求。幸运的是,eCryptFS 的创建者之一 Michael Halcrow 与 ext4 的维护者 Ted Ts'o 密切合作,共同推出适合 ext4 的原生加密技术,而 Android 成为率先采用该技术的平台。ext4 加密性能类似于全盘加密,其表现就像纯软件解决方案一样出色。 

此外,Pixel 手机内联硬件加密引擎,因而有能力以线路速度向闪存写入加密数据。为了利用这一优势,我们修改了 ext4 加密,在将 bio 结构传递到代码块层之前,在 ext 4 驱动程序内部添加了一个指向该结构的密钥引用,从而有效地利用该硬件引擎。(bio 结构是 Linux 内核中代码块 I/O 的基本容器。)随后,我们修改了该内联加密代码块驱动程序,使之将此密钥引用传递给硬件引擎。与 ext4 加密一样,密钥由 Linux 密钥环进行管理。要查看我们的实现方法,请查看 Pixel 内核的源代码。 

尽管这种使用 ext4 和内联加密技术的基于文件的加密实现方法是 Pixel 用户的福利,但实际上,基于文件的加密 (FBE) 在 Android 开放源代码项目 (AOSP) 中便已提供,可直接使用,并且同样具备此文中提到的其他功能。 


推荐阅读:

解读Google开发者大会:你真的了解Android吗?

解读 Google 开发者大会:网络技术面面谈

解读Google开发者大会:白日梦, 深度学习和人工智能

谷歌制造,你准备入手吗?

谷歌制造视频


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存