matter的Commissioning(入网过程)整体流程、加密方式、通信信息结构

news2024/11/14 18:23:58

在Matter协议中,**控制器负责将新设备加入网络(commissioning)**的整个流程,这一过程包括设备的发现、验证、授权、加入Fabric,以及最终建立数据通信的步骤。配网完成后的数据通信过程同样遵循严格的加密方式,以确保设备之间的通信安全可靠。

1. Commissioning(入网过程)整体流程

Matter控制器负责将新设备加入到Matter网络,这一流程被称为commissioning(配网或入网)。下面是详细的步骤:

1.1. 设备发现
  • 设备发现是Matter网络中的第一步,控制器需要识别网络中新的或待入网的设备。
  • 设备通常通过**mDNS(多播DNS)**服务向网络广播其存在,并包括设备的基本信息,如设备类型、功能等。控制器使用mDNS查询找到这些设备。
  • 新设备处于未加入状态时,也可以显示二维码(或其他形式的凭证),供控制器扫描以开始入网流程。
1.2. 认证与初始配置
  • 发现设备后,控制器需要与设备进行初步的设备认证身份验证。这通常通过设备提供的凭证安全代码来完成(例如二维码中的设备凭证或手动输入的PIN码)。
  • 控制器会验证设备的身份,确保它是一个可信的Matter设备。这一步防止未经授权的设备加入网络。
1.3. 会话建立
  • 设备认证后,控制器会通过**PAKE协议(Password Authenticated Key Exchange,基于密码的认证密钥交换)**与设备建立一个安全的临时会话。
  • 该会话用于确保在设备加入到网络前的通信安全,避免中间人攻击和未经授权的数据截取。
  • PAKE是一种基于双方共享的短密码或认证信息的密钥交换机制,确保双方能够建立一个加密的通信通道。
1.4. 加入Fabric(Fabric Enrollment)
  • 通过安全会话,控制器将设备添加到特定的Fabric(即网络结构)。Fabric是Matter网络中的一个安全隔离域,保证加入的设备只能与该Fabric内的设备安全通信。
  • 控制器为设备分配一个唯一的节点ID,并将设备注册到Fabric中。
  • 在加入Fabric时,控制器还会分发与Fabric相关的配置信息,例如网络配置、Fabric ID、设备角色等。
1.5. 密钥协商和持久化
  • 一旦设备成功加入Fabric,控制器与设备会进行加密密钥的协商,用于后续的安全通信。
  • 这些密钥会被设备持久化存储,用于未来与该Fabric中其他设备的通信。
  • 控制器和设备之间的所有后续通信都将通过这些密钥进行加密。
1.6. Commissioning完成
  • 配网过程完成后,设备将成为该Fabric的一部分,能够与Fabric中的其他设备和控制器进行通信。
  • 设备此时会有一个持久化的安全身份,并可以参与Fabric的正常数据通信。

2. 数据通信流程(配网后的通信)

当设备完成配网后,它会与控制器及其他设备进行日常的数据通信。数据通信的整个流程依赖于Matter协议的安全层。

2.1. 安全会话建立
  • 在设备之间进行数据通信时,Matter首先通过**Session Establishment Protocol(SEP,会话建立协议)**来建立一个加密的通信会话。
  • 在首次通信时,设备会基于共享的密钥或通过之前协商好的密钥生成一个安全会话。
  • 该会话会用来加密数据并验证通信的完整性,防止消息篡改和重放攻击。
2.2. 消息加密
  • 在通信过程中,所有设备之间的数据传输都使用AES-128对称加密。AES是一种高效的对称加密算法,能够保证数据的保密性。
  • Matter协议采用了AES-CCM模式(AES加密结合消息认证码),这意味着每条消息在加密的同时也会生成一个认证码,用于验证消息的完整性。
  • 消息认证码(Message Authentication Code,MAC)确保设备能够检测到数据是否在传输过程中被篡改。
2.3. 公钥加密和认证
  • Matter协议还使用**ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)**进行设备的身份认证。这种机制在设备首次连接或会话重新建立时,确保通信双方的身份是可信的。
  • ECDSA可以在设备上生成数字签名,并由另一方使用预先存储的公钥验证该签名。
2.4. 消息完整性和防重放
  • Matter协议中的每条消息都包含一个消息计数器,用于防止重放攻击。该计数器确保即使攻击者截获了通信数据,也无法重新发送旧的数据包。
  • 每个加密的数据包都需要包括消息认证码和计数器,设备会验证这些信息以确保消息的有效性。
2.5. 长时间通信的密钥更新
  • 对于长时间运行的设备,Matter协议还支持会话密钥更新机制。设备会定期轮换密钥,以防止长时间使用相同密钥导致的安全风险。
  • 这种机制在不中断现有会话的情况下,通过安全的密钥协商过程更新加密密钥。

