kali无线渗透之蓝牙攻击与原理

原理

蓝牙网络中的“个人身份码”攻击传统的蓝牙设备,主要是指“蓝牙规范2.1版”以前的各版蓝牙设备,以及使用“安全简化配对”(Secure SimplePairing,SSP)协议的蓝牙设备。

这些传统的蓝牙设备仅仅依赖于“个人身份码”( PersonalldentificationNumber,PIN)的有效性作为唯一的认证规则,只要通信双方的蓝牙设备使用了相同的“个人身份码",就认为通过认证,否则就认为没有通过认证。

“个人身份码”只是一个由1位到16位数字组成的一个号码。

在很多产品中,“个人身份码”都是在产品生产的时候,直接由产品静态定义的,终端用户也无法修改。在“安全简化配对”的蓝牙设备中,主要是指“基本速率蓝牙”和“增强数据速率蓝牙”,而二者在本章中统称为“传统蓝牙”,并且,这两种蓝牙设备都支持多种认证方式,主要有如下几种。

“数字比较”认证(NumericComparison)在两个蓝牙设备上显示一个六位数字,提示用户判断两个数字是否相同,相同就选“配对”(Yes),否则就选“不配对”(No)。

“只比较不确认”认证(Just Works)尽管这种认证方式同“数字比较”的认证方式使用了相同的认证策略,但这种方式下并不提醒用户来验证这两个六位数字是否相同。

“密码输入”认证(PasskeyEntry)在特殊场景下的认证方式,该场景中,一方设备有一个显示器,而另一方有一个数字输入键盘。这时,有显示器的一方会在显示器上显示一串六位数字,然后要求用户通过另一方设备的键盘上输人所看到的这个六位数字来进行验证。


“带外认证”〇OB认证(Out ofBand)“带外认证"OOB 认证利用第三方的技术交换“认证数据和派生的密钥”,这种第三方技术如:近场通信(NearFieldCommunicationNFC)。


“传统蓝牙”中,基于“安全简化配对”功能的设备通常使用“数值比较”认证方式“只比较不确认”认证方式,或者是“密码输入”认证方式。无论是哪种认证方式,都使用“Difie-Hellman 椭圆曲线密钥”(Elliptic Curve Diffie-Hellman,ECDH)算法加密通信的数据以便防御侦听攻击。此外,“数值比较”认证方式和“密码输人”认证方式都对防御“中间人的畸形数据”(MitM)攻击提供了保护措施,而“只比较不确认”认证方式并不能对防御“中间人的畸形数据”攻击提供保护;“带外认证”认证是否对防御“中间人的畸形数据”攻击提供保护,则取决于所选用的第三方的“带外认证”协议是否对于被动式侦听和“中间人的畸形数据”攻击提供防御措施。


随着“低功耗蓝牙”的引人,“蓝牙技术联盟”(BluetoothSpecialInterest Group,SIG)简化了对设备认证的支持,其目的是为了降低“蓝牙控制器”(Bluetoothcontroller)的成本并将“从设备”的复杂度降到最低。

“低功耗蓝牙”设备上仍然还保留有“数值比较”“只比较不确认”和“带外认证”等认证方式,但“密码输人”认证方式在“低功耗蓝牙”上并不支持“安全简化配对”功能。

虽然“低功耗蓝牙”支持上面多种认证方式,但是在“低功耗蓝牙”设备上,由于不再支持“Difie-Hellman椭圆曲线密钥”加密算法,所以缺乏对被动式侦听攻击的防御保护措施。


从实际开发的角度来看,蓝牙“安全简化配对”SSP功能是难以利用。在蓝牙“安全简化配对”SSP功能处理过程中,被动式侦听也不能获得足够的信息可以发起一次还原“派生的加密主键”(derived encryptionkey)的攻击,很显然,这个“主键”正是数据可以解密的最关键元素。
尽管使用“Difie-Hellman椭圆曲线密钥”加密算法,但蓝牙“安全简化配对”功能已在几个实例中证明,该功能是容易受到“中间人的畸形数据”的攻击的,主要是当攻击者可以干扰 2.4GHz频谱,使原来处于活动状态的一对蓝牙设备不得不重新配对(re-pairing),加之在“只比较不确认”认证方式中,配对方式是“哑状态”(dumb down)下进行的,所以“中间人的畸形数据”就可以通过强制双方蓝牙设备使用“只比较不确认”认证方式静悄悄地完成攻击,有时,这种合二为一的攻击也称为“BT-NINO-MITM攻击”。虽然这种攻击方式被几个学术论文证明肯定是存在的,但到目前为止,还没有公开的、实际的工具是可以直接拿来使用的。尽管存在这样的限制,仍然有基于蓝牙数据包捕获的公开、可访问的攻击工具,可以用来攻击“传统蓝牙”和“低功耗蓝牙”设备上的数据交换。这里所说的数据包捕获,主要是指超牙设备的数据包捕获功能。


传统蓝牙中的个人身份码攻击


