0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-25 17:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简介

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

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

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

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

图 1 子系统架构图

其中,

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

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

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

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

目录

/base/security/device_auth
├── default_config               # 编译配置文件
├── frameworks                   # 设备互信认证IPC代码
├── interfaces                   # 对外接口目录
├── test                         # 设备互信认证的接口测试用例
├── common_lib                   # C语言公共基础库
├── deps_adapter                 # 依赖组件适配器代码
│   ├── key_management_adapter   # 密钥及算法适配层
│   └── os_adapter               # 系统能力适配层
└── services                     # 设备互信认证服务层代码
    ├── frameworks               # 设备互信认证框架层代码
    ├── data_manager             # 设备互信群组信息管理模块
    ├── identity_manager         # 认证凭据管理模块
    ├── legacy
    │   ├── authenticators       # 认证执行模块
    │   ├── group_auth           # 设备群组认证服务
    │   ├── group_manager        # 设备群组管理服务
    ├── creds_manager            # 凭据管理模块
    ├── mk_agree                 # 设备级主密钥协商
    ├── cred_manager             # 账号凭据插件管理模块
    ├── key_agree_sdk            # 密钥协商sdk
    ├── privacy_enhancement      # 隐私增强模块
    ├── session_manager          # 会话管理模块
    └── protocol                 # 认证协议库

说明

接口说明

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

