Matter分析与安全验证

本文作者:杉木@涂鸦智能安全实验室

什么是matter

Matter是一项智能家居的开源标准,由连接标准联盟制定、认证、推广,该标准基于互联网协议(IP),遵循该标准的智能家居设备、移动应用程序和云服务能够进行互联和通信。—wiki提供

Matter产生的背景

Matter的架构

Matter 旨在为智能家居设备构建一个通用的基于 IPv6 的通信协议。该协议定义了将部署在设备上的应用层和不同的链路层,以帮助维护互操作性。下图为Matter的架构;

请添加图片描述
请添加图片描述

Matter标准协议的分层

请添加图片描述

  1. APPlication Laye 应用层:

    设备的高阶业务逻辑。例如,专注于照明的应用程序可能包含处理打开/关闭灯泡及其颜色特征的逻辑。

  2. Data Model Layer 数据模型层:

    数据层对应于有助于支持应用程序功能的数据和元素模型。当有与设备交互的意图时,应用程序对这些数据结构进行操作。

  3. Interaction Model Layer 交互模型层:

    交互模型层定义了一组可以在客户端和服务器设备之间执行的交互。例如,在服务器设备上读取或写入属性将对应于设备上的应用程序行为。这些交互作用于在数据模型层定义的元素。

  4. Action Framing Layer 动作框架层:

    一旦使用交互模型构建了动作,它就会被序列化为规定的打包二进制格式以进行网络传输编码。

  5. **Security Layer 安全性:**然后将编码的操作帧向下发送到安全层以对有效负载进行加密和签名,以确保数据受到数据包发送方和接收方的保护和验证。

  6. **Message Framing + Routing 消息框架和路由:**通过加密和签名的交互,消息层构造具有必需和可选标头字段的有效负载格式;其中指定消息的属性和一些路由信息。

  7. IP Framing + Transport Management IP 成帧和传输管理:

    构建最终有效负载后,将其发送到底层传输协议以进行数据的 IP 管理。

matter使用介绍

前面是关于matter的简单介绍,然后一些介绍和使用详细的说明以及源码,官方和网上其他文章都很多,这里罗列了一些,可以自行阅读学习,这里不在赘述;

matter源码GitHub地址:

https://github.com/project-chip/connectedhomeip

matter组织官网:

Become a Member | The Future of IOT

Specifications Download Request

【Matter】解密Matter协议(一)— 什么是Matter协议?

【Matter】解密Matter协议(二)— 关键概念及特性_物联网布道师的博客-CSDN博客_matter协议

Matter协议特性解析(三) 设备发现,认证和配网_iotthings的博客-CSDN博客_matter协议

matter安全验证

因为网上关于matter的介绍很多,这里主要讲一下matter安全验证使用的安全技术,学习并分析一下;

Matter安全验证流程

Matter安全验证流程分为以下几个步骤:

  1. 设备注册:设备制造商需要向Matter联盟注册其设备以获取唯一的设备ID。注册过程需要提供设备的基本信息和证书,以验证设备的身份和合法性。matter采用基于公钥基础设施 (PKI)的安全模型。

    请添加图片描述

  2. 证书颁发:Matter联盟将为设备颁发证书,包括设备证书和制造商证书。设备证书用于验证设备的身份,制造商证书用于验证制造商的身份。

    1. 设备认证证书 (Device Attestation Certificate, DAC):用途:设备如何证明“我是谁”
    2. 节点操作凭证 (Node Operational Credentials, NOC):用途:我与谁通信?
  3. 密钥交换:设备需要生成一个公钥和私钥对,并将公钥发送给Matter联盟。Matter联盟将使用设备证书加密一个随机数,并将其发送给设备。设备使用私钥解密随机数,生成一个共享密钥。

  4. TLS握手:设备使用共享密钥与Matter联盟建立TLS连接。TLS握手过程中,设备和Matter联盟将互相验证对方的身份,并协商加密和认证算法。

  5. 设备激活:设备使用TLS连接向Matter联盟发送激活请求。Matter联盟将验证设备的证书和共享密钥,并向设备发送激活响应。

  6. 云端注册:设备使用激活响应中的URL向云端注册自己的身份和能力。云端将验证设备的证书和共享密钥,并将设备添加到设备列表中。

  7. **设备通信:**设备在通过前面的认证之后,也是与云端注册过程一致,通过安全的通信方式,如ECDH等进行通信交互;不同的协议中通信流程的细节可能会有所不同。