正如在第7章中所看到的一样,两个设备可以通过配对,派生出来的一个128位的连接密钥(128-bit link key)。该密钥用在认证中,用于识别“呼叫设备”(claimant device)和加密所有通信的数据。这个“配对交换”(pairingexchange)只能在“传统蓝牙”中通过一个“个人身份码”值进行保护。
两个“传统蓝牙”设备之间的配对过程存在一个点的重大的漏洞,那就是攻击者在观察整个配对交换过程的前提下,可以加载一个离线的、针对“个人身份码”选择的暴力攻击在配对过程完成后,后续的连接可以使用之前保存的128位的连接密钥用于认证和密钥派生。这种技术在当前对于攻击来说是有点不切实际的。
为了破解“个人身份码”的信息,攻击者必须首先单独地还原如下信息:

“发起随机数”IN RAND,由“发起方”(initiator)向“响应方”(responder)发送

两个“COMB_KEY 值”,“发起方”和“响应方”都会发送。


“认证随机数”AU RAND,由“认证呼叫方”(auchentication claimant)发送

“签署响应”SRES(Signed Response),由“验证确认方”(authenticaLion verifier)发送

由于“传统蓝牙”的认证机制属于是“相互身份验证”(mutual-authentication),也就是说“从设备”的身份由“主设备”进行认证,反之亦然,所以攻击者有两次机会识别“发起随机数”值和“签署响应”值。这时的攻击者主要的精力全部放在完成认证的操作上,对于“配对交互”本身,攻击者反而不必关注太多,势在必得的重要数据是“主设备”或者“从设备”的“蓝牙设备地址”。

此外,攻击者既要知道“从设备”的“蓝牙设备地址”,也要知道“主设备”的“蓝牙设备地址”,因为这两个地址“配对交换”的过程中并不会进行无线传送,所以只能通过上面“相互身份验证”过程中,捕获“发起随机数”值和“签署响应”值。

使用 BTCrack 攻击“个人身份码”

要使用 BTCrack 软件,首先要进行“配对交换”数据包的捕获。在这一点上,可选的工具非常多,超牙系统、Wireshark 软件、“前线蓝牙协议分析器600通信探测”设备、Elisys公司的“蓝牙资源管理器400”,都可以在两个通信的蓝牙设备之间捕获“配对交换”数据包并从中识别出“发起随机数”、两个“COMB KEY值”、“认证随机数”、“签署响应”等值一旦这些字段的值被捕获到或计算出,随后就可以确定“个人身份码”的最大长度,通过这个值,BTCrack软件就可以发起一起还原“个人身份码”的攻击了。对于BTCrack程序来说,上面的操作只需要单击“破解”(Crack)按钮即可,随后 Crack 程序就会通过暴力破解的方式对“个人身份码”进行破解,直到最终破解成功,拿到“个人身份码”的值;或者将字典中,所有可能的“个人身份码”全部用完,仍然没有正确的“个人身份码”,这时就意味着破解失败。

低功耗蓝牙中的个人身份码攻击

通过 Crackle 工具破解低功耗蓝牙

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

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

相关文章

Vue3中 状态管理器 ( Pinia ) 详解及使用

传送门: Vue中 状态管理器(vuex)详解及应用场景 传送门:Pinia 中文文档 注意:本文项目使用脚手架为 Vite; 1. 前言 Pinia 对比 Vuex Pinia 同时支持 Vue2 以及 Vue3 ,这让同时使用两个版本的…

现货白银投资热度推升因子

白银作为一种贵金属,其投资价值会受到多种因素的影响。在一些特殊的情况下,现货白银作为具有高杠杆的白银替代投资方式,会成为热门的投资工具,大受市场的追捧,本文将为大家介绍一下相关情况。 通常当全球的经济面临不确…

【Linux】进程间通信——共享内存

文章目录 共享内存的概要创建共享内存shmget()参数keyshmget()参数sizeshmget()参数shmflg 删除共享内存挂载共享内存去关联 共享内存的概要 共享内存允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。不同进程之间…

【ArcGIS Pro二次开发】(81):玩个花活_控规指标块生成

一、要实现的效果 废话不多说,这次要实现的是类似控规指标块的标注: 这里只是示例,用了5个格子,做成9个格子也是可以的。 实现这个效果最关键的是要用到Pro中的复合标注。 关于复合标注的用法可以搜一下帮助里的【使用复合注释…

【区块链技术开发语言】在ubuntu18 系统环境下命令操作安装GO语言开发环境

要在Ubuntu 18系统上安装GO语言开发环境,您可以按照以下步骤进行: 打开终端(Ctrl + Alt + T)。 使用以下命令下载GO语言安装包: 或者手动打开链接下载: wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz确保替换链接中的版本号为最新版本。 解压下载的安装包…

yolov8源码解读Detect层

