- 原文地址:Double Stuffed Security in Android Oreo
- 原文做者:Gian G Spicuzza
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:一只胖蜗牛
- 校对者:corresponding,SumiMakito
由 Android 安全团队的 Gian G Spicuzza 发表html
Android Oreo 中包含不少安全性提高的更新。几个月以来,咱们讨论了如何加强 Android 平台及应用的安全性: 从提供更安全的获取应用渠道,移除不安全的网络协议,提供更多用户控制符,加固内核,使 Android 更易于更新,直到加倍 Android 安全奖励奖励项目的支出。现在 Oreo 终于正式和你们见面了,让咱们回顾下这其中的改进。前端
Android 早已支持开机验证模式(Verified Boot),旨在防止设备软件被篡改的状况下启动。在 Android Oreo 中,咱们随着 Project Treble 一同运行的验证开机模式(Verified Boot),称之为 Android 验证开机模式2.0(Android Verified Boot 2.0)(AVB)。AVB 有一些使得更新更加容易、安全的功能,例如通用的分区尾部(AVB 中位于文件系统分区尾部的结构)以及回滚保护。回滚保护旨在保护 OS 降级的设备,防止降级到到低版本的系统后被人攻击。为此,设备将经过专用的硬件保存系统版本信息或使用可信执行环境(Trusted Execution Environment, TEE)对数据进行签名。 Pixel 2 和 Pixel 2 XL 自带这种保护,而且咱们建议全部设备制造商将这个功能添加到他们的新设备中。linux
Oreo 还包括新的原始设备制造商锁(OEM Lock)硬件抽象层(HAL)使得设备制造商可以更加灵活的保护设备,不管设备处于锁定、解锁或者可解锁状态。例如,新的 Pixel 设备经过硬件抽象层命令向启动引导程序(bootloader)传递命令。启动引导装载程序会在下次开机分析这些命令并检查安全存储于有重放保护的内存区(Replay Protected Memory Block, RPMB)中对锁更改的信息是否合法。若是你的设备被偷了,这些保护措施旨在保护你的设备被重置,从而保护你的数据安全。新的硬件抽象层(HAL)甚至支持将锁移动到专用的硬件中。android
谈到硬件,咱们添加了防伪硬件支持,例如在每个 Piexl 2 和 Piexl 2 XL 设备中内嵌的安全模块。这种物理芯片能够防止不少软硬件攻击,而且还抵抗物理渗透攻击. 安全模块防止推导设备密码及限制解锁尝试的频率,使得不少攻击因为时间限制而失效。ios
新的 Pixel 设备配有特殊的安全模块,全部搭载Android Oreo 的谷歌移动服务(GMS)的设备也须要实现密钥验证。这提供了一种强验证标识符机制,例如硬件标识符。git
咱们也为企业管理设备添加了新的功能。当配置文件或者公司管理员远程锁定配置文件时,加密密钥会从内存(RAM)中移除.这有助于保护企业数据的安全。github
做为 Project Treble 的一部分,为了使设备厂商能够更简单、低成本地更新,咱们对 Android 的框架也进行了重构。将平台和供应商代码分离的目的也是为了提升安全性,根据最小特权原则,这些硬件抽象层(HALs)运行在本身的沙盒中,只对有权限的驱动设备开放。web
追随着Android Nougat 中媒体堆栈加固,咱们在Android Oreeo 媒体框架中移除了许多直接访问硬件的模块,从而创造了更好的隔离环境。此外,此外咱们启用了全部媒体组件中的控制流完整性(Control Flow Integrity, CFI)保护。这种缺陷能够经过破坏应用的正常控制流,从而利用这种特权执行恶意的活动。 CFI 拥有健全的安全验证机制,不容许随意更改原来编译后二进制文件的控制流程图,也使得这样的攻击难以执行。后端
除了这些架构改变和CFI之外,Android Oreo 还带来了其余平台安全性相关的提高:安全
Android 即时运行应用运行在一个受限制的沙盒中,所以限制了部分权限和功能,例如访问设备内应用列表或者着明文传递数据。虽然是从 Android Oreo 才发布,可是即时运行应用支持在 Android Lollipop 及以上版本的设备上运行。
为了更安全的处理不可信内容,咱们经过将渲染引擎放到另外一个进程中并将它运行在一个独立的资源受限的沙盒中来隔离 WebView。此外,WebView 还支持安全浏览,从而保护使用者浏览含有潜在危险的网站。
最后,咱们针对设备标识作了重大的改变开放给用户更多的控制权,包括:
net.hostname
将为空且 DHCP 客户端也将再也不发送主机名称(hostname)。Build.getSerial() API
而且经过权限对其进行保护。Android Oreo 带来远不止这些改进,还有更多。一如既往,若是您有关于 Android 的反馈或是改进建议。欢迎发送邮件至 security@android.com。
1:Glenn Wilkinson 以及在英国 SensePost 的团队、Célestin Matte、Mathieu Cunche:里昂大学,国立里昂应用科学学院,CITI 实验室,Mathy Vanhoef,KU Leuven
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。