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

    文章

    1499

    浏览量

    61962
  • 鸿蒙
    +关注

    关注

    57

    文章

    2339

    浏览量

    42805
  • OpenHarmony
    +关注

    关注

    25

    文章

    3713

    浏览量

    16254
收藏 人收藏

    评论

    相关推荐

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

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

    【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构

    互联互通互操作,通过这些设备在不同场景中的应用, OpenHarmony推动了不同行业场景的创新和变革 。 目前已有超过300家合作伙伴加入OpenHarmony(开源鸿蒙)生态共建、
    发表于 12-16 15:10

    诚迈科技荣获“开源鸿蒙人才认证授权培训伙伴(优选级)”授牌

    11月27日,OpenHarmony人才生态大会在武汉隆重举行。大会期间,诚迈科技凭借在开源鸿蒙人才生态建设与认证推广领域的卓越贡献,获得“开源鸿蒙人才
    的头像 发表于 11-29 09:28 392次阅读
    诚迈科技荣获“开源<b class='flag-5'>鸿蒙</b>人才<b class='flag-5'>认证</b>授权培训伙伴(优选级)”授牌

    OpenHarmony属性信息怎么修改?触觉智能RK3566鸿蒙开发板来演示

    本文介绍开源鸿蒙OpenHarmony系统下,修改产品属性信息的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新OpenHarmony5.0 Release系统!
    的头像 发表于 11-27 09:31 145次阅读
    <b class='flag-5'>OpenHarmony</b>属性信息怎么修改?触觉智能RK3566<b class='flag-5'>鸿蒙</b>开发板来演示

    如何在开源鸿蒙OpenHarmony开启SELinux模式?RK3566鸿蒙开发板演示

    本文介绍开源鸿蒙OpenHarmony系统下,开启/关闭SELinux权限的方法,触觉智能Purple Pi OH鸿蒙开发板演示,已适配全新OpenHarmony5.0 Release
    的头像 发表于 11-18 19:03 310次阅读
    如何在开源<b class='flag-5'>鸿蒙</b><b class='flag-5'>OpenHarmony</b>开启SELinux模式?RK3566<b class='flag-5'>鸿蒙</b>开发板演示

    全新原生鸿蒙HarmonyOS NEXT发布,书写国产操作系统新篇章!同时,触觉智能发布OpenHarmony5.0固件

    10月22日,华为举行“原生鸿蒙之夜暨华为全场景新品发布会”,正式为用户带来基于OpenHarmony打造的全新原生鸿蒙操作系统HarmonyOS NEXT和华为多个全场景智能设备新品
    的头像 发表于 10-28 13:46 503次阅读
    全新原生<b class='flag-5'>鸿蒙</b>HarmonyOS NEXT发布,书写国产操作系统新篇章!同时,触觉智能发布<b class='flag-5'>OpenHarmony</b>5.0固件

    鸿蒙OpenHarmony南向/北向快速开发教程-迅为RK3568开发板

    P2_OpenHarmony功能框架 P3_OpenHarmony技术特性 P4_OpenHarmony支持设备类型 p5_南向开发和北向
    发表于 07-23 10:44

    深耕鸿蒙生态,国科微旗舰芯片获“鸿蒙4.0”首款认证

    7月9日,国科微宣布旗下超高清视频解码及商显芯片通过OpenHarmony4.0版本兼容性测评,获颁鸿蒙生态产品兼容性证书。其中,国科微GK6323V100C是业界首款通过鸿蒙4.0兼容性测评
    的头像 发表于 07-10 13:10 461次阅读
    深耕<b class='flag-5'>鸿蒙</b>生态,国科微旗舰芯片获“<b class='flag-5'>鸿蒙</b>4.0”首款<b class='flag-5'>认证</b>

    如何在Openharmony中实现USB复合设备

    如何让Openharmony设备HDC接口(OTG接口)作为一个复合设备,实现HDC(HDC:鸿蒙设备连接器) + CDC ACM(USB
    的头像 发表于 06-13 15:03 1604次阅读
    如何在<b class='flag-5'>Openharmony</b>中实现USB复合<b class='flag-5'>设备</b>

    【开源鸿蒙】下载OpenHarmony 4.1 Release源代码

    本文介绍了如何下载开源鸿蒙OpenHarmony)操作系统 4.1 Release版本的源代码,该方法同样可以用于下载OpenHarmony最新开发版本(master分支)或者4.0 Release、3.2 Release等发
    的头像 发表于 04-27 23:16 904次阅读
    【开源<b class='flag-5'>鸿蒙</b>】下载<b class='flag-5'>OpenHarmony</b> 4.1 Release源代码

    HarmonyOS Connecti鸿蒙智联设备认证|介绍

    一,合规性检查符合国家法律、行业合规、产品基础质量遵从性要求。二,产品技术测试符合鸿蒙智联生态技术特征要求。1,硬件规格2,极简连接测试3,万能卡片测试4,极简交互测试5,授权校验测试6,硬件互助
    的头像 发表于 04-11 16:50 618次阅读
    HarmonyOS Connecti<b class='flag-5'>鸿蒙</b>智联<b class='flag-5'>设备</b><b class='flag-5'>认证</b>|介绍

    鸿蒙这么大声势,为何迟迟看不见岗位?最新数据来了

    联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了ArkTS语言、ArkUI声明式UI开发、Stage模型入门、OpenHarmony多媒体技术
    发表于 02-29 20:53

    鸿蒙不再兼容安卓,那么鸿蒙开发者是否会大增?

    华为的纯血版鸿蒙已出现。紧接着各大厂商都纷纷加入原生应用开发当中,其中包括支付宝、京东、美团等一线大厂,200 多应用厂商正在加速开发鸿蒙原生应用。鸿蒙生态设备数量仅历时 5 个月即从
    发表于 01-31 22:17

    鸿蒙OS4.0兼容性测试

    背景 OpenHarmony兼容性测评主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求,确保运行在OpenHar
    发表于 01-17 20:38

    鸿蒙开发OpenHarmony组件复用案例

    ) } }, item => item) } } } 本文主要是对鸿蒙开发基础当中的OpenHarmony技术组件复用示例, 更多鸿蒙开发
    发表于 01-15 17:37