请添加图片描述

PASE

PASE的来历

PASE(Protocol for Authentication and Key Exchange)是一种用于身份验证和密钥交换的协议。它由 Zigbee Alliance 开发,最初是为 Zigbee 网络设计的,但现在已被广泛应用于其他智能家居平台,包括 Matter。PASE 协议主要用于在设备之间建立安全的通信连接,确保设备之间的通信是安全和可靠的。

PASE 协议使用基于密码的身份验证和密钥交换机制,其设计目标是为了提供高度安全、高度可靠的身份验证和密钥交换,同时保持协议的简洁性和灵活性。PASE 协议利用多种密码技术,包括哈希函数、加密算法和数字签名算法,以确保通信的私密性、完整性和认证。

PASE 协议的实现需要相应的硬件和软件支持,但由于其广泛应用于智能家居领域,许多设备和平台都已经支持了 PASE 协议。在 Matter 标准中,PASE 协议被用于设备之间的身份验证和密钥交换,以确保 Matter 设备之间的通信是安全和可靠的。

PAKE分类

PAKE(Password-Authenticated Key Exchange)是一种基于密码的密钥交换协议,它能够在不依赖预先共享密钥的情况下,在不安全的通信信道上实现安全的密钥交换。根据安全证明的方式和基本原理,PAKE 可以分为以下几类:

  1. 证明基环境(Proof-Based)PAKE:
    该类协议利用密码学的证明技术,在不需预先共享密钥的条件下,通过计算证明来对密码进行验证。其中最著名的证明基 PAKE 协议是 SPEKE(Simple Password Exponential Key Exchange)协议。
  2. 零知识证明(Zero-Knowledge Proof)PAKE:
    该类协议依赖于零知识证明技术,通过在不泄漏密码明文的情况下对密码进行验证。其中最著名的零知识证明 PAKE 协议是 B-SPEKE(Balanced Simple Password Exponential Key Exchange)协议和 SB-SPEKE(Synchronized Balalnced Simple Password Exponential Key Exchange)协议。
  3. 基于密码哈希函数的(Password-Hashing-Based)PAKE:
    该类协议基于哈希函数计算密码,并在计算中使用附加信息来增加熵,以提供更强的安全性。其中最著名的基于密码哈希函数的协议是 SRP(Secure Remote Password)协议和 HB-PBC(Hash-Based Password-Authenticated Key Exchange using Brainpool Curves)协议。
  4. 可证明安全(Provable Secure)PAKE:
    该类协议基于密码学理论证明,能够将安全性证明为一个数学问题,从而实现高度安全的密钥交换。其中最著名的可证明安全的 PAKE 协议是 SPAKE2(Simple Password Authenticated Key Exchange 2)协议和 OPAQUE(Oblivious Password-Authenticated Key Exchange)协议。

这些 PAKE 协议的不同特点和原理,使得它们在不同的应用场景下具有不同的优缺点。因此,在选择合适的 PAKE 协议时,需要考虑应用需求和特点,以便选择最合适的 PAKE 协议。

SPAKE2+

SPAKE2+ 是一个高效且安全的 PAKE(密码认证密钥交换)协议,其基于先前的 SPAKE2 协议进行改进,可以在不泄露密码明文的情况下实现高度安全的密钥交换。

SPAKE2+ 协议的设计思想是将密码学安全性和实用性结合起来,采用汉明重量编码技术来保证降低概率攻击的风险,并创新性地引入点压缩技术和标量位压缩技术,减轻了计算负担和通信开销。

