Harmony OS 2 安全技术白皮书笔记

Harmony OS 2 安全技术白皮书笔记

1.总览

1.1 技术特征

分布式软总线:提供设备间通信能力,统一发现、连接、数据传输协议与原子任务结构

分布式设备虚拟化:基于软总线提供的连接能力,虚拟化所有硬件终端,在不同设备间分配执行适宜的任务及相关数据,形式上被虚拟化设备可视为整体终端

分布式数据管理:基于软总线,程序数据与用户数据独立管理传输分配,为分布式执行任务提供基础

分布式任务调度:跨设备调度任务

pSpKyRS.png

概述图

1.2 HOS典型技术特征与对应安全要求

分布式软总线连接能力:连接设备能力构建“默认信任”模型,需要对所有设备安全性执行全面防御

硬件资源全局虚拟化:资源调度避免死锁与重复执行

分布式数据管理:数据安全的全局防御

服务化分布式任务调度:任务可在不同设备执行,权限控制与隔离机制复杂化

1.3 安全风险评估

模型:风险=资产*威胁

资产:虚拟池化后的硬件、传感器资源;用户数据;应用独占数据;固件

威胁:设备滥用;用户数据泄漏(篡改?);应用数据泄漏;固件篡改、木马、劫持

1.4 HOS安全概念

”正确的人,通过正确的设备,正确的访问数据”分级安全管理架构。

1.x 问题与概念细节

分布式任务调度:分布式要求具备并行任务调度能力,具备统一的监控管理能力,要能避免任务重复执行

正确的执行任务(在不合理的设备上错误的分配任务造成问题)?在后文章节中找

2. HOS安全理论模型

2.1 理论结构

目标:TCSEC-B2(结构化保护,B2 级安全要求计算机系统中所有对象加标签,而且给设备(如 家庭中枢、控制设备和 IoT 设备)分配安全级别)、EAL5(半结构化设计与测试)

结构:分级安全结构,执行“正确的人,通过正确的设备,正确的访问数据”要求

机密性模型:Bell-Lapadula 模型(BLP,不上读[防窃密],不下写[防泄密])

完整性模型:Biba 模型(不下读,不上写)

基本分类:主体(开发者、应用程序、自然人、设备)、环境(运行 HOS 的 IoT 设备、网络环境)、客体(数据、文件、外设等)

2.2 主体正确模型(正确的人)

开发者:实名认证

消费者:多特征身份认证机制

应用程序:只能通过HOS应用商店安装被签名的程序

服务:原子服务要求身份权限定义

2.3 访问环境正确模型(正确的设备)

设备来源可信:统一定义安全能力,对设备进行检测认证并签名

设备安全等级与数据隐私要求匹配:设备承载的业务与数据同其安全等级保持一致性

设备认证:使用证书进行认证、鉴权、签名

设备系统可信:可信启动、可信运行,对设备全生命周期执行完整性保护

2.4 访问控制模型(正确的使用数据)

对所有数据执行分级,执行生命周期管理,结合用户分级、设备分级、业务分级和数据分级完成访问控制。

pSplbQS.png

数据生命周期概述图

2.x 问题与概念细节

在低计算能力设备上如何执行认证签名计算:在HOS的设备安全要求中,最低标准SL1即要求设备具备硬件验证密钥的能力,不满足该能力的设备不被允许加入HOS信任设备网(在较新的芯片内通常集成了硬件加解密模块,现代加解密算法体系,硬件实现后运算速度较快)

如何保证外围设备发布的证书信息的真实性:证书由服务器保管,包含持有者的名称、公钥与 CA 用私钥生成的数字签名,证书的上传过程有相关身份认证保证信息可信,只要原设备私钥保密,通信就是可信的

3.身份管理与认证(正确的人)

3.1 生物认证

指纹/人脸-TrustZone[iTrustee]-高强度密码算法加密生物信息

3.2 协同认证

同一局域网下已建立可信关系的同等安全等级设备之间可分离认证

