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…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...