yolov8源码解读Detect层 Detect层解读网络各层解读及detect层后的处理 关于网络的backbone,head,以及detect层后处理,可以参考文章结尾博主的文章。 Detect层解读 先贴一下全部代码,下面一一解读。 class Detect(nn.Module):"""YOLOv8 …

【EndNote20】Endnote20和word的一些操作

文章目录 前言一、如何导入参考文献到EndNote201.1.在谷歌学术或知网上下载文献1.2.将下载好的文件导入EndNote20(可批量导入)1.3.书籍如何导入 二、Word中加入参考文献 前言 做毕设时学习了EndNote20的一些使用方法,并在此慢慢做汇总。 一、如何导入参考文献到End…

索引失效的 12 种情况

目录 一、未使用索引字段进行查询 二、索引列使用了函数或表达式 三、使用了不等于&#xff08;! 或 <>&#xff09;操作符 四、LIKE 操作符的模糊查询 五、对索引列进行了数据类型转换 六、使用 OR 连接多个条件 七、表中数据量较少 八、索引列上存在大量重复值…

【python】python入门之输入与进入交互模式的方法

目录 一次性输入&#xff08;进入交互模式&#xff09;&#xff1a; 输入函数&#xff1a; 一次性输入&#xff08;进入交互模式&#xff09;&#xff1a; 交互模式介绍&#xff1a;写一行读一行&#xff0c;不用print也可以显示出来 &#xff08;当进行某些一次性计算或者纠错…

在石家庄有哪家券商证券公司可以免费开量化软件Ptrade、QMT

在石家庄有少数证券公司可以免费开量化软件QMT、Ptrade&#xff0c;如国金证券、广发证券等&#xff0c;之前要100万才可开通&#xff0c;现在只需满足资金50万的条件即可免费办理使用&#xff0c;详情找客户经理孙经理咨询。 证券佣金低价标准是“成本价”&#xff0c;默认佣金…

多线程——

目录 一、为什么要有多线程&#xff1f; 1、线程与进程 2、多线程的应用场景 3、小结​编辑 二、多线程中的两个概念&#xff08;并发和并行&#xff09; 1、并发 2、并行 3、小结 三、多线程的三种实现方式 1、继承Thread类的方式进行实现 2、实现Runnable接口的方…

为什么有的代理IP速度比较慢?

“为什么有的IP代理速度比较慢&#xff1f;”随着数字化时代的不断发展&#xff0c;代理服务成为了许多网络操作的关键环节。然而&#xff0c;有时我们可能会遇到IP代理速度慢的问题&#xff0c;这可能会对我们的网络操作产生影响。让我们一起揭开这个谜团&#xff0c;探寻其中…

辽宁政采入驻小知识

为辽宁省网上商城提供服务的电商&#xff0c;应能够dl承担民事责任能力&#xff0c;所提供的产品、服务应符合国家和辽宁省zf采购相关规定。 辽宁省zf采购网&#xff08;辽宁政采&#xff09;是一个为zf机关、事业单位等提供采购服务的平台。对于希望入驻该平台的企业或供应商…

EMQX Enterprise 5.4 发布:OpenTelemetry 分布式追踪、OCPP 网关、Confluent 集成支持

EMQX Enterprise 5.4.0 版本已正式发布&#xff01; 新版本提供 OpenTelemetry 分布式追踪与日志集成功能&#xff0c;新增了开放充电协议 OCPP 协议接入能力&#xff0c;并为数据集成添加了 Confluent 支持。此外&#xff0c;新版本还进行了多项改进以及 BUG 修复&#xff0c…

AI提示工程实战:从零开始利用提示工程学习应用大语言模型【文末送书-19】

文章目录 背景什么是提示工程&#xff1f;从零开始&#xff1a;准备工作设计提示调用大语言模型 实际应用示例文字创作助手代码生成持续优化与迭代数据隐私与安全性可解释性与透明度总结 AI提示工程实战&#xff1a;从零开始利用提示工程学习应用大语言模型【文末送书-19】⛳粉…

SpringMVC 的参数绑定之list集合、Map

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…

vue解决缩小浏览器后倒计时不准确的问题

使用web worker 首先安装一下worker-loader npm i -D worker-loader 其次在vue.config.js里配置一下worker-loader module.exports defineConfig({transpileDependencies: true,chainWebpack(config) {config.module.rule(worker).test(/\.worker\.js$/).use(worker-loader)…

备战蓝桥杯 Day8(最长上升子序列LIS模型)

1281&#xff1a;最长上升子序列 【题目描述】 一个数的序列bi&#xfffd;&#xfffd;&#xff0c;当b1<b2<...<bS&#xfffd;1<&#xfffd;2<...<&#xfffd;&#xfffd;的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列(a1,a2,...,aN)…

希尔排序算法

目录 ShellSort希尔排序 整体思路 图解分析 【1】预排序 单组排序 多组并排 【2】直接插入排序 关于gap取值 总代码实现 时间复杂度 ShellSort希尔排序 希尔排序法又称缩小增量法。 希尔排序法的基本思想是&#xff1a;先选定一个整数&#xff0c;把待排序文件中所有…

swap交换分区及buffers和cached

swap交换分区 swap 是 linux 系统磁盘管理的一块特殊的分区&#xff0c;当实际的物理内存不足的时候&#xff0c;操作系统会从整个内存中&#xff0c;取出一部分暂时没在使用的内存&#xff0c;拿出来放到交换分区&#xff0c;从而提供给当前正在使用的程序&#xff0c;可以使…