当 iOS 用 ATT 框架重塑广告行业的隐私规则,Android 用分区存储和 Play Integrity 一步步完善安全模型时,
HarmonyOS 5 给出的回答是——星盾(Star Shield)
这不是一组"安全功能"的堆砌,而是一套从芯片到应用的全栈零信任(Zero Trust)安全架构。
本文从硬件可信根、内核隔离、数据安全、应用治理四个层次,拆解星盾的设计逻辑。


一、为什么需要一套全新的安全架构?

在拆解星盾之前,先看看传统移动 OS 的安全模型存在什么结构性问题。

1.1 传统模型的三大顽疾

问题 表现 根因
过度授权 一个手电筒 App 申请读取通讯录权限 权限模型是"全有或全无"——授权了就全部能读
数据滥用 应用读取了相册后,上传到云端分析你的照片 系统无法区分"合理使用"和"滥用"
供应链攻击 恶意应用通过审核后,在用户设备上作恶 审核是一次性的,运行时缺乏持续校验

这三大问题的本质是:传统 OS 信任了不该信任的东西——信任应用会"自觉"不滥用权限,信任开发者提交的代码和实际运行的代码一致,信任第三方库不会夹带私货。

星盾架构的核心理念是:永不信任,始终验证(Never Trust, Always Verify)


二、星盾架构总览:从芯片到应用的四层防线

星盾安全架构分为四个层次。攻击者必须连续突破四层才能造成实质伤害:

┌─────────────────────────────────────┐
│   第四层:应用治理层(审核 + 运行时)       │  ← 应用市场、权限管控
├─────────────────────────────────────┤
│   第三层:数据安全层(加密 + 隔离)         │  ← 文件加密、安全分享
├─────────────────────────────────────┤
│   第二层:内核安全层(微内核 + 隔离)       │  ← 鸿蒙微内核、Capability 模型
├─────────────────────────────────────┤
│   第一层:硬件可信根层(TEE + 芯片级)     │  ← 安全芯片、TEE、生物识别
└─────────────────────────────────────┘

三、第一层:硬件可信根——信任的起点

安全必须有"起点"——也就是一个不可伪造的信任锚点

3.1 可信执行环境(TEE)

华为麒麟 / 昇腾芯片内置了独立的 TEE(Trusted Execution Environment)安全区域,与主操作系统(REE,Rich Execution Environment)物理隔离。

REE(主 OS)     TEE(安全区)
┌──────────┐    ┌──────────┐
│  HarmonyOS │    │  安全服务  │
│  普通应用   │    │  密钥管理  │
│  用户数据   │    │  支付认证  │
│   ...      │    │  生物特征  │
└──────────┘    └──────────┘
     ↑                ↑
  物理隔离 ─────── 只有安全服务能访问
  • TEE 中的代码和内存,主 OS 完全看不到;
  • 指纹、面部数据、支付密钥永远不出 TEE
  • 应用只能通过安全服务 API 调用 TEE 中的功能,无法直接读取原始数据。

3.2 安全启动链

从加电开始,星盾就建立了一条信任链:

BootROM(不可改写)
    ↓ 验证
Bootloader
    ↓ 验证
鸿蒙内核
    ↓ 验证
系统服务
    ↓ 验证
应用签名

每一层在加载下一层之前,先校验其数字签名。如果签名被篡改或来自未认证的源,启动流程立即中断。

这意味着什么?
即使手机丢失,攻击者也无法刷入恶意系统来绕过锁屏密码——因为 BootROM 会拒绝一切未签名的系统镜像。


四、第二层:内核安全——微内核的天然优势

4.1 微内核 vs 宏内核的攻击面

Linux(Android 内核)是宏内核——驱动、文件系统、网络协议栈全在内核态运行。这意味着:

  • 任意一个驱动有漏洞,整个内核就沦陷了;
  • Linux 内核有超过 2000 万行代码,攻击面巨大。

鸿蒙微内核(HarmonyOS 5 自研内核)的设计哲学相反:

