RF4CE安全性:概述

2023-11-13

配对流程

RF4CE配对是一个相当简单的过程,带来一些安全隐患,可能是由于试图简化最终用户的配对过程。首先,我们有发现阶段。外围设备发送具有一些特定属性集的发现请求命令,并等待来自满足这些要求的设备的发现响应命令。配对本身从外围设备发出的配对请求命令开始。此请求包括应发生的密钥交换传输的数量(最多255个)。基站发出配对请求响应命令并开始密钥交换阶段。

gkljn.PNG

 

加密密钥由基础生成。然后它生成n -1个随机数,其中n是配对请求命令中外围设备指定的密钥交换的数量。基地传输这些密钥种子及其序列号。在外围设备上,接收密钥种子并用于导出密钥。第个种子包含与其他随机种子异或的加密密钥。如果没有正确接收任何密钥种子帧,则生成新的密钥种子并以相同的序列号发送。攻击者需要拦截每个序列号的最终密钥种子,以便成功拦截密钥。密钥恢复算法如下所示:用Python编写:

 

 
  1. def deriveKey(seeds):
  2. phase1 = 0
  3. for current_seed in seeds:
  4. phase1 = phase1 ^ current_seed
  5.  
  6. phase2_seeds = []
  7. for i in range(5):
  8. start = i*16
  9. end = (i+1)*16
  10. s = phase1[start:end]
  11. phase2_seeds.append(s)
  12.  
  13. key = 0
  14. for current_seed in phase2_seeds:
  15. key = key ^ c

 

 

将种子一起异或成一个大的“阶段1”。然后将该阶段1分成五个二级种子。这些种子最终被异或一起形成加密密钥。请注意,下图假设配对请求指定使用四个密钥种子。

hdgfdhgb.PNG

 

 

密钥交换发生后,在两个设备上生成配对表条目。此条目包含对方设备的物理地址,以及配对密钥和一些元数据。要确认配对,必须在两个设备之间传输ping请求和响应对。

我们看到的大多数实现都包括辅助配对确认。这通常采用在基本设备的连接屏幕上显示的一组数字中的用户类型的形式。如果确认不正确,则删除刚在任一设备上创建的配对表条目。请注意,此行为不是协议标准的一部分,并且取决于制造商和设备,并且在我们观察到的实现中,确认代码未以加密方式使用。

加密属性

当设置RF4CE帧的网络头中的安全标志时,帧的有效载荷字段被加密。RF4CE(与其他IEEE 802.15.4安全规范一样)使用AES-CCM * 3模式加密数据。

消息使用随机数和标头加密。nonce形成如下:

dhjkhd.PNG

 

使用消息完整性代码(MIC)确定消息验证。消息完整性代码是加密RF4CE帧的最后一个字段; 它长度为四个字节,并根据AES-CCM算法返回的身份验证进行验证。

攻击场景

攻击RF4CE归结为攻击规范中内置的一些便利。例如,设备根据“启动时的信道条件”选择其频道,如果没有得到任何响应,则可以自动更改频道。这导致可能的攻击向量,其使用RF信道干扰来迫使成对的设备进入单独的信道。

密钥交换是使用RF4CE的另一个方便,易受攻击的阶段。密钥是通过无线发送的,没有真正的加密 - 相反,该过程涉及混淆密钥材料并将其拆分,希望攻击者可能无法捕获每个密钥交换传输消息。任何具有能够捕获密钥种子交换的密钥生成算法知识的攻击者都能够获得加密密钥并绕过RF4CE中的任何安全功能。

RF4CE还容易受到攻击,因为RF4CE设备仅在应用层配对,而不是使用802.15.4 MAC层安全性。因此,没有启用RF4CE安全性的帧将通过无线方式完全以明文形式发送,从而使拦截变得非常简单。

关注和考虑因素

RF4CE存在许多问题,这些问题都是协议固有的以及设备制造商如何实现协议。密钥交换本身就是一个漏洞,因为攻击者通过获取用于所有未来加密通信的共享密钥材料来获得设备配对。弱密钥交换可以通过使用带外信息交换来补救,这意味着以攻击者收听无线电频率空间的方式传送信息将无法提取信息。这是像Zigbee 3.0这样的选项,它允许“安装代码”,有助于安全的信息交换4。此外,每个设备的非对称密钥对或基于QR码或引脚的配对(例如ZWave S2 5中使用的配对)也可以解决这个问题。

