
回复
在OpenHarmony中,设备认证模块作为安全子系统的子模块,负责设备间可信关系的建立、维护、使用、撤销等全生命周期的管理,实现可信设备间的互信认证和安全会话密钥协商,是搭载OpenHarmony的设备进行可信互联的基础平台能力。
设备认证模块当前提供如下功能:
为实现上述功能,设备认证模块当前包含设备群组管理、设备群组认证和帐号无关点对点认证三个子模块,其部署逻辑如下图:
图 1 子系统架构图
其中,
/base/security/deviceauth
├── frameworks # 设备认证框架层代码
├── hals # 平台相关工具库抽象层
│ ├── inc # 工具库头文件
│ └── src # 工具库源文件
├── interfaces # 对外接口目录
└── services # 设备认证服务层代码
├── common # 公共代码库
├── group_auth # 设备群组认证模块
├── group_manager # 设备群组管理模块
├── module # 认证器模块(包括帐号无关点对点设备认证器)
└── session # 调度及会话管理模块
设备认证组件中,设备群组管理服务负责将不同业务建立的设备间可信关系抽象成一个个可信群组,对外提供统一的接口,包含群组创建、删除、查询等功能;设备群组认证服务基于已经建立过可信关系的设备群组,提供设备可信认证与端到端会话密钥协商功能。
表 1 设备群组管理服务提供的API接口(DeviceGroupManager)功能介绍
接口名 | 描述 |
---|---|
const DeviceGroupManager *GetGmInstance() | 获取设备群组管理的实例。 |
int32_t RegCallback(const char *appId, const DeviceAuthCallback *callback) | 注册业务的监听回调。 |
int32_t CreateGroup(int64_t requestId, const char *appId, const char *createParams) | 创建一个可信设备群组。 |
int32_t DeleteGroup(int64_t requestId, const char *appId, const char *disbandParams) | 删除一个可信设备群组。 |
int32_t AddMemberToGroup(int64_t requestId, const char *appId, const char *addParams) | 添加成员到指定群组ID的可信设备群组。 |
int32_t DeleteMemberFromGroup(int64_t requestId, const char *appId, const char *deleteParams); | 从指定可信设备群组里删除可信成员。 |
int32_t ProcessData(int64_t requestId, const uint8_t *data, uint32_t dataLen) | 处理绑定或者解绑的数据。 |
int32_t GetGroupInfo(const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum) | 查询可信设备群组信息。 |
表 2 设备群组认证模块提供的API接口(GroupAuthManager)功能介绍
接口名 | 描述 |
---|---|
const GroupAuthManager *GetGaInstance() | 获取设备群组认证的实例。 |
int32_t AuthDevice(int64_t authReqId, const char *authParams, const DeviceAuthCallback *gaCallback) | 认证对端是否是可信设备。 |
int32_t ProcessData(int64_t authReqId, const uint8_t *data, uint32_t dataLen,const DeviceAuthCallback *gaCallback) | 处理认证的数据。 |
安全子系统
security_deviceauth