表 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)[]()[]()取消认证请求。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    2166

    浏览量

    66253
  • 鸿蒙
    +关注

    关注

    60

    文章

    2862

    浏览量

    45364
  • OpenHarmony
    +关注

    关注

    31

    文章

    3927

    浏览量

    20725
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    触觉智能Purple Pi OH首发开源鸿蒙6.0 XTS认证,开源鸿蒙正式开启6.0时代!

    11月28日,触觉智能PurplePiOH开发板通过了开源鸿蒙OpenHarmony6.0ReleaseXTS生态兼容认证,成为了开发板类别首个通过的产品与厂商!(触觉智能PurplePiOH开发板
    的头像 发表于 11-28 18:45 675次阅读
    触觉智能Purple Pi OH首发开源<b class='flag-5'>鸿蒙</b>6.0 XTS<b class='flag-5'>认证</b>,开源<b class='flag-5'>鸿蒙</b>正式开启6.0时代!

    触觉智能RK3588行业主板通过OpenHarmony5.0 XTS认证

    触觉智能作为开源鸿蒙南向硬件厂家,旗下RK3588行业主板IDO-SBC3588(以下简称SBC3588)通过了OpenHarmony5.0XTS认证鸿蒙硬件生态兼容性再获突破!证书
    的头像 发表于 11-24 13:57 376次阅读
    触觉智能RK3588行业主板通过<b class='flag-5'>OpenHarmony</b>5.0 XTS<b class='flag-5'>认证</b>

    触觉智能RK3576开发板通过OpenHarmony5.0 XTS认证

    触觉智能作为开源鸿蒙南向硬件厂家,旗下RK3576开发板及其核心板(模组)PurplePiOH2系列通过了OpenHarmony5.0XTS认证鸿蒙硬件生态兼容性能再次提升!证书如下
    的头像 发表于 10-21 12:48 635次阅读
    触觉智能RK3576开发板通过<b class='flag-5'>OpenHarmony</b>5.0 XTS<b class='flag-5'>认证</b>

    【置顶公告】视美泰开源鸿蒙系列产品业务咨询与商务合作通道正式开启!

    设计。 生态解决方案整合智慧政务、智慧医疗、智慧园区、智慧教育、智慧安平、工业物联网等领域鸿蒙化系统集成与场景落地。 技术授权与联合创新OpenHarmony生态兼容性认证
    发表于 10-20 16:23

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    OpenHarmony开源鸿蒙设备与外部USB设备之间的连接管理、数据收发及设备信息交互,支持对USB
    的头像 发表于 09-30 16:31 1231次阅读
    触觉智能RK3576开发板<b class='flag-5'>OpenHarmony</b>开源<b class='flag-5'>鸿蒙</b>系统USB控制传输功能示例

    触觉智能RK3506开发板通过OpenHarmony 5.1 XTS认证,引领鸿蒙开发新标杆!

    触觉智能作为瑞芯微专业方案商与开源鸿蒙南向硬件厂家,旗下RK3506开发板及其核心板(模组)通过OpenHarmony5.1XTS认证!这一消息犹在行业内引起了广泛关注,标志着触觉智能在鸿蒙
    的头像 发表于 08-14 23:49 1378次阅读
    触觉智能RK3506开发板通过<b class='flag-5'>OpenHarmony</b> 5.1 XTS<b class='flag-5'>认证</b>,引领<b class='flag-5'>鸿蒙</b>开发新标杆!

    开源鸿蒙开发必备!OpenHarmony替换Full SDK全攻略

    本文介绍开源鸿蒙OpenHarmony替换FullSDK的方法,演示设备为触觉智能PurplePiOH鸿蒙开发板获取FullSD
    的头像 发表于 06-06 18:11 655次阅读
    开源<b class='flag-5'>鸿蒙</b>开发必备!<b class='flag-5'>OpenHarmony</b>替换Full SDK全攻略

    触觉智能鸿蒙开发板率先通过OpenHarmony5.0认证(生态产品兼容性证书)

    触觉智能PurplePiOH鸿蒙开发板继4.1版本XTS认证火速出圈后,再次狂飙!成功通过OpenHarmony5.0ReleaseXTS认证,成为首批开放原子基金会生态产品之一。这一
    的头像 发表于 06-06 17:54 1054次阅读
    触觉智能<b class='flag-5'>鸿蒙</b>开发板率先通过<b class='flag-5'>OpenHarmony</b>5.0<b class='flag-5'>认证</b>(生态产品兼容性证书)

    利尔达RedCap模组通过OpenHarmony 生态兼容性测评!

    。此次认证标志着该NR90模组在鸿蒙系统中的技术适配能力获得官方认可,为工业物联网、智能终端等设备快速融入鸿蒙生态提供了关键支持。本次
    的头像 发表于 05-23 17:59 1388次阅读
    利尔达RedCap模组通过<b class='flag-5'>OpenHarmony</b> 生态兼容性测评!

    鸿蒙北向开发OpenHarmony5.0 DevEco Studio开发工具安装与配置

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,支持开源
    的头像 发表于 03-28 18:05 1350次阅读
    <b class='flag-5'>鸿蒙</b>北向开发<b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio开发工具安装与配置

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 1351次阅读
    <b class='flag-5'>鸿蒙</b>北向开发<b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio开发工具安装与配置

    OpenHarmony源码编译后烧录镜像教程,RK3566鸿蒙开发板演示

    本文介绍瑞芯微主板/开发板编译OpenHarmony源码后烧录镜像的教程,触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙O
    的头像 发表于 12-30 10:08 1533次阅读
    <b class='flag-5'>OpenHarmony</b>源码编译后烧录镜像教程,RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    2024 OpenHarmony年度技术分享会来啦,预约直播有好礼~

    联合开源鸿蒙技术专家、老师、开发者为大家带来OpenHarmony的最新技术进展、开发心得以及应用实践,共同推动OpenHarmony生态的
    发表于 12-25 09:10

    OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙开发板演示

    开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全
    的头像 发表于 12-24 11:46 1093次阅读
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?触觉智能RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    鸿蒙原生开源库ViewPool在OpenHarmony社区正式上线

    近日,由伙伴参与共建的鸿蒙原生开源库“ViewPool”在OpenHarmony社区正式上线。这个开发库是基于OpenHarmony技术孵化的成果,充分发挥了平台的
    的头像 发表于 12-20 14:44 853次阅读