安卓|安卓阵营的安全架构历史:一直被“无视”的核心功能


安卓|安卓阵营的安全架构历史:一直被“无视”的核心功能

文章图片


安卓|安卓阵营的安全架构历史:一直被“无视”的核心功能

文章图片


安卓|安卓阵营的安全架构历史:一直被“无视”的核心功能

文章图片




本文来自:雷峰网leiphone
虽然大家都知道硬件安全很重要 , 但它从来都没有获得过与其重要度匹配的关注度 。 而荣耀在 1 月 10 日发布的 Magic V , 除了新一代骁龙 8 移动平台和折叠屏 , 还重点宣传了很久没有进入公众视野的安全功能 。

荣耀 Magic V 的官方宣传是 “一个保险柜和两把锁” , 搭载荣耀首款独立安全存储芯片 , 拥有独立于安卓操作系统之外的双 TEE(可信执行环境)安全系统 。 其有隐私维修模式并能随时切换 , 可以远程锁定 SIM 卡 , 遭到恶意刷机后也会要求账号密码 , 即便物理破解存储芯片也无法读取个人数据等众多安全特性 。
毫无疑问 , 智能手机就是普通民众能接触到 , 科技安全级别最高的产品 。 在智能手机就能提供极高安全性的今天 , 我们以最有代表性的高通为例 , 一起回顾一下 Android 阵营的安全架构历史 。
ARM 阵营的安全硬件演进
提到 Android , 自然离不开 ARM 指令集和高通 。 前者是移动世界的基石 , 后者是 Android 阵营 SoC 的代名词 。 从高通第一代骁龙 S1 问世至今 , 骁龙品牌走过了十四年 , 无论是骁龙 S1 到 S4 时期 , 还是 “骁龙 8XX” 时期 , 高通骁龙一直都是 Android 旗舰的御用移动平台 。 高通骁龙平台持续强化的安全能力 , 是 Android 生态最重要的安全和隐私基础 。
无论是桌面平台的 TPM 可信平台模块 , 还是移动端的安全芯片 , 一直追求的都是安全三要素:Confidenciality 机密性、Integrity 完整性、Availability 可用性 。 而 ARM 阵营安全硬件近 10 年的演变 , 本身就是一部新功能高速发展和普及的历史 。

“史前” 的 ARM v7 指令集就引入了 Security Extension 概念 , 即 CPU 能够在 “普通世界和安全世界” 间切换 , 两个模式有独立的 MMU 内存管理单元 , 有用于隔离内存 TZASC、用于隔离外设 TZP 和 CCI 总线 , 可以在不增加硬件成本的情况下为提供可信执行环境 。
在 ARM v8.x 时代 , 又先后引进了一系列的安全特性:
PAN 和 UAO(Privileged Execute Never 和 User Access Only) , 一定程度把内核态程序和用户资源分隔开; PA(Pointer Authentication)和 CFI(Control Flow Integrity) , 防止跳转指针被修改 , 保证控制流完整性 , 防止 ROP 攻击; 而下一个里程碑 , 是 ARM v8.4 在安全世界引入的 hypervisor , 软件层面支持多个 TEEOS , 安全级别高的支付业务可以跑在独立的 TEEOS 并于通用 TEEOS 隔离; ARM v8.5 引入 BTI(Branch Target Identifiers)和 MT(Memory Tagging) , 前者限制间接转跳 , 防 JOP 攻击 , 后者能标记内存区域 , 防止溢出和 UAF 漏洞; Arm v9(骁龙 8 Gen 1 这一代)提出了 Arm CCA 的概念 , 引入全新的 “Realm 机密领域” , 生成对 OS 或虚拟机管理程序完全不透明的安全容器化的执行环境 , 保护正在使用的数据与代码 , 并缩短信任链 。高通骁龙的安全能力演进

当年骁龙 845 的元件示意图↑
从指令集往上 , 到达 SoC 这一层 , 高通几乎每代骁龙旗舰都会率先引入最新的安全功能 , 用户安全和隐私的保护措施在以军事竞赛式的速度升级:
2015 年的骁龙 810 引入 SafeSwitch 功能 。 在丢失手机后 , 可以远程锁机并轻松抹掉手机上的用户数据 , 而且 SafeSwitch 先于操作系统启动 , 让 “简单刷机破账号” 成为历史; 2016 年的骁龙 820 引入了 Smart Protect , 后者是首款利用高通 Zeroth 技术的产品 , 具备机器学习功能 。 其基于签名的反恶意软件服务 , 能自动阻止已知恶意软件的运行 , 能实时监测手机的后台并做异常警告 , 最终达到零时差 (Zero-Day) 侦测病毒、恶意软件的效果 , 且能离线运行; 2017 年骁龙 835 内置了 Qualcomm Haven 安全平台 , 包括内容保护、恶意软件检测、防盗、身份验证等 4 大方面 。 此时的 Android 旗舰已经可以让虹膜、人脸等敏感信息存放在 SoC 的 TrustZone 并与系统隔离 。 而与 FIDO 联盟、腾讯等厂商的合作 , 也为指纹和虹膜移动支付铺平了道路; 骁龙 845 则带来了独立安全处理单元 , 高通称之为 “安全岛” 。 这个爆改过的 Arm SC300 , 有自己的 CPU 内核、独立的电源供应和闪存 , 能将图像、指纹识别等用户生物信息、银行卡等金融信息独立存储 , 自带加密引擎 , 能防止篡改和重放攻击; 骁龙 855 是首款达到智能卡级别安全性的移动 SoC , 通过了 Common Criteria EAL-4 + 全球安全认证 , 可以省却 OEM 厂商外挂安全芯片的麻烦 。 其更强的 SPU , 能用于 Android StrongBox 和 Gatekeeper 等系统 , 可以支持离线支付、TPM、电子身份证、加密钱包等功能 , 并开始支持 iSIM 应用 。骁龙 865 首发支持当时 Android 系统最新的安全凭证 API , 并对 ISP、DSP、存储分别做了安全优化 , 即使安装了恶意软件 , 数据也不会被复制到安全区以外 。 而新的高通传感器中枢 , 也能以极低的功耗提供安全防护 。骁龙 888 则为移动端带来了全新的 Type-1 Hypervisor 支持 , 让手机可以启用同一个系统的多个实例 , 在进行数据的保护和隔离的同时 , 能在不同应用和多个操作系统间即时切换 , 还能让 Hypervisor 应用数据完全与主要操作系统内的其他应用隔离 。 另外 , 其也支持 Adobe 的 CAI 数字验证标准 , 能为照片制作加密印记 , 用于验证数字内容的真实性 。全新一代骁龙 8 , 全新的移动安全架构