在 SPAKE2+ 协议中,参与方之间的密钥交换过程将分为两个阶段:第一阶段为计算验证子,参与方通过该验证子验证对方的身份,并生成公钥和私钥;第二阶段为密钥生成,参与方利用计算验证子生成的公钥和私钥,计算出一个共享密钥。在该过程中,参与方需要选定一个公共参数,该参数应根据情况性质和安全需求进行选择。

SPAKE2+ 协议具有很好的安全性和高效性,它实现了密码学理论最高水平的安全级别,并且具有快速、可靠以及应用范围广的优点。因此,该协议被广泛应用于各种基于密码的身份认证和密钥交换场景,如电子邮件、VPN 等等。

参考

Matter 系列 #7 I Matter 安全模型

漏洞悬赏计划:涂鸦智能安全响应中心(https://src.tuya.com)欢迎白帽子来探索。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

three.js(一)

文章目录 three.js环境搭建正文补充 示例效果知识点补充1:一个标准的html知识点补充2:原生的前端框架和Vue框架的区别原生的前端框架Vue框架声明式编程和响应式编程 three.js环境搭建 正文 搭建 Three.js 的环境通常包括以下几个步骤: 1.创建项目目录&#xff1a…

Linux的基本指令和权限的知识

学前的建议:大家不要太关注指令是啥,记不住怎么办(没事,想用时去查就好了),这篇文章重点部分是围绕指令的周边知识。毕竟指令是“死肌肉”,而一些关于Linux和操作系统的理论知识才是最重要滴&am…

懒惰的数独——lodash的shuffle方法实现随机打乱的效果

1.效果 2.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><script src"https://cdn.jsdelivr.net/npm/vue2.5.17/dist/vue.js"></script><script src&q…

Unity_FairyGUI发布导入Unity编辑器资源报错

Unity_FairyGUI发布导入Unity编辑器资源报错 报错&#xff1a; FairyGUI: settings for Assets/UI/XMUI/XMSubway_atlas0.png is wrong! Correct values are: (Generate Mip Mapsunchecked) UnityEngine.Debug:LogWarning (object) FairyGUI.UIPackage:LoadAtlas (FairyGUI.P…

用于 ChatGPT 的 FPGA 加速大型语言模型

简介&#xff1a;大型语言模型 近年来&#xff0c;大型语言模型 &#xff08;LLM&#xff09; 彻底改变了自然语言处理领域&#xff0c;使机器能够生成类似人类的文本并进行有意义的对话。这些模型&#xff0c;例如 OpenAI 的 GPT&#xff0c;具有惊人的理解和生成语言的能力。…

Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets

Stable video diffusion&#xff1a;将潜在视频扩散模型扩展到大型数据集 可以做到&#xff1a;文本-视频的生成、&#xff08;文本-&#xff09;图像-视频的生成、通过图像-视频微调进行多视图合成 摘要 我们提出了Stable video diffusion——一种用于高分辨率、最先进的文…

re:Invent 云端历程:Swami Sivasubramanian 博士主题演讲-数据共生与开放

re:Invent 云端历程&#xff1a;Swami Sivasubramanian 博士主题演讲-数据共生与开放 亚马逊云科技 re:Invent 大会简介 亚马逊云科技 re:Invent 是亚马逊云科技为全球云计算社区举办的学习大会。是云计算领域的行业风向标&#xff0c;科技界的全球年度重磅盛会。 亚马逊云科…

Sketch for Mac:实现你的创意绘图梦想的矢量绘图软件

随着数字时代的到来&#xff0c;矢量绘图软件成为了广告设计、插画创作和UI设计等领域中必不可少的工具。在众多矢量绘图软件中&#xff0c;Sketch for Mac&#xff08;矢量绘图软件&#xff09;以其强大的功能和简洁的界面脱颖而出&#xff0c;成为了众多设计师的首选。 Sket…

Json数据报文解析-Gson库-JsonObject类-JsonParse类-JsonArray类

一、前言 本文我们将介绍如何解析Json数据&#xff0c;主要通过Gson库中的相关类来实现。 二、详细步骤 首先&#xff0c;我们要拿到一个基础的Json数据&#xff0c;这里将以下面的Json数据作为示例&#xff1a; {"code":"1","msg":"ok&q…

***Cpolar配置外网访问和Dashy

Dashy是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起,形成自己的导航页。一款功能超强大,颜值爆表的可定制专属导航页工具 结合cpolar内网工具,我们实现无需部署到公网服务器…

大数据机器学习与深度学习——回归模型评估

大数据机器学习与深度学习——回归模型评估 回归模型的性能的评价指标主要有&#xff1a;MAE(平均绝对误差)、MSE(平均平方误差)、RMSE(平方根误差)、R2_score。但是当量纲不同时&#xff0c;RMSE、MAE、MSE难以衡量模型效果好坏&#xff0c;这就需要用到R2_score。 平均绝对…

redis-学习笔记(Jedis 通用命令)

flushAll 清空全部的数据库数据 jedis.flushAll();set & get set 命令 get 命令 运行结果展示 exists 判断该 key 值是否存在 当 redis 中存在该键值对时, 返回 true 如果键值对不存在, 返回 false keys 获取所有的 key 值 参数是模式匹配 *代表匹配任意个字符 _代表匹配一…

2 接口测试实战演示

上一篇&#xff1a;1 接口测试介绍-CSDN博客 拿到开发提供的接口文档后&#xff0c;结合需求文档开始做接口测试用例设计&#xff0c;下面用最常见也最简单的注册功能介绍整个流程。 说明&#xff1a;以演示接口测试流程为主&#xff0c;不对演示功能做详细的测试&#xff0c;…

Jenkins离线安装部署教程简记

前言 在上一篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目中&#xff0c;我们了解了如何完成基于Jenkins实现自动化部署。 对于某些公司服务器来说&#xff0c;是不可以连接外网的&#xff0c;所以笔者专门整理了一篇文章总结一下&#xff0c;如何基于内网直接部署Jen…

TDengine Kafka Connector将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine

教程放在这里&#xff1a;TDengine Java Connector&#xff0c;官方文档已经写的很清晰了&#xff0c;不再赘述。 这里记录一下踩坑&#xff1a; 1.报错 java.lang.UnsatisfiedLinkError: no taos in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.j…

SE考研真题总结(三)

继续更新&#xff0c;今天准备连出两期该系列~ SE考研真题总结&#xff08;二&#xff09;https://blog.csdn.net/jsl123x/article/details/134857052?spm1001.2014.3001.5501 目录 一.简答题 二.代码大题 一.简答题 1.工程和科学的区别 科学是关于事物的基本原理和事实的…

102基于matlab的PCA+ELM和PCA+PSO-ELM的费用估计

基于matlab的PCAELM和PCAPSO-ELM的费用估计&#xff0c;输出输出两者的预测误差并进行比较&#xff0c;输出优化后的迭代曲线。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 102matlab PCAPSOELM (xiaohongshu.com)

第16章 网络io与io多路复用select/pool/epool

第16.1节 写一个服务端代码 服务端代码 #include <stdio.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h>#include <fcntl.h>int main() {//openint sockfd sock…

大数据技术之Storm的安装与配置

大数据技术之Storm的安装与配置 这篇文章深入研究了大数据技术中实时计算系统 Apache Storm 的安装与配置过程。首先&#xff0c;文章介绍了 Apache Storm 在大数据处理中的重要性&#xff0c;强调其在实时数据处理领域的关键作用。随后&#xff0c;详细阐述了如何在系统中进行…

掌握Web、DNS、FTP、DHCP服务器的配置。掌握简单网络方案的规划和设计

1、Web服务器配置 2、综合设计 配置完后,所有的终端主机都要能够访问外网服务器,并进行测试。(本题可以自行选题,自行设计,但必须包含路由器、服务器(web、dns、DHCP、)、交换机及防火墙)。 3.做好规划并搭建拓扑图: 4.给PC机与服务器配置好IP,网关 5.给每个交换机…