IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> BLE Mesh中的Sequence number和IV Index -> 正文阅读

[网络协议]BLE Mesh中的Sequence number和IV Index

Sequence number在正常使用中可能带来的问题:

一般正常发送数据,每条数据的Sequence number会在原来的基础上加1,这样接收者会保存发送者的Sequence number,如果此时发送者掉电上电后Sequence number被清零,发送的数据的Sequence number会再次从零开始累加,这样接收者接收到的数据小于之前保存的Sequence number的数据,就会将这条数据丢弃不处理,这样就会导致该设备一段时间无法正常通信,一般建议掉电上电前发送的Sequence number需要保存,掉电后也在掉电前的数据上进行累加,然后接收的Sequence number就不需要保存,这样即使上电后之前保存的接收的Sequence number为0后面正常接收过来的数据的Sequence number也会大于0也能正常处理。

Sequence number的作用:

在网络安全中,重放攻击是一种技术,窃听者拦截并捕获一个或多个消息,然后在稍后重新发送它们,目的是欺骗接收者,执行攻击设备没有授权做的事情。一个经常被引用的例子是,汽车的无钥匙进入系统被攻击者破坏,拦截车主和汽车之间的认证序列,然后重播这些信息,以进入汽车并偷走它。

蓝牙mesh有保护功能,可以防止重放攻击。这种保护的基础是使用了两个网络PDU字段,分别称为序列号(SEQ)和IV索引。元素在每次发布消息时都会增加SEQ值。节点从包含SEQ值小于或等于最后一条有效消息中的值的元素接收消息时,将丢弃它,因为它很可能与重放攻击有关。IV指数是一个单独的领域,与SEQ一起考虑。IV来自给定元素的消息中的索引值必须始终等于或大于来自该元素的最后一条有效消息。

Sequence number的定义:

序列号是一个包含在网络PDU的SEQ字段中的一个24位值,主要设计用于防止重放攻击。同一节点内的元素可能彼此共享,也可能不共享序列号空间。在每个新的网络PDU中为每个消息源拥有不同的序列号(由SRC字段中包含的单播地址标识)对网状网络的安全性至关重要。

使用24位序列号,元素可以在重复一次重复之前发送16,777,216条消息。如果一个元素平均每5秒发送一次消息(对于已知用例表示相当高的频率消息),该元素可以在一次重复之前传输2.6年。

每个元素生成的网络pdu应严格增加序列号。在序列号接近最大值(0x FFFFFF)之前,元素应使用IV更新程序更新IV索引。这样做是为了确保序列号永远不会被环绕起来。

IV Index:

IV索引是一个32位的值,它是一个共享的网络资源(即,网状网络中的所有节点共享相同的IV索引值,并将其用于它们所属的所有子网)。

IV索引从0x00000000开始,并在第3.10.5节所述的IV更新过程中增加。当值增加时的时间不必是精确的,因为最小有效位是在每个网络PDU内通信的。由于IV索引的值是一个32位的值,所以一个网状网络可以在IV索引结束之前运行大约5万亿年。

IV索引通过安全网络信标在网络中共享。在一个子网上接收到的IV更新被处理并传播到该子网。传播是通过传输安全网络信标的设备与更新的IV索引的特定子网。如果主子网上的设备接收到主子网上的更新,则它应将IV更新传播到所有其他子网。如果主子网上的设备接收到任何其他子网上的IV更新,则应忽略该更新。

如果一个节点在网状网络中缺失一段时间,它可以扫描安全网络信标或使用IV索引恢复程序,从而自动设置IV索引值。

空口数据包中的sequence number:

14fd7809d3734758aacc4f0f9e555fff.png

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:52:32  更:2022-09-13 11:54:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:56:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码