FiRa标准——MAC实现(二)

在IEEE 802.15.4z标准中,最关键的就是引入了STS(加扰时间戳序列),实现了安全测距,大大提高了测距应用的安全性能。在FiRa的实现中,其密钥派生功能是非常重要的一个部分,本文首先对FiRa MAC中加密以及信息相关的内容进行简单的介绍,为后续介绍相关源码的实现打好铺垫。关于FiRa标准中的角色、工作的基本原理,参考前一篇介绍MAC内容:FiRa标准——MAC实现(一)。

1. 关于FiRa MAC STS模式

对于FiRa MAC中加密相关内容的实现,首先需要了解FiRa中STS(Scrambled Timestamp Sequence)生成的两种类型:

  • 静态STS(Static STS)
  • 动态STS(Dynamic STS)

对于静态STS模式下,需要确保:

  • 确保在一个测距轮的每个时隙都生成不同的STS来确保可靠的测距;
  • 允许实现低成本和高性能;
  • 保证立即重新同步。

对于动态STS模式,需要保证:

  • 通过确保不以明文形式传输可识别信息来保护用户隐私;
  • 保护通过UWB传输的数据(时间戳、应用有效载荷)的机密性、完整性和真实性;
  • 确保每个时隙都可以生成不同的STS(初始STS,每个时隙增加1);
  • 确保可以检测到重放攻击;
  • 允许受控对象在单个控制消息上同步;
  • 限制开销以优化链路预算;
  • 限制旁路通道攻击的风险。

从两种模式的定义中,我们可以知道,在静态STS中,对于每个测距轮(Ranging Round)的对应时隙编号的STS是相同的,这就允许接收方能够更加快速的实现与控制器的同步;而对于动态STS而言,安全性更高,对于时隙索引一直递增,也就是说,每个测距时隙的STS都不同,这是与静态STS最大的区别。

由于实现的方式不一样,相应的其加密方式也有所不同。

1.1 动态STS密钥生成

动态STS生成模式从上图中可以看到,在实现中涉及到以下一些方法:

  • KDF(Key derivation function),密钥派生函数,基于相应的输入、key生成计算需要的相关密钥内容,涉及生成的内容包括:secDataProtectionKeysecPrivacyKeysecDerivedPayloadKeysecDerivedAuthenticationKeyphyStsIndecInitsecDerivedAuthenticationIV
  • CSPRNG算法,用于生成STS;
  • ECB算法,对于IEEE 802.15.4的Vendor IE需要使用ECB算法进行加密;
  • CCM*(ccm start)算法,对于IEEE 802.15.4数据帧部分,需要使用CCM*算法进行加密处理。

对于STS模式下,我们可以看到,每个时隙phySTSindex、cryptoStsIndex都会增加,被用作每个时隙生成不同STS的种子、以及Vendor IE、Payload加密的参数。其初始值phyStsIndexInit由config digest通过KDF函数之后生成。

Vendor IE使用ECB算法进行加密,在ECB模式下,对密文位的任何修改都会对每个明文产生雪崩效应,因此,可以用于检测修改。
ECB加密使用特定秘钥secPrivacyKey,对于一个完整的会话来说都是一样的,这样,受控对象可以随时用于同步。

IEEE Std 802.15.4z-2020中使用DRBG用于生成STS。cryptoStsIndex被附加到一个32位计数器上,该计数器将在每个时隙的开始时重置,以确保无论之前时隙STS的大小如何,cryptoStsIndex和当前配置的信息都足够生成STS。

对于数据载荷加密使用CCM*算法,无法对其内容进行假设,因此将使用Authenticated Encryption (身份验证加密,AE)。由于AE是基于计数器模式加密的,因此有必要向AE提供一个随机数(nonce)。这个随机数可以在每个加密数据包的前面传输,这将会增加传输开销。因此,cryptoStsIndex将被用作nonce更改的一部分。

1.2 静态STS密钥生成

静态STS生成模式
与动态STS模式相比,整体进行了较大的简化:
1)Vendor IE部分不再进行加密;
2)生成STS的CSPRNG算法使用了初始化中配置的phyVUpper64;
3)cryptoStsIndex进行了简化,在每个测距轮的第一个时隙都会重置为0。

另外,在动态STS模式下还涉及到key rotation等方式来进一步提高加密的安全性。

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

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

相关文章

Haproxy实现七层负载均衡

目录 Haproxy概述 haproxy算法: Haproxy实现七层负载 ①部署nginx-server测试页面 ②(主/备)部署负载均衡器 ③部署keepalived高可用 ④增加对haproxy健康检查 ⑤测试 Haproxy概述 haproxy---主要是做负载均衡的7层,也可以做4层负载均衡 apache也可…

光刻掩膜版怎么制作的?

光掩膜版基本上是 IC 设计的“主模板”。掩模版有不同的尺寸。常见尺寸为 6 x 6 英寸一般的掩膜版由石英或玻璃基板组成。光掩膜版涂有不透明薄膜。更复杂的掩模版使用其他材料。 一般来说,术语“photo mask”用于描述与 1X 步进机或光刻系统一起使用的“主模板”。…

Xmind常用快捷键

Xmind 是什么? Xmind 是一款全功能的思维导图和头脑风暴软件。像大脑的瑞士军刀一般,助你理清思路,捕捉创意。 全功能:提供9种专业的的思维导图结构,丰富的模板和配色,精美的贴纸和插画,还有演…