3. Matter的加密和安全性概述

Matter协议中采用了多层次的加密机制,确保每个通信阶段都高度安全:

  • PAKE协议:用于初次建立安全会话,防止初始通信中的中间人攻击。
  • AES-128对称加密:用于加密数据通信,确保数据的机密性。
  • ECDSA数字签名:用于设备认证,确保通信双方的身份是可信的。
  • 消息认证码(MAC):保证消息的完整性,防止篡改。
  • 消息计数器:防止重放攻击。
  • 密钥轮换机制:用于长时间运行设备的安全性,确保设备密钥可以动态更新。

配网(Commissioning)期间和正常数据通信使用了两种不同的加密机制:

  1. PASE(Password Authenticated Session Establishment)用于配网期间的加密。
  2. CASE(Certificate Authenticated Session Establishment)用于配网完成后的正常数据通信。

详细解释一下:

1. PASE(Password Authenticated Session Establishment)—— 配网期间的加密

  • PASE协议用于在配网期间建立初始的安全会话。配网时,设备和控制器之间通过共享的密码(Password)PIN码进行身份验证。
  • 应用场景:PASE适用于设备首次加入Matter网络时(即Commissioning阶段),例如:
    • 控制器扫描设备的二维码或手动输入PIN码,设备和控制器使用该信息进行身份验证。
PASE的工作流程:
  • 密码验证:设备和控制器会通过PAKE协议(基于密码的认证密钥交换协议)验证彼此身份,并建立一个安全的通信信道。
  • 密钥协商:双方通过PAKE协议协商出一个临时的会话密钥,保护配网过程中的数据传输安全。
  • 安全会话:在PASE会话建立后,控制器和设备可以通过加密通道进行进一步的配网操作,比如将设备添加到Fabric、分发配置等。

PASE提供了配网阶段的加密保护,确保即使配网期间传输的数据被截获,未经授权的第三方也无法解密通信内容。

2. CASE(Certificate Authenticated Session Establishment)—— 正常通信中的加密

  • CASE协议用于在设备已经加入Matter网络后,进行日常数据通信时的安全会话建立。
  • 应用场景:CASE适用于设备已经成功加入Fabric后,设备与设备之间、设备与控制器之间的日常通信,例如:
    • 控制设备的开关、读取传感器数据等。
CASE的工作流程:
  • 证书认证:CASE基于设备的数字证书(通常是X.509证书),每个Matter设备在出厂时都有一组设备认证凭证(DAC,Device Attestation Certificate)。设备使用其证书链来验证其身份。
  • 密钥协商:在证书认证通过后,设备与控制器或其他设备通过CASE协议协商会话密钥,使用这些密钥来加密后续的通信。
  • 安全通信:一旦会话密钥建立,设备和控制器之间的通信数据将通过AES-128加密算法加密,确保通信的机密性和完整性。

CASE使用公钥基础设施(PKI)和证书进行身份认证,比PASE更安全且适用于更长期的设备间通信。CASE协议的目标是确保只有经过认证的设备能够在网络中安全通信,并防止中间人攻击。

3. PASE 和 CASE 的比较

特性PASECASE
使用场景配网(Commissioning)阶段正常数据通信阶段
认证方式基于密码/PIN码的身份验证基于证书的身份验证(X.509证书)
密钥交换机制PAKE(基于密码的认证密钥交换)公钥加密和证书认证
加密算法AES-128加密(会话层加密)AES-128加密(会话层加密)
安全级别适用于短期通信,如设备加入网络适用于长期设备间通信,基于PKI的更高安全性

Matter消息的组成部分

2.1. 消息头(Message Header)

消息头包含了用于路由、加密、消息类型等信息,通常位于消息的开头部分,负责定义消息的基本属性。消息头可以进一步分为:

  • 会话层头(Session Layer Header)

    • 会话ID(Session ID):用于识别消息属于哪个安全会话,确保消息是在相同的会话中传输的。
    • 消息计数器(Message Counter):每次发送消息时都会递增,用于防止消息重放攻击。接收方通过检查计数器是否为递增的数字来判断消息是否被重放。
  • 安全层头(Security Layer Header)

    • 加密算法信息:标识使用的加密算法,如AES-128-CCM。
    • 消息认证码(Message Authentication Code, MAC):用于验证消息的完整性,防止数据篡改。
  • 网络层头(Network Layer Header)

    • 消息类型(Message Type):指示消息的类型,如数据请求、响应、命令等。
    • 目标节点ID:标识消息的接收者节点,可以是单播或组播的目标。
    • 源节点ID:标识发送消息的设备节点。
2.2. 加密负载(Encrypted Payload)

