鸿蒙OpenHarmony技术:【设备互信认证】

本文详细介绍了OpenHarmony中的设备互信认证模块,包括其功能、子模块部署逻辑以及API接口。重点讲述了设备群组管理和认证服务,以及账号无关点对点认证中的共享秘密要求。同时,探讨了鸿蒙技术的就业前景和开发者所需技能。
摘要由CSDN通过智能技术生成

简介

在OpenHarmony中,设备互信认证模块作为安全子系统的子模块,负责设备间可信关系的建立、维护、使用、撤销等全生命周期的管理,实现可信设备间的互信认证和安全会话密钥协商,是搭载OpenHarmony的设备进行可信互联的基础平台能力。

设备互信认证模块当前提供如下功能:

  • 设备互信关系管理功能:统一管理设备互信关系的建立、维护、撤销过程;支持各个业务创建的设备互信关系的隔离和可控共享。
  • 设备互信关系认证功能:提供认证设备间互信关系、进行安全会话密钥协商的能力,支持分布式软总线实现互信设备间的组网。

为实现上述功能,设备互信认证模块当前包含设备群组管理、设备群组认证和帐号无关点对点认证三个子模块,其部署逻辑如下图:

图 1 子系统架构图

其中,

  • 设备群组管理服务:统一管理不同业务建立的本设备与其他设备间的互信关系,并对外提供设备互信关系的创建入口 ,完成信任建立后创建帐号无关设备群组,并将信任对象设备添加进群组;OpenHarmony上各业务可独立创建相互隔离的设备间可信关系。
  • 设备群组认证服务:支持已建立可信关系的设备间完成互信关系的认证及会话密钥的协商。
  • 帐号无关点对点设备互信认证:提供设备间基于共享秘密建立一对一互信关系的功能,并支持基于这种互信关系的认证密钥协商。
  • 认证协议库:统一封装不同类型的认证协议,支持多种轻量级以及标准认证协议实现。

共享秘密的使用要求和约束:

业务在设备间建立账号无关点对点信任关系时,需要使用带外共享的秘密信息,该秘密信息在共享方式、长度、复杂度以及时效性上均需符合安全要求。系统会对共享秘密的长度做约束,如不满足,则无法进行账号无关点对点信任关系的建立,规则如下:

协议共享秘密(PIN码)长度
EC-SPEKE>=6bit
DL-SPEKE>=6bit
ISO>=128bit

鸿蒙OpenHarmony技术更新在gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md参考学习。

QQ浏览器截图20240320150855.png

说明

接口说明

设备互信认证组件中,设备群组管理服务负责将不同业务建立的设备间可信关系抽象成一个个可信群组,对外提供统一的接口,包含群组创建、删除、查询等功能;设备群组认证服务基于已经建立过可信关系的设备群组,提供设备可信认证与端到端会话密钥协商功能;同时提供群组无关,基于认证凭据的设备互信认证能力。

表 1 设备群组管理服务提供的API接口(DeviceGroupManager)功能介绍

接口名描述
const DeviceGroupManager *GetGmInstance()获取设备群组管理的实例。
int32_t RegCallback(const char *appId, const DeviceAuthCallback *callback)注册业务的监听回调。
int32_t CreateGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *createParams)创建一个可信设备群组。
int32_t DeleteGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *disbandParams)删除一个可信设备群组。
int32_t AddMemberToGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *addParams)添加成员到指定群组ID的可信设备群组。
int32_t DeleteMemberFromGroup(int32_t osAccountId, 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(int32_t osAccountId, const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum)查询可信设备群组信息。

表 2 设备群组认证模块提供的API接口(GroupAuthManager)功能介绍

接口名描述
const GroupAuthManager *GetGaInstance()获取设备群组认证的实例。
int32_t AuthDevice(int32_t osAccountId, 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)处理认证的数据。

表 3 基于认证凭据的设备互信认证能力相关API接口功能介绍

接口名描述
int32_t StartAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callbak)指定认证凭据,触发设备互信认证。
int32_t ProcessAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callbak)响应认证请求,处理认证数据。
int32_t CancelAuthRequest(int64_t requestId, const char* authParams)取消认证请求。

鸿蒙是程序员未来最大风口

为什么这么说?市场是决定人力需求的,数据说话最管用:

1、鸿蒙其全栈自研,头部大厂商都陆续加入合作开发鸿蒙原生应用——人才需求上涨

2、鸿蒙作为新系统、新技术,而现在市面上技术人才少——高薪招聘开启

3、鸿蒙1+8+N生态,不仅只有应用开发;还有车载、数码、智能家居、家电等——就业范围广

4、纯血鸿蒙,目前没有多少人熟悉。都处于0基础同一起跑线——无行业内卷

开发者最需要什么?岗位多、薪资高、不内卷、行业竞争低。而当下的鸿蒙恰恰符合要求。

那么这么好的鸿蒙岗位,应聘要求都很高吧?其实不然鸿蒙作为新出的独立系统,其源头上大家都处于同一水平线上,一开始的技术要求都不会很高,毕竟面试官也是刚起步学习。招聘要求示例:

从信息看出,几乎应职要求是对标有开发经验的人群。可以说鸿蒙对开发者非常友好,尽管上面没提鸿蒙要求,但是面试都会筛选具有鸿蒙开发技能的人。我们程序员都知道学习开发技术,最先是从语言学起,鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

内容包含:

  • ArkTS
  • 声明式ArkUI
  • 多媒体
  • 通信问题
  • 系统移植
  • 系统裁剪
  • FW层的原理
  • 各种开发调试工具
  • 智能设备开发
  • 分布式开发等等。

这些就是对往后开发者的前景分享,希望大家多多点赞关注喔!

  • 28
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值