OpenHarmony深度解读之分布式软总线:设备认证机制分析

一、概述

为保证设备互联安全性,即保证用户数据在多个终端设备间的安全流转,OpenHarmony提供了可靠的设备认证机制,主要分为设备间信任关系的建立和设备通信时信任关系验证两个阶段。 设备认证提供了IoT主控设备(手机、平板等)与IoT配件设备(如智能家居、智能穿戴等)间建立并验证帐号无关点对点信任关系的能力。具备这种信任关系的设备在通信连接时可搭建安全的连接通道,实现用户数据的端到端加密传输。

二、设备认证机制的实现

  • IoT主控设备的身份标识

IoT主控设备在与配件设备建立点对点信任关系时,会生成椭圆曲线公私钥对作为本设备的身份标识;IoT主控设备上可能存在多种IoT设备互联业务,设备认证组件将针对不同的IoT设备互联业务为主控设备生成不同的身份标识,形成不同业务间的隔离。

  • IoT配件设备的身份标识

IoT配件设备同样会在与主控设备建立点对点信任关系时,生成椭圆曲线公私钥对作为本设备的身份标识;其中私钥不出IoT设备,设备每次恢复出厂设置时,会重置该公私钥对。 上述的身份标识用于IoT主控设备与IoT配件设备间的安全通信,下面将描述基于身份标识的帐号无关点对点信任关系建立与验证的实现。

  • 设备间点对点信任关系的建立与验证

IoT主控设备和IoT配件建立帐号无关点对点信任关系的过程,实际上是相互交换身份标识的过程。 在信任关系建立过程中,用户需要在主控设备上输入配件设备提供的PIN码(或其他形式的共享信息)。典型的PIN码呈现形式为:对于有屏幕的设备,该PIN码动态生成;对于没有屏幕的设备,该PIN码由设备生产厂家预置并打印在设备上;PIN码的格式,可以是一个用户可读的6位数字,也可以是一个二维码。在用户完成PIN码输入后,主控设备和配件设备将调用设备认证服务基于PAKE协议完成认证会话密钥协商,并基于该会话密钥,安全的交换各自身份公钥。 当建立过信任关系的主控设备与配件设备间进行通信时,双方将相互交换身份公钥,并通过检查本地是否存储对端身份信息的方式确认对端与本设备的信任关系。进一步地,基于双方的身份公私钥对,通信对端设备可以基于STS协议进行密钥协商并建立安全通信通道,支撑设备间通信数据的端到端加密传输。 备注:本博客部分内容参考该模块的README文件。

DD一下: 欢迎大家关注公众号<程序猿百晓生>,可以了解到一下知识点。

erlang 复制代码
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

三、设备认证协议的数据包格式分析

  1. 数据包头部格式

各个字段的意义如下: Identifier :协议标识符,占4个字节,默认值为0xBABEFACE,幻数,用来唯一标识该协议数据包头部。 Module :数据包类型。占4个字节,一共有10种类型,用来标识对端的设备处于认证阶段的状态类型。 Seq :数据包序列号。占8个字节,用于通信会话中数据包的有序管理和索引。 Flags :数据包标识。占4个字节,有FLAG_REPLY、AUTH_UNKNOWN、AUTH_INIT三种类型,用来标识通信类型。 DataLen:数据包负载部分的长度,占4个字节。

  1. 数据包负载格式

对于不同的Module类型,数据包负载有不同的格式,这里主要介绍加密的数据包类型:

各个字段的意义: Session_Key_Index :会话密钥索引。占4个字节,用于索引会话密钥,便于查找。 Data:数据的密文形式,解密之后以json格式的字符串存储。

相关推荐
codists27 分钟前
《Operating System Concepts》阅读笔记:p481-p482
操作系统
高铭杰1 小时前
Citus源码(1)分布式表行为测试
数据库·分布式·citus
申耀的科技观察1 小时前
【观察】分布式智能云:破解AI转型困局,打通智能化落地“最后一公里”
人工智能·分布式
李游Leo1 小时前
HarmonyOS 之 @Require 装饰器自学指南
harmonyos
SameX1 小时前
HarmonyOS Next ohpm-repo 数据存储安全与多实例高可用部署
前端·harmonyos
ChinaDragon2 小时前
HarmonyOS:通过(SQLite)关系型数据库实现数据持久化
harmonyos
ChinaDragon2 小时前
HarmonyOS:MVVM模式
harmonyos
今阳2 小时前
鸿蒙开发笔记-14-应用上下文Context
android·华为·harmonyos
澜堇2 小时前
企业级部署zabbix分布式监控系统
分布式·zabbix
山河已无恙3 小时前
SpringBoot + SSE + rabbitMQ 实现服务端分布式广播推送
spring boot·分布式·java-rabbitmq