(1) 基于用户秘密的分布式认证

认证端与采集端可分离,采集端完成用户秘密数据(数字密码等)采集、脱敏并产生PAKE认证字段,通过在iTrustee环境下生成的公私密钥对签名保证认证传输过程中数据的完整性,通过可信关系建立的可信加密信道保证信息的机密性

(2) 基于可信持有物的分布式认证

蓝牙配件等在完成认证连接后,发放"持续佩戴token",认证端发起认证后,协同认证对配件连接状态、佩戴状态、距离等因素联合判断进行认证。

4.分级系统安全架构(正确的设备)

硬件实现可信根:启动、存储、计算

pSpolwT.png

设备安全能力分级概述图

分级简述:

SL1 为 HarmonyOS 设备中最低的安全等级,这类设备通常运行轻量级 OS 和低端微处理器,业务形态较为单一,不涉及敏感数据的处理;该安全等级要求消除常见的错误,支持软件的完整性保护。若无法满足 SL1 等级的要求,则只能作为配件受 HarmonyOS 设备操控,无法反向操控 HarmonyOS 设备并进行更复杂的业务协同。

SL2 安全等级的 HarmonyOS 设备,可对其数据进行标记并定义访问控制规则,实现自主的访问控制;要求具备基础的抗渗透能力;设备可支持轻量化的可安全隔离环境,用于部署少量必需的安全业务。

SL3 安全等级的 HarmonyOS 设备,具备较为完善的安全保护能力。其操作系统具有较为完善的安全语义,可支持强制访问控制;系统可结构化为关键保护元素和非关键保护元素,其关键保护元素被明确定义的安全策略模型保护;SL3 的设备应具备一定的抗渗透能力,可对抗常见的漏洞利用方法。

SL4 安全等级的 HarmonyOS 设备,可信基应保持足够的精简,具备防篡改的能力,其实现应足够精简和安全,可对关键保护元素的访问控制进行充分的鉴定和仲裁;设备具备相当的抗渗透能力,可抑制绝大多数软件攻击。

SL5 安全等级的 HarmonyOS 设备,为 HarmonyOS 设备中具备最高等级安全防护能力的设备。系统核心软件模块应进行形式化验证;关键硬件模块如可信根、密码计算引擎等应具备防物理攻击能力,可应对实验室级别的攻击。SL5 级别设备应具备高安全单元, 如专用的安全芯片,用于强化设备的启动可信根、存储可信根、运行可信根。

4.1 各级安全等级能力要求

各级安全能力标准默认包含低级要求。

SL1

安全启动:设备启动引导过程中对启动对象(镜像文件)执行数字签名校验

  • 启动流程:芯片内部只读ROM内的片内引导程序(信任根)->芯片内部Fuse空间内存储公钥哈希值->hash校验->公钥校验二级引导程序镜像->...->信任链传递

安全升级:校验系统软件与平台软件升级包签名保证完整性,系统升级前需要向服务器申请授权才可升级

SL2

设备唯一密钥:设备制造阶段写入的唯一密钥,用以完成密钥派生

密钥管理服务:完成密钥全生命周期管理、加解密计算服务、证书管理等

基本能力包括:

  • 限制密钥仅由生成密钥应用访问并使用应用标识信息验证

  • 基于设备证书完成密钥、ID认证(Key/ID Attestation)

栈保护:在程序函数栈局部变量与返回地址等关键信息之间插入字段并备份,在执行前校验备份副本与原字段一致性(针对栈溢出覆盖攻击)

自主访问控制:UNIX权限检查、ACL访问控制列表(基于用户、组、权限实现),由权限主题自主负责授权与回收,权限可传递

轻量化可信执行环境:利用核间隔离机制,选取设备的某个物理核部署可信执行环境

pS9gMHH.png

轻量化TEE概述

SL3

地址空间随机化:对抗ROP编程,修改栈起始位置,降低地址空间预测成功率,此外核心运行对象都需要执行随机化,即全地址空间[64bit]随机化(栈、共享库、mmap、VDSO)

