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格式的字符串存储。

相关推荐
一只大侠的侠2 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
早點睡3903 小时前
高级进阶 React Native 鸿蒙跨平台开发:@react-native-community-slider 滑块组件
react native·react.js·harmonyos
一只大侠的侠3 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠3 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠3 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
听麟4 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
前端世界5 小时前
从单设备到多设备协同:鸿蒙分布式计算框架原理与实战解析
华为·harmonyos
一只大侠的侠5 小时前
Flutter开源鸿蒙跨平台训练营 Day12从零开发通用型登录页面
flutter·开源·harmonyos
程序猿阿伟6 小时前
《分布式追踪Span-业务标识融合:端到端业务可观测手册》
分布式
前端不太难6 小时前
HarmonyOS App 工程深水区:从能跑到可控
华为·状态模式·harmonyos