由于在RF4CE(音频传输等)的许多“高(呃)带宽”使用中,通常不启用安全性,因此安全性也受到损害。范围内的任何攻击者都可以通过无线方式窃听数据,甚至无需配对。设备制造商可以通过对所有通信强制使用安全模式来解决此问题。虽然由于设备的速度和功率可用性,嵌入式工程师面临着实施加密技术的挑战,但许多芯片组上提供的AES-CCM *算法的硬件加速以及其他轻量级加密选项(如果需要)提供了多种选择来应对这些挑战,同时实现安全。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RF4CE安全性:概述 的相关文章

  • 巧用闭包拷贝对象

    我们知道对象的赋值实际上是赋值它的应用 并没有产生对象的副本 如 var p1 x 1 y 2 var p2 p1 p2 x alert p1 x 得出的结果是2 改变p2 x的值 p1 x的值随之改变 当然可以重新new一个对象 但是这样
  • 如何把项目打jar包,然后暴露接口给第三方应用提供服务【实战讲解】

    如何把项目打jar包 然后暴露接口给第三方应用提供服务 实战讲解 下面这个例子 是我在开源项目CR949中使用到的部分代码 作为讲解 发布到这里 jar包中的controller 如何对外暴露接口 这样一个场景 比如 我去gitee上面 下
  • TypeError: __init__() got an unexpected keyword argument ‘autocompletion‘

    1 TypeError init got an unexpected keyword argument autocompletion 在使用mmclassification的时候会出现该错误 看起来是哪里的自动补全出了问题 在报错的文件里会
  • 如何快速下载Python解决在官网下载缓慢问题以及如何安装Python

    不知道你们碰到过这样的情况没有 在Python官网下载Python却很慢 刚开始我还以为是被限速了 后来才了解到这是因为Python官网的服务器是在外网 所以呢那我找到了一个Python的国内下载网址 CNPM Binaries Mirro
  • 史上最全SQL基础知识总结(理论+举例)

    div class markdown views div
  • 当了程序员才知道的事情

    坐在靠墙角的程序员王二狗 如果这哥们键盘敲的啪啪响 时不时面带笑容 很可能是在跟前台 测试 UI 美工 产品的小美眉聊今天又发现楼下新开的餐馆 如果嘴角带弧度 手不放在键盘上而是一直抓着鼠标擦滚轮且显示器角度靠内 那一定是摸鱼刷某乎 如果这
  • JDK 1.8中为什么HashMap使用红黑树而不是普通的AVL树

    概述 在JDK 1 8之前 HashMap使用的是数组和链表的组合来解决哈希冲突 然而 当链表过长时 查询性能会受到影响 为了解决这个问题 JDK 1 8引入了红黑树作为链表的替代结构 提高了HashMap的性能 为什么选择红黑树而不是其他
  • cesium地图

    cesium地图 开源基于js的3D地图框架 可视化框架 支持2D 3D 5D形式的地理数据 可以绘制几何图形 高亮区域 支持导入图片 使用webGL来进行硬件加速图形 使用是不需要任何插件来支持 但是浏览器必须支持webGl 1 配置视窗
  • 红蜘蛛 v6.2.1160解除键鼠屏蔽以及实现窗口化

    目录 声明 破解软件下载 环境 实现效果 简单使用方法 注意事项 1 还原 2 破解前已经被控制 3 调整窗口后窗口黑掉 4 自动替换补丁失败 5 基本原理 声明 自制 仅供学习交流 侵删 破解软件下载 https download csd