数据不可执行:cpu对数据和代码打标签,禁止执行数据区内容

特权模式访问/执行禁止:使用 PAN(Privileged Access Never)和 PXN (Privileged execute never) 技术保护内核,禁止内核访问用户空间的数据和执行用户空间的代码。

硬件加解密引擎:要求具备硬件加密引擎,实现对称加密、哈希、公钥算法、真随机数生成等常用密码学工具。

SL4

设备刷机及改制行为管控:商用版本软件与研发版本签名分离,商用设备出厂通过芯片硬件固化签名限制其仅可使用商用版本软件,限制特殊版本软件使用,转换权限需授权证书认证。

可信执行环境:iTrustee based on TrustZone,硬件安全执行环境,具备多核多线程,多个安全任务执行与分布式执行能力,支持基础库、数学库(C/POSIX API)、动态库;使用cpu指令SMC转换REE(RichEE)与TEE分别隔离硬件资源以实现硬件隔离。

能力范围:

基础安全加固

  • 全生命周期合法性与完整性---启动、升级

  • 镜像防逆向工程---镜像加密、符号表混淆

  • 部分防渗透能力,支持安全编译(-PIC/-PIE、RELRO)地址随机化、栈保护、数据不可执行、代码段及函数指针只读

安全管理

  • 支持可信应用程序的生命周期管理,包括:可信应用证书签名及吊销、可信应用在安装阶段校验完整性、可信应用生命周期会话管理;

  • 细粒度资源访问与权限控制,避免TEE中不同应用程序间互相渗透;

  • 可信应用访问控制,实现指定的可信应用只能服务于对应特定的应用,基于白名单限制访问过程,并支持检测进程代码段合法性

  • 动态调节TEE占用的系统资源,降低静态占用资源比例(?)

安全服务

  • 可信存储能力:保证数据机密性、完整性,支持设备绑定、应用隔离,实现模式有[安全文件系统存储与 RPMB 存储,前者将密文存储到特定的安全存储分区,后者存储到 eMMC 特定的存储区域,RPMB 支持防删除、防回滚]

  • TEE内加解密服务,满足Global Platform TEE标准,其中密钥生成与计算由硬件芯片实现

  • 可信时间服务,提供可信的基准时间

  • 可信显示与可信输入能力(TUI):显示保护技术,使用时完全阻止REE对该区域的访问与修改

控制流完整性[Clang CFI]:预防ROP/JOP攻击,添加额外检查确认控制流被限制在预定地址范围内,缓解内存中函数地址被覆盖造成的影响

强制访问控制:控制策略在设备启动时加载到内核,不可动态修改,对所有进程操作资源实施强制访问控制,针对具备root权限的本地进程实施基于权能的强制访问控制,阻止恶意进程读、写受保护数据或者攻击其他进程

内核完整性保护:基于ARMv8 处理器提供的虚拟化扩展模式对内核提供保护,防止系统关键寄存器、页表、代码等被篡改从而保护系统运行完整性及防提权;可保护代码与只读静态数据以及部分动态数据并对稀有写数据实施保护

实现的安全保护机制

  • 内核及驱动模块的代码段不可被篡改

  • 内核及驱动模块的只读数据段不可被篡改

  • 内核非代码段保证不可执行

  • 内核关键动态数据不可被篡改

  • 关键系统寄存器设置不可被篡改

SL5

安全元件:可提供芯片级安全执行、存储环境的子系统;用于移动支付、身份ID等核心业务与数据的安全;具备软硬件结合的防护能力

独立安全芯片:用于特定安全业务的部署,可在安全元件之外实现:锁屏密码保护、文件 加密、生物特征保护与识别、密钥管理、可信根、防回退等安全服务

形式化验证与微内核:形式化方法使用数学定理证明系统正确性,验证方法更为全面(TEE内微内核安全通过EAL5+);微内核简化内核功能,提供基础服务,采用模块化设计,释放系统服务能力,使系统具备较好的扩展性,可提升性能降低攻击面