维度 宏内核(Linux) 微内核(鸿蒙)
内核态代码量 ~2000 万行 ~数万行(仅 IPC + 调度 + 内存管理)
驱动位置 内核态 用户态(独立进程)
驱动崩溃影响 系统宕机 驱动进程重启,系统不受影响
攻击面 极大 极小
IPC 性能 中等 高(高频优化路径)

4.2 Capability 权限模型

传统 OS(Linux/Android)用的是 DAC(自主访问控制)——进程以用户身份运行,继承了该用户的所有权限。你给一个 App 的"存储权限",它就能读该用户下的所有文件。

鸿蒙微内核用的是 Capability(能力)模型

  • 每个进程持有的不是"我是谁",而是一组精确的能力令牌(如:“读 /data/photos/2025/*.jpg”);
  • 系统内核在每次资源访问时校验令牌;
  • 能力令牌可以细化到单个文件,而非整个目录。

对比
Android:用户授权 → App 持有"存储权限"令牌 → 可遍历整个 /sdcard
鸿蒙:用户选择图片 → 内核生成"读 A.jpg, B.jpg, C.jpg"令牌 → App 只能看这三张

这就是星盾"安全访问机制"的底层实现——不是靠应用自觉,而是内核强制隔离


五、第三层:数据安全——加密是底线,隔离是常态

5.1 文件级加密

HarmonyOS 5 的文件系统(EROFS 增强版)支持 文件级加密(FBE, File-Based Encryption)

  • 不同应用的数据用不同的密钥加密;
  • 应用 A 的密钥对应用 B 完全不可见;
  • 锁屏状态下,加密密钥被锁在 TEE 中,即使手机在别人手里也无法读取。

5.2 加密文件分享

星盾提供了一种系统级的加密文件分享能力

  • 发送方选择文件 → 选择"加密分享" → 指定接收人(基于华为账号);
  • 文件使用接收人的公钥加密,只有接收人设备上的私钥能解密;
  • 分享不依赖任何第三方 App(微信、邮件等只是传输通道);
  • 即使传输链路被截获,攻击者没有接收人的私钥也无法打开。

技术本质:这是一套基于 PKI(公钥基础设施)的端到端加密方案,密钥管理由 TEE 接管。

5.3 数据最小化访问

这是星盾最具革命性的设计之一。

传统的权限模型是"资源维度的"——“读取通讯录”、“读取相册”。问题是:相册里可能有几百张照片,但 App 只需要其中一张。

星盾的数据最小化访问流程:

用户选择照片 ──→ 系统拦截请求 ──→ 弹出选择器
                              ↓
用户勾选 3 张照片 ──→ 系统生成 Capability 令牌
                              ↓
App 调用读取接口 ←── 内核校验令牌
                              ↓
App 只能看到那 3 张照片

这意味着:

  • App 不知道你的相册里有多少张照片——它只知道你给了它 3 张;
  • App 无法读取不在令牌范围内的文件——这是内核级的强制限制;
  • 即使用户误点"允许",App 也只能拿到用户指定的数据,而非全部。

六、第四层:应用治理——从审核到运行时

6.1 全流程应用管控

星盾的审核不仅是"上架时检查一次"。

开发者提交 → 静态代码扫描 → 动态行为分析 → 签名锁定
                                                ↓
用户下载 → 安装时校验签名 → 运行时持续行为监控
                                    ↓
                              异常行为检测 → 权限降级/拦截

关键设计

  • 签名即身份:每个应用包(HAP)必须用开发者证书签名,系统在安装和运行时反复校验;
  • 运行时行为监控:应用运行时,系统会持续监控其行为是否与声明一致。例如,一个宣称"手电筒"的应用如果突然开始读取通讯录,系统会拦截并弹窗警告。

6.2 九类不合理权限永久禁止

HarmonyOS 5 明确禁止以下九类权限。任何应用,无论大小、无论品牌,都无法申请

序号 权限类型 为什么危险
1 读取已安装应用列表 用于分析用户安装了什么竞品,实施精准广告
2 后台弹窗 诱骗用户点击恶意链接或授权
3 隐蔽拍照/录音 在不通知用户的情况下采集环境信息
4 读取通话记录 隐私泄露
5 读取短信/彩信 验证码被窃取(导致账号被盗)
6 读取通讯录(后台) 通讯录上传至云端做社交图谱
7 读取剪贴板(无交互时) 剪贴板中常含密码、验证码、链接
8 获取设备标识符(不可重置的) 跨应用追踪用户
9 读取系统日志(含其他进程信息) 窃取其他应用的运行时数据

对比 iOS/Android
iOS 和 Android 也在逐步收紧这些权限,但策略是"默认禁止、用户可手动开启"(即给了用户选择权,但也给了用户被诱导的风险)。
鸿蒙的立场是"彻底禁止"——这九类权限在系统源码层面就被移除了,App 连请求的入口都没有。


七、分布式安全:跨设备信任链

鸿蒙的分布式场景带来了一个独特的安全挑战:设备 A 可以调用设备 B 的摄像头,如何保证调用是安全的?

星盾的分布式安全方案:

设备 A(手机)          设备 B(平板)
┌──────────┐            ┌──────────┐
│  应用 X   │──请求──→    │  认证服务  │
│          │←──令牌──    │          │
│          │──调用──→    │  摄像头   │
└──────────┘            └──────────┘
  • 设备之间建立 安全通道(基于 TEE 生成的会话密钥,TLS 1.3 + 国密算法);
  • 每次跨设备调用都携带 一次性能力令牌,用完即废;
  • 令牌绑定了调用方的应用签名、设备 ID、时间戳——无法伪造或重放。

效果:你在手机上用一个 App 调用平板的摄像头拍照时,这个调用经过了和设备本地调用同等级别的安全校验。从安全角度看,远程设备上的资源,和你本地资源一样安全


八、星盾的"零信任"到底体现在哪里?

很多人把零信任(Zero Trust)理解成"每次都要输入密码"——这是误解。在移动 OS 语境下,零信任意味着:

传统模型信任什么 星盾模型验证什么
信任应用声明(“我不会滥用权限”) 验证每一次资源访问
信任开发者(“大厂不会作恶”) 验证每一个 HAP 签名
信任一次审核(“上架时通过就行了”) 运行时持续监控和校验
信任用户判断(“用户点了允许”) 即使允许了,也限制数据范围
信任设备本地(“自己的设备安全”) 跨设备时重新建立信任链

九、与竞品的对比

维度 星盾(鸿蒙 5) Apple 安全架构 Android(Google Play Protect)
硬件信任根 TEE + 安全芯片 Secure Enclave TEE(依赖 SoC 厂商)
内核模型 微内核(Capability) 混合内核(XNU + Sandbox) 宏内核(Linux + SE Linux)
权限模型 Capability(最小化访问) 沙箱 + ATT DAC + 运行时授权
敏感权限 9 类永久禁止 需审核 + 用户确认 用户可手动授予
应用审核 全流程(开发→上架→运行) App Review 自动化 + 人工抽检
分布式安全 原生跨设备信任链 Handoff 加密通道 无系统级方案(依赖 Google Play Services)
端到端加密分享 系统原生 iMessage + FaceTime 无系统原生方案

写在最后

星盾安全架构不是"给 HarmonyOS 加了一些安全功能"。它是一套完整的 零信任安全操作系统模型,其技术含量不亚于方舟引擎或分布式软总线。

三个最值得关注的突破:

  1. Capability 权限模型在移动 OS 上的首次规模化落地——这不是学术论文,而是数亿用户设备上的工程实践;
  2. 数据最小化访问的内核级强制——App 想多拿数据?不是靠弹窗警告,而是内核直接砍掉越界的访问路径;
  3. 分布式安全的原生设计——跨设备安全不是在网络层打补丁,而是在内核的 IPC 层就设计了安全通道。

对开发者而言,星盾意味着:

  • 不要试图申请你不需要的权限——提了也白提,系统直接拒绝;
  • 善用安全访问 API——让用户选数据,比你直接读整个数据库更合规、更受信任;
  • 数据最小化是趋势——iOS 和 Android 迟早会跟进,现在适应星盾的规则,未来在 App Store / Google Play 上也会更顺利。

套用一句安全领域的老话:
“The system is only as secure as its least secure component.”
星盾要让这个"最薄弱的环节",也比攻击者的成本高得多。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