ansible-第二天

ansible 第二天 以上学习了ping、command、shell、script模块,但一般不建议使用以上三个,因为这三个模块没有幂等性。举例如下: [rootcontrol ansible]# ansible test -a "mkdir /tmp/1234"[WARNING]: Consider using the file …

RabbitMQ 之 Work Queues 工作队列

目录 一、轮训分发消息 1、抽取工具类 2、启动两个工作线程 3、生产者代码 4、结果展示 二、消息应答 1、概念 2、自动应答 3、消息应答的方法 4、Multiple 的解释 5、消息自动重新入队 6、消息手动应答代码 (1)生产者 (2&#…

上拉电阻与下拉电阻

文章目录 上拉电阻下拉电阻上下拉电阻作用1、稳定信号2、减少电磁干扰3、提高驱动能力 大家在玩单片机的过程中,一定没少听过上拉电阻和下拉电阻这组名词,那么到底什么是上拉电阻和下拉电阻呢?今天我们一起来简单了解一下 上拉电阻 上拉电阻…

企业如何解决被“薅羊毛”

随着互联网的普及和电子商务的兴起,越来越多的消费者选择在线购物。然而,一些消费者可能会利用企业的促销活动或优惠券来获取额外优惠,甚至恶意攻击企业的营销资金。这种行为被形象地称为“薅羊毛”。 对于企业而言,如何解决被“薅…

信通院发布的 “信息系统稳定性保障能力建设指南” 有点干货

刚刚看了信息系统稳定性实验室、中国信息通信研究院云计算与大数据研究所联合发布的 信息系统稳定性保障能力建设指南,感觉还是有点干货的。 节选如下: 概括的比较全 关键指标 行业案例 免费在线阅读和下载地址:信息系统稳定性保障能力建设指…

【Python小练手】使用PySimpleGUI和Pygame创作一个MP3播放器(附完整代码)

文章目录 前言一、来说说思路(文心一言提供)二、完整代码(参考文心,自行修改)总结附录 前言 闲来无事,做了MP3播放器练练手,主要是研究下PySimpleGUI的界面窗口设计。先上图,一睹为…

Leetcode刷题详解——电话号码的字母组合

1. 题目链接:17. 电话号码的字母组合 2. 题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。…

对于线程的收尾

一)对于synchronized的锁策略: synchronzed是一个自适应的锁,应该根据具体情况来决定选取那种锁策略; 1)synchronized既是一个乐观锁又是一个悲观锁,一开始是一个乐观锁,但是如果发现锁冲突的概率比较高,就会自动转化成…

操作系统实验二、进程和线程管理(Windows 2学时)单线程创建(有详细代码解释和运行步骤)

实验二、进程和线程管理(Windows 2学时) 一、实验目的 通过实验使学生进一步了解进程、进程状态、进程控制等基本概念。基本能达到下列具体的目标: 理解进程 PCB 的概念,以及 PCB 如何实现、如何组织以及管理。加深对进程和线程概念的理解,进一步认识并发执行的本质。掌握…

登录注册代码模板(Vue3+SpringBoot)[邮箱发送验证码(HTML)、RSA 加密解密(支持长文本)、黑暗与亮色主题切换、AOP信息校验]

文章归档:https://www.yuque.com/u27599042/coding_star/cx5ptule64utcr9e 仓库地址 https://gitee.com/tongchaowei/login-register-template 网页效果展示 相关说明 在该代码模板中,实现了如下功能: 邮箱发送验证码(邮件内容…

FL Studio 21.2.0.3842中文破解版2024最新系统要求

FL Studio 21.2.0.3842中文版完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室,因为它包含了一个主要的听觉工作场所。2024最新fl studioFL Studio 21版有不同的功能,如它包含图形和音乐音序器,帮助您使完美的配乐在…

基于subversion1.6.3动态库实现简单版本管理

基于subversion1.6.3动态库实现简单版本管理 一、运行环境 windows10 64位系统 VS2015、C Subversion1.6.3 二、功能设计与实现 1、需求背景 编码自动化版本部署、发布验证; svn cli命令行能满足基本功能,但是动作执行是否成功的判断不可靠&#…

Nginx镜像部署

因为需要nginx的初始化配置文件,为了保证不出错, 所以我们直接启动一个nginx容器,把配置文件拉取下来,然后删除容器! 4.1.1、创建nginx工作目录 #需要一个conf文件存放目录,和html文件目录,及日志存放目…

[C++ ]:7.内存管理+模板引入。

内存管理模板引入 一.内存管理:1.内存区域划分图:2.区域划分实例:3.C 内存管理方式:newdelete4.自定义类型的new和delete:一.简单类:二.日期类:三.栈类:四.队列类(栈实现…

RK3568驱动指南|第七篇-设备树-第64章 device_node转换成platform_device实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

Excel 常用技巧

1: 拼接 公式: C1&B1&A1 如 D CBA 将公式输入目标列之后回车即可得到结果 , 如果有多行需要处理 , 光标选中目标单元格右下角变为 按着左键下拉即可 最后选择转换功能转换为文本即可 2: 时间戳转时间格式 公式: TEXT((B2/10008*3600)/8640070*36519,"yyyy/mm…

VC6.0 高亮扩展

输入关键字 "asist vc6.0" 点击网页: https://wws.lanzouj.com/isNmZe9ap2f 几秒后下载成功 在VS2021 安装以下这个扩展 打开vc6.0 代码有高亮了