防物理攻击:综合软硬件设备设施防备侧信道、故障注入攻击等;独立安全芯片内设备具备物理屏蔽层与对应检测方法,实现形式为检测异常后防御;公钥密码与对称密码引擎需在算法调度设计中设计防御政策

对于公钥密码,ECC(椭圆密码) 点乘 针对常见的 SPA 和 DPA、Zero Point 等攻击方法, 主要通过引入随机数密钥加掩、坐标随机化、随机加掩、计算过程中间值加掩、关键 参数校验、椭圆曲线在线校验等安全设计,以削减物理攻击风险;RSA 模幂则引入每 bit 密钥多次模乘、运算中间值加掩、随机插入伪密钥、防地址监测、输入参数 CRC 校 验等安全设计,来抵御物理攻击风险。

对于对称密码,关键点在于:全路径均衡掩码防护算法、高安全 Sbox 掩码防护设计、关键中间值 CRC 完整性保 护、时间冗余防故障注入逻辑比较运算

eFUSE:保护系统敏感信息(根密钥等)的机密性与完整性,使用CRC校验值防护注入攻击,并针对物理攻击部署传感器;此外还有针对eFUSE本身的备份与冗余设计

4.2 设备分布式可信互联

分布系统安全->设备互相识别认证->建立信任关系->建立可信通信信道

同一华为帐号的设备连接安全

由华为云中心服务器认证公私钥对,基于公私钥对设备进行认证,协商会话密钥,基于该会话密钥执行对称加密

基于点对点绑定关系的设备连接安全

点对点认证目标为保证被连接方不为攻击者设备,以用户强感知手动参与共享秘密信息来确保可信,建立基本安全通信信道后可交换各自新生成的公私钥并协商会话密钥确保通信安全

4.x 问题与概念细节

设备启动中校验数字签名的实现方式?:从硬件只读可信根开始执行程序验证并传递信任链。

Key Attestation:一种密钥认证技术,用于验证目标密钥是否处在安全硬件保护之下

自主访问控制:拥有客体的主体可以将对象的权限分配给其他用户,并进行管理

强制访问控制:由管理人配置安全属性与相关权限策略,并由OS强制执行安全策略,用户与进程不可修改相关策略

共享库、mmap、vDSO

  • 共享库为程序运行时动态链接的库代码,可多程序共享;

  • mmap是一种内存映射函数,将文件内容映射到虚拟内存,通过对该段内存的读取和修改,实现对文件的读取和修改,普通文件映射到进程地址空间后,进程可以像访问内存的方式对文件进行访问,不需要其他内核态的系统调用(read,write)去操作,该函数可用于实现共享库的加载(共享内存);

  • vDSO (virtual dynamic shared object) 将高频使用的内核映射到每个用户进程可调用的用户态地址空间内的小型共享库(减少系统调用内核次数以提高性能)

PAN,PXN:PAN,Privileged Access Never,要求内核态程序不可直接访问用户态数据,需通过专用调用完成访问;PXN,Privileged execute never要求内核态程序不得执行用户态代码(来自用户空间)

可信执行环境的实现方式: Trusted Execution Environment,TEE, 是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是:在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息。

相对应的, 富执行环境 (Rich Execution Environment,REE) 指的是操作系统运行时的环境中,可以运行如 Android、IOS 等通用的 OS(Opreating System)

TrustZone: TrustZone 在概念上将 SoC 的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界。 TrustZone 将每个物理核虚拟为两个核,一个非安全核(Non-secure Core, NS Core),运行非安全世界的代码;和另一个安全核(Secure Core),运行安全世界的代码。 两个虚拟的核以基于时间片的方式运行,根据需要实时占用物理核,并通过 Monitor Mode 在安全世界和非安全世界之间切换(OS级别) AMBA3 AXI(AMBA3 Advanced eXtensible Interface)系统总线作为 TrustZone 的基础架构设施,提供了安全世界和非安全世界的隔离机制,确保非安全核只能访问非安全世界的系统资源,而安全核能访问所有资源,因此安全世界的资源不会被非安全世界(或普通世界)所访问。