这是经过加密的消息负载部分,包含设备之间通信的实际内容。为了确保安全性,负载部分通常通过AES-128加密算法进行加密。负载部分还包括了设备间的应用数据和指令。

负载部分的组成如下:

  • 命令对象(Command Object):通常用于定义设备之间的操作或指令,例如开关灯、读取传感器数据等。
  • 状态响应(Status Response):用于设备之间的状态通信,如成功或错误响应。
  • 事件(Event):设备之间的特定事件报告,比如状态变化或警告等。
  • 属性报告(Attribute Reporting):设备报告其某些状态或属性的变化。
2.3. 应用数据(Application Data)

应用层是设备之间具体执行操作的层次,负责承载实际的数据内容。根据应用场景不同,应用数据可能是命令、响应、状态更新等。这部分的数据取决于消息的类型:

  • 指令(Commands):设备操作,如开关设备、调整温度等。
  • 响应(Responses):接收方对命令或请求的响应结果,如成功、失败或者设备状态。
  • 属性(Attributes):设备的状态数据,例如当前温度、亮度等。
2.4. 附加信息(Additional Information)

有时,Matter消息还可以包含其他附加信息,包括:

  • 组播信息(Multicast Information):用于组播通信的消息,如一个设备控制多个设备。
  • 时间戳:消息发送的时间,用于同步设备的时钟。
  • 扩展字段(Extension Fields):允许扩展未来的功能,确保协议的灵活性和可扩展性。

3. Matter消息的加密与安全性

Matter协议对消息的安全性非常重视,每个Matter消息在传输前都经过加密。常见的加密方式包括:

  • AES-128-CCM加密:用于加密消息的负载部分,确保数据的机密性。
  • 消息计数器和消息认证码(MAC):用于防止消息重放和数据篡改。

加密的流程:

  1. 应用层的负载先生成一个消息。
  2. 消息通过安全层加密,形成加密的负载。
  3. 最终形成完整的Matter消息,包括加密头、会话信息、负载等。

4. 不同类型的Matter消息

根据应用场景的不同,Matter消息可以有不同的类型:

  • 命令消息(Command Message):用于控制设备操作,如开关、调节设备状态等。
  • 状态消息(Status Message):报告设备的当前状态或操作结果。
  • 事件消息(Event Message):用于通知网络中的其他设备某些事件的发生,如传感器数据变化、设备故障等。
  • 属性消息(Attribute Message):设备报告或请求某些属性数据,如温度、湿度、亮度等传感器数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2107948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

冠军品质!凯伦股份又一产品荣获省级制造业单项冠军

近日,唐山凯伦新材料科技有限公司获得河北省工业和信息化厅颁发的“河北省制造业单项冠军”证书,公司生产的“抗流挂聚氨酯防水涂料”获得该项省级荣誉。 据了解,省级制造业单项冠军代表着河北省细分行业最高的发展水平、最强的市场实力&…

HarmonyOS开发实战( Beta5版)Stack组件实现滚动吸顶效果实现案例

介绍 本示例介绍运用Stack组件以构建多层次堆叠的视觉效果。通过绑定Scroll组件的onScroll滚动事件回调函数,精准捕获滚动动作的发生。当滚动时,实时地调节组件的透明度、高度等属性,从而成功实现了嵌套滚动效果、透明度动态变化以及平滑的组…

kubesphere缩短node notready后pod驱逐时长(pod-eviction-timeout无效)

本文在测试k8s高可用时会关闭某个node节点,然后看某些pod节点是否主动漂移到其他node节点,测试确实可以,但是时长为5分钟,这个时间长度项目上是不能接受的,比如尝试缩短这个时长,搜到更多的配置都是pod-evi…

Docker打包镜像

Docker打包镜像 前置工作 1.虚拟机中配置好docker环境,并导入nginx,mysql,jdk的镜像 2.下载docker for windows 用idea打包镜像和创建容器需要这个东西支持 下载安装包后执行,无脑回车即可 3.idea中配置docker连接 完成配置后&…

One-Shot Imitation Learning

发表时间:NIPS2017 论文链接:https://readpaper.com/pdf-annotate/note?pdfId4557560538297540609&noteId2424799047081637376 作者单位:Berkeley AI Research Lab, Work done while at OpenAI Yan Duan† , Marcin Andrychowicz ‡ ,…

上门家政系统小程序开发产品类目分析

在当今数字化时代,上门家政服务系统作为连接用户与家政服务供应商的重要桥梁,正逐步渗透到人们的日常生活中,为繁忙的现代人提供了极大的便利。作为一名程序员,我将从产品类目、技术实现及市场影响等角度,对上门家政系…

AI写的论文查重率高吗?分享6款实测AI论文生成免费网站

