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)欢迎白帽子来探索。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础语法之继承

为什么要继承 会发现,狗和猫只有叫声不同,因为它们都是动物,会有相同的属性和行为,所以它们可以继承animla类 如何继承 用到extends关键字 这样就会简化好多 注意 1.Animal称为父类/超类/基类;dog,cat称…

linux下sys目录与proc目录的作用

sys目录作用 在Linux系统中,/sys目录是一个特殊的虚拟文件系统(sysfs),用于提供对内核和设备的运行时信息的访问。它是在内核中运行的驱动程序和子系统的接口,可以用于获取和配置系统的硬件和内核信息。 以下是/sys目…

提升测试工具开发的思考

本文针对测试部效率提升测试工具开发、管理、维护暴露出来的问题的一些思考以及一些个人改进观点。 写在前面 本文提到的效率提升测试工具不是指的部门中固有的自动化测试工具,这里提到的测试工具统一指测试人员在工作之余自主开发用于期望替代重复、繁琐、耗时的手…

sylar高性能服务器-配置(P12-p14)内容记录

文章目录 p12:复杂类型解析一、方法函数二、结果展示 p13:复杂类型解析完善一、方法函数二、结果展示 p14:自定义类型解析一、方法函数二、小结 p12:复杂类型解析 ​ 本节内容主要针对完了配置类中对于复杂类型的转换。之前只实现…

最近面试了一位5年的测试,一问三不知,还反怼我...

最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。 在沟通中发现,由…

Linux高级管理--安装MySQL数据库系统

MySQL服务基础 MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后…

产品表结构分析

一个项目之中,会有很多数据,众多数据之间也存在这各种关系,如何依据这些关系设计出更符合实际且适合的表及之间的关联关系也是我们所必须学习的 一、常见部门表结构分析 几乎所有框架里面都有一张部门表,我们先来看一下他的结构&…

逆向思考 C. Fence Painting

Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci​来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…

使用selenium的edge浏览器登录某为

互联网上基本都是某哥的用法,其实edge和某哥的用法是一样的就有一下参数不一样。 一、运行环境 Python:3.7 Selenium:4.11.2 Edge:版本 120.0.2210.61 (正式版本) (64 位) 二、执行代码 from time import sleepfrom selenium…

GB28181学习(十八)——图像抓拍

前言 本文主要介绍图像抓拍功能,通过自研的sip库(mysipsdk.dll)对接真实设备,使用http方式实现图像数据传输,最终达到图像抓拍与保存的目的。 基本要求 图像格式宜使用JPEG;图像分辨率宜采用与主码流相同…

【JMeter】使用nmon进行性能资源监控

一、前言 ​ 在工作中可能会遇到需要在压测的时候对Linux服务器进行性能资源监控的情况。这时可以用nmon来对服务器进行监控。 二、nmon的下载安装 1.查看系统信息 shell cat /etc/os-release结果为 shell PRETTY_NAME"Debian GNU/Linux 12 (bookworm)" NAME&qu…

动物姿态估计:微调 YOLOv8 姿态模型

动物姿态估计是计算机视觉的一个研究领域,是人工智能的一个子领域,专注于自动检测和分析图像或视频片段中动物的姿势和位置。目标是确定一种或多种动物的身体部位(例如头部、四肢和尾巴)的空间排列。这项技术具有广泛的应用&#…

【大数据】Hadoop生态未来发展的一些看法

大数据的起源 谷歌在2003到2006年间发表了三篇论文,《MapReduce: Simplified Data Processing on Large Clusters》,《Bigtable: A Distributed Storage System for Structured Data》和《The Google File System》介绍了Google如何对大规模数据进行存储…

MATLAB基础运算

矩阵和数字相乘 就是矩阵里面每个元素跟这个数字乘一遍,无论是点乘还是叉乘,对于这个都一样。 >> Aones(3) A 1 1 11 1 11 1 1 >> 10*A ans 10 10 1010 10 1010 10 10 矩阵和矩阵叉乘 能不能相…

什么是接口测试?如何做接口测试

接口测试是指对系统或应用程序接口进行测试,以验证接口的功能、可靠性、性能、安全性等方面的需求是否被满足。接口测试可以用于测试不同系统、模块、组件之间的交互和通信,包括 Web 接口、网络接口、数据库接口等。其重点是测试数据传输、数据格式、数据…

excel做预测的方法集合

一. LINEST函数 首先,一元线性回归的方程: y a bx 相应的,多元线性回归方程式: y a b1x1 b2x2 … bnxn 这里: y - 因变量即预测值x - 自变量a - 截距b - 斜率 LINEST的可以返回回归方程的 截距(a) 和 斜…

MySQL基础笔记

MySQL 1. SQL1.1 SQL-DDL语句1.1.1 数据库操作1.1.2 表操作 1.2 MySQL-DML语句1.3 MySQL-DQL语句1.3.1 基本查询1.3.2 条件查询1.3.3 聚合函数1.3.4 分组查询1.3.5 排序查询1.3.6 分页查询 1.4 MySQL-DCL语句1.4.1 管理用户1.4.2 权限控制 2. 函数2.1 字符串函数2.2 数值函数2.…

mybatis动态SQL-choose-when-otherwise

1、建库建表 create database mybatis-example; use mybatis-example; create table emp (empNo varchar(40),empName varchar(100),sal int,deptno varchar(10) ); insert into emp values(e001,张三,8000,d001); insert into emp values(e002,李四,9000,d001); insert into…

性能测试、负载测试、压力测试之间的差异!

1、什么是性能测试 性能测试是一种用于确定计算机、网络或设备速度的测试。它通过在不同的负载场景中传递不同的参数来检查系统组件的性能。 2、什么是负载测试 负载测试是在任何应用程序或网站上模拟实际用户负载的过程。它检查应用程序在正常和高负载期间的行为。当开发项目…

Gin之GORM 操作数据库(MySQL)

GORM 简单介绍 GORM 是 Golang 的一个 orm 框架。简单说,ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。使用 ORM框架可以让我们更方便…