-PIC/-PIE、RELRO:均为编译选项,功能如下

PIC:Position-Independent Code,译为“位置无关代码”。 在计算机系统中,PIC是可以在主存中不同位置执行的目标代码。PIC经常被用在共享库中,这样就能将相同的库代码为每个程序映射到一个位置,不用担心覆盖掉其他程序或共享库。

PIE:Position-Independent Executable,译为“位置无关可执行程序”。 它是完全由位置无关代码所组成的可执行二进制文件,有时可称为PIC Executable。它有一个显著的优点,那就是当程序加载时,所有PIE二进制文件以及它所有的依赖都会加载到虚拟内存空间中的随机位置(随机地址),可以有效提高他人通过绝对地址实施"return-to-libc"安全攻击的难度

GOT:Global Offset Table。全局偏移量表。 它是数据字段的地址存储表。它被可执行程序用于查看全局变量的运行时地址,这些变量的地址在编译阶段是未知的。在进程引导阶段,动态链接器会更新GOT。

RELRO:read only relocation, 设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table)攻击,可部分实现GOT写保护

代码段合法性鉴权?

RPMB:Replay Protected Memory Block,存储器的安全机制,用于存放核心安全信息,写入时对主体鉴权并对信息加密存储,读取时对信息签名以确保完整性。

TA应用(与REE,TEE相关):TA 是 Trusted Application 的缩写,通常运行在 TEE 环境下的应用简称为 TA;CA 是 Client Application 的缩写,通常运行在 REE 环境下的应用简称为 CA。

稀有写 write-rare 保护:稀有写数据指内核里大部分时间是被读取而极少被更改的数据。攻击者即使通过漏洞获取了内核 级别的内存写能力,也无法修改这部分数据。

PAKE安全协议:口令认证密钥交换协议,Password Authenticated Key Exchange Crypto,有多种不同的实现方式。

5.分级访问控制架构“正确的访问数据”

基于BLP获得机密性防护(不上读,不下写),基于Biba获得完整性防护(不下读,不上写),对数据分级关联标签与对应的访问控制权限和安全策略,对高敏感度硬件资源,禁止低安全能力设备发出控制命令。

评估标准:风险等级 = F{机密性,完整性,可用性},考虑对个人/组织/公众的影响

HOS定义的数据生命周期:生成、存储、使用、传输、销毁

5.1 数据生成安全机制

由API接口给出风险等级的设置、查询能力,函数为:setLabel, getLabel, getFlag,风险等级信息最终存储在文件系统的文件元数据内。

风险等级确定及存放由业务APP决定并设置。

设备的安全等级

SL5

SL4

SL3

SL2

SL1

各安全等级设备可支持存储的数据风险等级

S0~S4

S0~S4

S0~S3

S0~S2

S0~S1

5.2 数据存储安全机制

基于AES256算法的XTS模式实现文件级加密功能。

加密方案举例:

(1) 设备锁屏密码配合的数据加密方案(CE/SECE/ECE):此类方案中加密数据的类密钥(Class Keys)被用户的锁屏密码和设备唯一密钥(HUK,Hardware Unique Key)共同保护。

  • 凭据加密方案(CE,Credential Encryption):此类数据在开机后用户首次输入锁屏密码解锁之前不能访问,如图库、联系人、短信、日历、通话记录,重新锁定屏幕后数据仍然可 以被访问。

  • 增强型加密方案(SECE,Sub-Enhanced Credential Encryption):在 CE 方案基础上增强。在设备锁定时,受 SECE 方 案保护的文件不能打开,但可以新建和写入文件,比如支持在后台下载写入邮 件附件。

  • 全面加密方案(ECE,Enhanced Credential Encryption):在 SECE 方案上进一步增强。在设备锁定时,受 ECE 方 案保护的文件不能打开或者新建,直至用户解锁设备。

