OpenHarmony安全基础能力子系统
- 简介
- 系统架构
- 目录
- 约束
- 使用
- 相关仓
简介
安全基础能力子系统包括系统安全、数据安全、应用安全等功能,为OpenHarmony提供有效保护应用和用户数据的能力。
安全基础能力子系统当前开源的功能,包括应用完整性保护、应用权限管理、设备认证、密钥管理服务、数据传输管控。
系统架构
图 1 子系统架构图
对外API:安全子系统的对外API,部分API只针对系统应用开放。
设备互信认证:为保证分布式系统的连接安全,实现用户数据在分布式场景下各个设备之间的安全流转,需要保证设备之间相互正确可信,即设备和设备之间建立过信任关系,并能够在验证信任关系后,搭建安全的连接通道,实现用户数据的安全传输。
HUKS密钥管理:为上层业务和系统应用或业务提供本地密钥全生命周期的管理。包括密钥的生成,密钥的使用,密钥的存储和密钥的销毁 。
数据传输管控:根据OpenHarmony分布式数据分级保护要求,提供设备间数据传输阶段的统一管控策略,将数据风险等级和设备安全等级进行映射,使具有分布式数据管理功能的服务在进行跨设备数据流转时,可基于该统一策略进行管控拦截。
加解密算法库框架:为了屏蔽底层硬件和加解密算法库的差异,向上提供统一的加解密相关接口,需要提供一套加解密算法库框架,屏蔽底层差异性,封装相关算法库,向上提供统一的功能接口。
证书算法库框架:为业务提供系统级的证书及CRL校验、解析、输出能力,以及证书链及CRL链的选择、输出能力。
证书管理:为终端设备上的上层业务和系统应用或业务提供包括CA根证书和业务证书的全生命周期的管理。包括证书的生成,证书的存储,证书的查询读取,和证书的删除等管理能力。
设备安全等级管理:根据OpenHarmony分布式设备分级要求,实现分布式各设备安全等级管理框架,为各服务提供查询本设备和通信对端设备的设备安全等级的查询功能。
目录
/base/security
├── dataclassification # 数据传输管控
├── device_auth # 设备互信认证
├── huks # HUKS密钥管理
├── asset # 关键资产存储
├── certificate_framework # 证书算法库框架
├── crypto_framework # 加解密算法库框架
├── certificate_manager # 证书管理
├── device_security_level # 设备安全等级
约束
- 应用权限管理的约束说明:本期开源包括应用本地权限管理;分布式应用权限管理在本期不开源(使用打桩实现的方式支持上层分布式业务进行联调)。
- 设备认证的约束说明:设备认证包括同帐号设备认证与帐号无关点对点设备认证;当前已开源的是帐号无关点对点认证能力,同帐号设备认证在本期不开源(使用打桩实现的方式支持上层分布式业务进行联调)。
- 应用完整性校验说明:应用完整性校验在OpenHarmony中使用的证书,是专为OpenHarmony生成的,涉及的公钥证书和对应的私钥均预置在OpenHarmony开源代码仓中,为开源社区提供离线签名和校验能力;在商用版本中应替换此公钥证书和对应的私钥。
使用
应用权限管理
OpenHarmony中应用和系统服务均运行在独立的沙箱中,进程空间和程序数据都是相互隔离的,以保护应用数据的安全性;但是运行在独立沙箱中的服务或应用同时需要对外提供一些API以实现所需功能,其他独立沙箱中的应用在跨进程访问这些API时,需要系统提供一种权限管理机制对这些API的访问者进行授权。
应用权限管理提供了权限定义机制,允许系统服务和应用为自己的敏感API定义新的权限,其他应用必须申请此权限才能访问此敏感API;
应用权限管理提供了权限申请机制,允许应用申请权限,这些权限由系统或者其他应用定义,权限申请通过后就能访问这个权限相关的系统或其他应用提供的敏感API;
应用权限管理也为用户提供了一些必需的功能,方便用户查看和管理权限授予情况。
应用完整性校验
OpenHarmony允许应用安装。为了确保应用的完整性和来源可靠,需要对安装的应用进行签名和验签,同时支持运行时校验。
应用开发阶段:开发者完成开发并生成安装包后,需要开发者对安装包进行签名,以证明安装包发布到设备的过程中没有被篡改。OpenHarmony的应用完整性校验模块提供了签名工具、签名证书生成规范,以及签名所需的公钥证书等完整的机制,支撑开发者对应用安装包签名。为了方便开源社区开发者,版本中预置了公钥证书和对应的私钥,为开源社区提供离线签名和校验能力;在商用版本中应替换此公钥证书和对应的私钥。
应用安装阶段:OpenHarmony程序框架子系统负责应用的安装。在接收到应用安装包之后,应用程序框架子系统需要解析安装包的签名数据,然后使用应用完整性校验模块的API对签名进行验证,只有校验成功之后才允许安装此应用。应用完整性校验模块在校验安装包签名数据时,会使用系统预置的公钥证书进行验签。
应用完整性校验模块也提供了运行时完整性校验能力,包含内核态的代码签名校验能力和代码内容完整性度量能力。应用开发阶段开发者可选地对应用的代码进行签名,OpenHarmony程序框架子系统负责在安装时使用应用完整性校验的API对携带代码签名的应用使能代码签名;使能代码签名成功的应用,代码签名机制会在运行时校验其来源、代码所有者和代码完整性,提供运行时应用程序的完整性保护,校验应用来源的合法性。
设备互信认证与HUKS
设备认证的目标是实现归一化的设备认证方案,实现覆盖1+8+N设备的设备绑定/认证方案。通常来讲,设备认证在认证阶段用于支撑软总线,不直接对上层应用提供服务。设备认证的使用主要包括如下内容:
-
统一可信关系建立:支持账号无关设备群组关系的建立并统一维护。业务启动/通过扫码绑定等方式与其他设备建立互信关系后,请求在本地创建帐号无关设备互信群组;业务可以通过API对可信设备群组进行查询
-
统一设备认证:基于已建立的可信设备群组,提供统一的设备群组认证方案,支撑软总线的统一设备发现、连接认证、端到端加密的会话秘钥协商;
-
设备认证用到的相关凭证和密钥协商协议所需的算法,依赖HUKS提供支撑;
数据传输管控
在OpenHarmony中,数据传输管控模块负责为分布式服务提供数据跨设备传输时的管控策略。数据传输管控模块提供了数据传输管控相关的接口定义。
- 数据传输管控接口:为分布式服务提供数据跨设备传输时的管控策略,获取允许发送到对端设备的数据的最高风险等级。
安全问题响应工作组工作制度及运作方式
security
相关仓
安全基础能力子系统
security_dataclassification
security_huks
security_device_auth
security_device_security_level
security_certificate_manager
security_crypto_framework
security_certificate_framework
security_asset