随机推荐

  • 关于Ubuntu ssh远程连接报错和无法root登录的解决方法

    一 使用远程工具连接Ubuntu提示报错 MobaXterm v22 0 版本直接可以远程连接上 前提是sshd服务是开启的状态 注意 须使用最新版本或较高版本的ssh远程连接工具 进行ssh连接 若使用较低版本的ssh远程连接工具 会报错
  • 安全编码规范-小羊的记录本

    目录 安全编码规范 安全目标 数据校验 SQL注入 OS注入 目录遍历攻击 XML注入 正则注入 日志注入 敏感数据保护 异常暴露敏感信息 线程同步 IO操作 反序列化 平台安全 线程同步 IO操作 反序列化 平台安全 安全编码规范 安全目
  • 网站弹窗公告一天弹窗一次源码简单好看

    介绍 简单好看到爆炸 上传到根目录使用即可 一天只弹一次 使用cookie记录 网盘下载地址 http kekewangLuo net T2ztQxJWt16 图片
  • kullback-leibler distance的计算(matlab)

    KL distance是用来计算两组离散数值的信息量 相对熵 的 一般针对的是离散数据 可以用来做特征筛选 但如果是连续数据 则先要离散化求每个bin内的frequency后再计算KL distance KL distance的解释 1 h
  • linux 文件测试运算符

    文件测试运算符用于检测 Unix 文件的各种属性 属性检测描述如下 b file 检测文件是否是块设备文件 如果是 则返回 true b file 返回 false c file 检测文件是否是字符设备文件 如果是 则返回 true c f
  • 板端电源硬件调试BUG

    项目场景 问题1 MC34063A负压电路调试 MC34063A是一款常用于产生负压的开关电源 但是去年我花PCB板子进行调试 负压产生的电压是0V 问题2 采用MP2359开关电源产生5V电压 问题3 这一步调试成功 但是AMS1117
  • Linux centos8 docker中安装postgresql12.4及远程访问设置

    centos 8 0 docker 安装postgresql 12 4 及远程连接设置 一 docker 安装 postgresql 12 4 1 拉取镜像 docker pull postgres 12 4 2 运行容器 docker r
  • VMware Workstation Pro 17 虚拟机安装Ubuntu18.4.06

    VMware Workstation Pro 17 虚拟机安装Ubuntu18 4 06 1 下载Ubuntu镜像文件 2 安装VMware Workstation Pro 17 3 使用VMware创建虚拟机 4 安装Ubuntu18 4
  • YC 带你快速入门区块链

    1 介 绍 如果你在这里 我们假设你是一个受区块链影响的开发者 黑客 你确信你了解它是如何工作的 现在你很想知道区块链对你和你所掌握的开发者技能的意义 如果你需要更多的底气 我们建议你先从比特币白皮书和以太坊白皮书开始 比特币白皮书学习资料
  • 权限系统控制到按钮级别开源推荐 Spring Boot-Shiro-Vue

    再搞权限系统的时候 权限控制到菜单很容易 但是很多情况要控制到按钮接口级别 这个时候设计就要研究下了 方案好几种 这里推荐一个不错的开源方案 大伙可以参考学习下 Spring Boot Shiro Vue实现 github开源地址及系统演示
  • JavaWeb-云日志

    前不久 我在哔哩哔哩上学了一个教写了云日志web项目 但讲的不全 我自己学习过程中 做个笔记 也分享给大家 源码链接在最后面 目录 1 数据库设计 2 登录模块 3 个人中心模块 4 类别模块 5 日志模块 6 数据报表模块 7 主页模块
  • Android SIM卡识别加载流程

    文章目录 总述 代码路径 UICC框架 SIM卡识别加载流程 日志分析举例 总述 本文基于Android N Android 7 首先要知道SIM卡一般是挂载在CP侧 MODEM侧 的 由MODEM给予真正的上电 识别 通信等 然后通过AP
  • Python selenium Boss直聘数据爬取(仅供学习使用)

    写在前面 因为最近刚好需要分析行业数据 又在查询时 发现了许多博主写了一些东西 但很多都已经失效了 所以写了那么一篇文章 希望能够帮到大家 注 BOSS直聘数据为js加载数据 故使用selenium 一 pip selenium bs4 下
  • Microsemi Libero系列教程(四)——PLL的使用

    文章目录 PLL是什么 Libero中PLL的使用 官方文档 交流群 系列教程 Microsemi Libero系列教程 PLL是什么 PLL Phase Locked Loop 为锁相回路或锁相环 用来统一整合时钟信号 使高频器件正常工作
  • 远程链接腾讯云Redis-遇到的坑

    开门见山 1 配置腾讯安全组 不用重启机器 首先找到默认的安全组 一个实例必须有一个安全组 即这个 点进去 就会进入安全组下全部的安全策略 根据需要配置 2 更改Redis配置redis conf 注意 1 一定找到启动Redis对应的re
  • C++ STL模板库用法查询及一些常见面试题(自用)

    C STL模板库 文章目录 C STL模板库 用法查询 Array 1 使用 2 创建 3 成员函数 Vector 1 使用 2 创建 3 成员函数 deque 1 使用 2 创建 3 成员函数 list 1 使用 2 创建 3 成员函数
  • 「如何优雅有效利用周末和下班时间?」

    文章目录 每日一句正能量 前言 下班的时间规划 周末的时间规划 提升周末体验感的好方法 怎样才能获得充分的休息 后记 每日一句正能量 眼望古城街尽 心谱落愁无序 旧时的誓言 曾而相似 河水在遵循河道的指引下 在曲折前进中放声的歌唱 我却在心
  • 记录QTcpSocket碰到的ConnectToHost失败问题

    之前尝试Qt的QTcpSocket 发现ConnectToHost失败 waitForConnected一直返回false 一直不得其解 放弃了 直到最近再次使用 仍然是返回false 下定决心要解决这个问题 心血来潮查了QT的文档 发现有
  • 一文让你知道关于App推送那些事

    推送相关介绍 在用户未打开App时 服务端向用户推送服务器最新的消息数据 称为推送 消息推送在移动开发中用到的场景非常多 比如典电商类app的商品促销活动 资讯类的app的新闻推送等等 在实际开发中 我们常常会根据产品设计的需要 进行推送功
  • RF4CE安全性:概述

    配对流程 RF4CE配对是一个相当简单的过程 带来一些安全隐患 可能是由于试图简化最终用户的配对过程 首先 我们有发现阶段 外围设备发送具有一些特定属性集的发现请求命令 并等待来自满足这些要求的设备的发现响应命令 配对本身从外围设备发出的配