(2) 与设备锁屏密码无关的加密方案(DE,Device Encrypt): DE 类保护方案中数据是否可访问与设备锁定状态无关,受 DE 方案保护的数据在手机一上电后即可访问,如壁纸、闹钟、铃声等。该类密钥被设备唯一密钥 HUK 保护,与锁屏密码无关。

(3) 完全不加密的方案(NE):数据完全不加密,这种情况极少,比如 OTA 升级包。

与文件加密相关的密钥的明文处理过程(生成、存储、使用与销毁)均在TEE内执行。

HarmonyOS 基于数据的风险等级,对数据提供了不同等级的保护能力:

对于严重级别(S4)数据,HarmonyOS 最高可以提供 ECE 的文件保护能力;

对于高风险级别(S3)数据,HarmonyOS 最高可以提供 SECE 的文件保护能力;

对于中风险级别(S2)以及低风险级别(S1)数据,HarmonyOS 最高可以提供 CE/DE 的 文件保护能力。

5.3 数据使用、传输、销毁安全机制

数据使用中的权限控制形式:自主访问控制(本地/分布式文件系统沙盒)、强制访问控制

数据传输原则:高安全等级数据不 可无感传输至低安全等级设备(需明确授权),传输过程应当匹配设备安全等级与数据等级;该原则在分布式数据库与分布式文件系统中实施

数据传输中的安全等级对应情况:

数据接收方的设备安全级别

SL5

SL4

SL3

SL2

SL1

允许传递的数据风险等级

S0~S4

S0~S4

S0~S3

S0~S2

S0~S1

数据销毁:支持物理覆写提高安全性

5.x 问题与概念细节

AES256算法的XTS模式:相对于ECB,CBC等模式,可实现相同明文加密获得的密文不同与并行加解密,主要用于以数据单元(包括扇区、逻辑磁盘块等)为基础结构的存储设备中静止状态数据的加密(可以避免额外存储密钥,避免密钥泄漏风险,引入更多加密变化)[详解]

PKI:Public Key Infrastructure 公共密钥基础设施

KDF: Key Derivation Function,密钥派生函数,通过加盐散列获取长密钥,并具备防暴力破解能力

KEK:Key Encrypt Key, 当使用密钥或数据加密时,必须用 KEK 密钥“包装”以确保密钥的机密性、完整性和真实性。KEK 也称为“密钥包装密钥”或“密钥传输密钥”。

HUKS:HarmonyOS Universal Keystore Service

文件系统沙盒 怎么保护在内存中的数据不被其他应用读取(使用地址段?)

应用诱导用户作出不合理的权限授权后将高等级安全信息传递到不具备对应安全存储能力的设备中进行针对数据安全的攻击?

如何识别信息的种类?上报的话如何确定申报项与实际安全属性一致性?

6.应用程序与设备安全

pSen7eP.png

在应用开发上架过程中,由HOS平台制定安全要求并执行相关检测。

在应用的开发、上架、运行中均有相关安全策略确保正确的开发者正确的开发并发布应用,此外初次运行时默认不授予敏感权限,需要用户授予授权证书后赋权。

对于设备的开发,提供相应的设备开发安全规范,帮助OEM开发符合体验与相关安全要求的设备。

对于设备OEM,接入生态前需验证相关资质。

对于完成开发的设备,对照安全标准完成检测整改,交由华为生态认证实验室对设备执行安全测试,在达成相关安全等级要求后,由云端对等级签名并下发凭据保存至设备可信区内。

pSeuspQ.png

6.1 HOS开放安全能力

短数据安全存储:对高安全性要求的短小数据执行防护,可提供保存、删除、更新、查询等操作,可提供通用可升级的安全体验,数据存储在TEE并实时由最优加解密算法保密。

文件分级保护:可使用前述文件分级安全机制对应用中的数据安全执行对应等级的防护。

本地人脸识别能力:快速、轻便、隐私安全

跨终端TEE一致性部署:可将可信应用部署到TEE执行环境中确保安全性。