# security_deviceauth **Repository Path**: ailu1/security_deviceauth ## Basic Information - **Project Name**: security_deviceauth - **Description**: Security authentication capabilities for device interconnection | 提供设备互连安全认证能力 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 219 - **Created**: 2021-08-11 - **Last Updated**: 2022-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 设备认证 - [简介](#section11660541593) - [目录](#section161941989596) - [说明](#section1312121216216) - [接口说明](#section1551164914237) - [相关仓](#section1371113476307) ## 简介 在OpenHarmony中,设备认证模块作为安全子系统的子模块,负责设备间可信关系的建立、维护、使用、撤销等全生命周期的管理,实现可信设备间的互信认证和安全会话密钥协商,是搭载OpenHarmony的设备进行可信互联的基础平台能力。 设备认证模块当前提供如下功能: - 设备互信关系管理功能:统一管理设备互信关系的建立、维护、撤销过程;支持各个业务创建的设备互信关系的隔离和可控共享。 - 设备互信关系认证功能:提供认证设备间互信关系、进行安全会话密钥协商的能力,支持分布式软总线实现互信设备间的组网。 为实现上述功能,设备认证模块当前包含设备群组管理、设备群组认证和帐号无关点对点认证三个子模块,其部署逻辑如下图: **图 1** 子系统架构图 ![](figures/zh-cn_deviceauth_architecture.png) 其中, - 设备群组管理服务:统一管理不同业务建立的本设备与其他设备间的互信关系,并对外提供设备互信关系的创建入口 ,完成信任建立后创建帐号无关设备群组,并将信任对象设备添加进群组;OpenHarmony上各业务可独立创建相互隔离的设备间可信关系。 - 设备群组认证服务:支持已建立可信关系的设备间完成互信关系的认证及会话密钥的协商。 - 帐号无关点对点设备认证:提供设备间基于共享秘密建立一对一互信关系的功能,并支持基于这种互信关系的认证密钥协商。 ## 目录 ``` /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