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 工具破解低功耗蓝牙
相关文章:
kali无线渗透之蓝牙攻击与原理
原理 蓝牙网络中的“个人身份码”攻击传统的蓝牙设备,主要是指“蓝牙规范2.1版”以前的各版蓝牙设备,以及使用“安全简化配对”(Secure SimplePairing,SSP)协议的蓝牙设备。 这些传统的蓝牙设备仅仅依赖于“个人身份码”( Personalldentifi…...
【开源】基于JAVA+Vue+SpringBoot的就医保险管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…...
德国vetter krantechnik起重机安装操作和维护说明包含电路图装配图
德国vetter krantechnik起重机安装操作和维护说明包含电路图装配图...
怎样解决恢复VPS数据信息?
对于服务器来说其中的数据信息是十分重要的内容,一旦出现数据丢失或损坏,就会对企业造成巨大的损失,所以备份是非常重要的,那么在使用VPS时我们怎样能够恢复其中的数据信息呢? 一、手动备份 其中比较简单快速的备份方…...
OpenAI最新模型Sora到底有多强?眼见为实的真实世界即将成为过去!
文章目录 1. 写在前面2. 什么是Sora?3. Sora的技术原理 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感…...
Qt的基本操作
文章目录 1. Qt Hello World 程序1.1 通过图形化界面的方式1.2 通过代码的方式实现 2. Qt 的编码问题3. 使用输入框实现hello world4. 使用按钮实现hello world5. Qt 编程注意事项6. 查询文档的方式7. 认识Qt坐标系 1. Qt Hello World 程序 1.1 通过图形化界面的方式 我们先讲…...
信号系统之数据压缩
1 数据压缩策略 表 27-1 显示了对数据压缩算法进行分类的两种不同方法。在(a)中,这些方法被归类为无损或有损(lossless or loss)。无损技术意味着恢复的数据文件与原始文件相同。这对于许多类型的数据是绝对必要的,例如:可执行代码、文字处理…...
第二篇【传奇开心果微博系列】Python微项目技术点案例示例:成语接龙游戏
传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目目标二、雏形示例代码三、扩展整体思路四、玩家输入示例代码五、成语判断示例代码六、回答判断示例代码七、电脑判断示例代码八、游戏结束示例代码九、界面优化示例代码十、扩展成语库示例代…...
国内AI大模型主要有哪些
ChatGPT火爆后不到一个月的时间,阿里、华为、腾讯、京东、字节、360、商汤、科大讯飞等大厂纷纷下场,或官宣入场或亮相大模型。我国对生成式AI实行监管的正式法规主要是2023年8月正式施行的《生成式人工智能服务管理暂行办法》。 据不完全统计ÿ…...
RabbitMQ保证消息的可靠性
1. 问题引入 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…...
【工作实践-02】实验室移动端—跳转页面及交互
一、跳转页面不关闭当前页,与uniapp头部导航栏的返回按钮效果相似 uni.navigateBack({delta: 1}) 二、返回页面并刷新 1. 返回上一页时重新获取列表(调用上一页面获取列表方法) let pages getCurrentPages(); // 当前页面let beforePage pages[pages.length - 2…...
HTTP 请求 400错误
问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…...
C语言---指针进阶
1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的,所以没必要…...
QT-通信编码格式问题
这里写目录标题 一、项目场景1.QT客户端与服务端通信时,转化步骤如下:2.原数据示例3.转化后数据 二、问题描述1.采用Soap协议2.采用HTTP协议 三、原因分析四、解决方案 一、项目场景 1.QT客户端与服务端通信时,转化步骤如下: 1&…...
一文了解Web3.0真实社交先驱ERA
Web2时代,少数科技巨头垄断了全球近60亿人口的网络社交数据,并用之为自己牟利,用户无法掌控个人数据,打破该局面逐渐成为共识,于是,不少人看到了Web3社交赛道蕴含的巨大机遇,标榜着去中心化和抗…...
微前端(qiankun)vue3+vite
目录 一、什么是微前端 二、主应用接入 qiankun 1.按照qiankun插件 2.注册微应用引用 3.挂载容器 三、微应用接入 qiankun 1.vite.config.ts 2.main.ts ps:手动加载微应用方式 ps:为什么不用 iframe 一、什么是微前端 微前端是一种多个团队通过独…...
根据Ruoyi做二开
Ruoyi二开 前言菜单代码生成新建微服务网关添加微服务的路由 vue页面和对应的js文件js中方法的url和controller中方法的url总结 前言 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就…...
DockerFile的应用
DockerFile的应用 一、介绍1 构建的三步骤2 构建的过程 二、常用命令三、DockerFile案例1 创建DockerFile文件2 使用DockerFile文件构建镜像3 启动容器并验证 四 DockerFile添加数据卷 一、介绍 DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成…...
爬虫入门一
文章目录 一、什么是爬虫?二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一:放在请求头中方式二:放在cookie参数中 九、post请求携带参数十、模拟登…...
2024-02-16 web3-区块链-keypass记录
摘要: 2024-02-16 web3-区块链-keypass记录 文档: Introduction - Keypass Docs What is KEYPASS? - Keypass Docs What is KEYPASS? KeyPass Wallet is a new smart contract wallet that provides a secure and customizable registration…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...
职坐标物联网全栈开发全流程解析
物联网全栈开发涵盖从物理设备到上层应用的完整技术链路,其核心流程可归纳为四大模块:感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性,例如传感器选型需平衡精度与…...