在当今学术研究和论文写作领域,AI技术的迅猛发展为研究人员提供了极大的便利。特别是AI论文自动生成助手,它们不仅能够提高写作效率,还能帮助生成高质量的论文内容。以下是六款经过实测且免费的AI论文生成网站推荐: 一、千笔-AIP…

linux离线安装nacos

1、打开 Nacos-GitHub ,点击 Release 可以看到 Nacos 的各版本跟新信息和安装包之类的 点击下载nacos-server-2.4.1.tar.gz,在linux创建nacos文件夹,把下载好的文件上传到nacos文件夹,并通过命令解压:tar -zxvf nacos-server-2.4.…

CUDA统一内存:简化GPU编程的内存管理

CUDA统一内存:简化GPU编程的内存管理 在现代GPU编程中,内存管理一直是开发者面临的一个重要挑战。特别是在使用NVIDIA CUDA进行高性能计算时,如何在CPU和GPU之间高效地传输数据、以及如何管理这些数据的生命周期,都是影响程序性能…

ABAP 调试宏DEFINE

文章目录 调试过程完整程序 调试过程 完整程序 REPORT Z_TEST_DEFINE.TYPES: BEGIN OF GTY_DATA,NAME TYPE STRING,AGE TYPE I,END OF GTY_DATA. DATA: GS_DATA TYPE GTY_DATA,GT_DATA TYPE TABLE OF GTY_DATA. DEFINE D_TEST.GS_DATA-NAME &1.GS_DATA-AGE &2.APPE…

Linux基础网络编程-Socket通信

本文使用C语言,在Centos实现Socket两种通信类型(TCP和UDP) 文章目录 一、安装gcc二、使用TCP协议,实现Socket(SOCKE_STREAM)流式通信1. 编写TCP_server.c函数和参数解释 2.编写TCP_client.c函数和参数解释 3. 编译并运行上述两个文件3.1 编译3.2 运行(启…

TVS汽车级 二极管SZESD9B5.0ST5G你了解多少?专为汽车电子系统设计的瞬态电压抑制二极管

SZESD9B5.0ST5G功能特性分析: SZESD9B5.0ST5G用于保护电压敏感型ESD组件。优异的关断能力,低泄漏,快速响应时间为以下设计提供一流的 ESD 保护。由于体积小,适合在手机、MP3播放器、数码相机和许多其他便携式设备板空间非常宝贵的…

2024高教社杯数学建模竞赛解题思路

高教社杯数学建模竞赛解题思路:独家出版,思路解析模型代码结果可视化。 A题思路及程序链接:https://mbd.pub/o/bread/ZpqblJZs B题思路及程序链接:https://mbd.pub/o/bread/ZpqblJZx D题思路及程序链接:https://mbd.pu…

制造业中工艺路线(工序)与产线(工作中心)关系

一.工艺路线与生产线是数字孪生中的虚实关系: 1.工艺路线为虚,生产线体为实; 2.工艺路线指导生产线的生产组织,生产线承载工艺路线的能力,把虚拟的生产信息流变成真实的产流。 二.工艺路线与生产线是数字孪生中互为“…

nginx中如何设置gzip

前言 Nginx通过配置gzip压缩可以提升网站整体速度 Nginx的gzip功能是用于压缩HTTP响应内容的功能。当启用gzip时,在发送给客户端之前,Nginx会将响应内容压缩以减小其大小。这样可以减少数据传输的带宽消耗和响应时间,提高网站的性能和速度。…

2024 数学建模高教社杯 国赛(C题)| 农作物的种植策略 | 建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用等多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍,我们出发…

2024 年高教社杯全国大学生数学建模竞赛题目-A 题 “板凳龙” 闹元宵

“板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条, 多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾 相随盘旋,整体呈圆盘状。一…

干货分享|分享一款免费开源的动态壁纸软件 Lively Wallpaper

1.软件特点: 1)这款软件拥有多种主题和风格的动态壁纸供你选择,包括自然风景、抽象艺术、动漫角色等。你可以根据个人喜好选择并自定义动态效果,如旋转、缩放、滚动等,让壁纸与你的电脑使用习惯相得益彰。 2&#xf…

【2024数模国赛赛题思路公开】国赛C题思路丨附可运行代码丨无偿自提

2024年国赛C题解题思路 C 题 农作物的种植策略 根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略,有利…

Word封面对齐技巧

文章目录 前言一、对齐封面1. 点击视图,添加标尺2. 选中文字,右击段落3. 点击制表符,设置制表位位置4. 鼠标点击“:”后面,点击“Tab”键5. 按住“Ctrl”键,选中没对齐的文字,点击“中文板式”,调整宽度6. 最终效果前言 本章使用的软件是WPS2019,简单介绍Word使用中封…