蓝牙安全入门——两道CTF题目复现

文章目录

  • 蓝牙安全入门
    • 题目 low_energy_crypto
      • 获取私钥
      • 解密
    • 题目 蓝牙钥匙的春天
      • 配对过程
      • 配对方法
      • 密钥分发
      • 数据加密
      • 安全漏洞和保护
      • 实际应用
      • 实际应用

蓝牙安全入门

🚀🚀最近一直对车联网比较感兴趣,但是面试官说我有些技术栈缺失,所以还得狠狠补,先从蓝牙开始吧,因为刚好有道CTF的题目可以复现一下。

参考资料:

蓝牙CTF题目汇总 (yuque.com) 所有的文件都在大佬的网页里面,需要的可以自己去下载。

CTFtime.org / Cyber Apocalypse 2021 / Low Energy Crypto / Writeup 因为有一步有点问题,所以后面按照这个大佬的步骤来的。

题目 low_energy_crypto

🚀🚀首先题目打开是这样子的(如果显示不全,那就是版本问题,我终于换掉了我老掉牙的wireshark :happy:):

在这里插入图片描述

获取私钥

🚀🚀我们很容易就能看到有些Tx和Rx数据,而且看到了UART,这个主要是用来通信和传递数据的,所以我们就打开看一眼传输的内容:

在这里插入图片描述

🚀🚀我们能看到类似于公钥的东西,我们先提取出来,这里是有两部分:

-----BEGIN PUBLIC KEY-----
MGowDQYJKoZIhvcNAQEBBQADWQAwVgJBAKKPHxnmkWVC4fje7KMbWZf07zR10D0m
B9fjj4tlGkPOW+f8JGzgYJRWboekcnZfiQrLRhA3REn1lUKkRAnUqAkCEQDL/3Li
4l+RI2g0FqJvf3ff
-----END PUBLIC KEY-----

🚀🚀这个地方可以使用RsaCtfTool.py来解密,但是我没成功,运行的时候有问题,就想着换一种办法,如下所示,我们先恢复私钥:

openssl rsa -in ../pub.key -text -inform PEM -pubin# Public-Key: (512 bit)
# Modulus:
#     00:a2:8f:1f:19:e6:91:65:42:e1:f8:de:ec:a3:1b:
#     59:97:f4:ef:34:75:d0:3d:26:07:d7:e3:8f:8b:65:
#     1a:43:ce:5b:e7:fc:24:6c:e0:60:94:56:6e:87:a4:
#     72:76:5f:89:0a:cb:46:10:37:44:49:f5:95:42:a4:
#     44:09:d4:a8:09
# Exponent:
#     00:cb:ff:72:e2:e2:5f:91:23:68:34:16:a2:6f:7f:
#     77:df
# writing RSA key
# -----BEGIN PUBLIC KEY-----
# MGowDQYJKoZIhvcNAQEBBQADWQAwVgJBAKKPHxnmkWVC4fje7KMbWZf07zR10D0m
# B9fjj4tlGkPOW+f8JGzgYJRWboekcnZfiQrLRhA3REn1lUKkRAnUqAkCEQDL/3Li
# 4l+RI2g0FqJvf3ff
# -----END PUBLIC KEY-----

🚀🚀输出如上所示,然后我们把十六进制转为十进制,使用的脚本如下所示:

hex_string = """
00:a2:8f:1f:19:e6:91:65:42:e1:f8:de:ec:a3:1b:
59:97:f4:ef:34:75:d0:3d:26:07:d7:e3:8f:8b:65:
1a:43:ce:5b:e7:fc:24:6c:e0:60:94:56:6e:87:a4:
72:76:5f:89:0a:cb:46:10:37:44:49:f5:95:42:a4:
44:09:d4:a8:09
"""# 移除换行符和冒号
hex_string_clean = hex_string.replace("\n", "").replace(":", "")# 将整个十六进制字符串转换为整数
int_value = int(hex_string_clean, 16)# 打印结果
print(f"Hex: {hex_string_clean} -> Int: {int_value}")

🚀🚀然后我们就得到了n和e,使用在线网站(http://factordb.com/index.php)来获得q,p,结果如下所示:

p = 92270847179792937622745249326651258492889546364106258880217519938223418249279q = 92270847179792937622745249326651258492889546364106258880217519938223418258871e = 271159649013582993327688821275872950239

🚀🚀然后下载这个py文件(rsatool/rsatool.py at master · ius/rsatool (github.com)),使用如下命令,可能会缺少库,自己安装一下就好了:

python rsatool.py -p 92270847179792937622745249326651258492889546364106258880217519938223418249279 -q 92270847179792937622745249326651258492889546364106258880217519938223418258871 -e 271159649013582993327688821275872950239 -o priv.key

🚀🚀结果如下所示,我们就获得了私钥:

-----BEGIN RSA PRIVATE KEY-----
MIIBRwIBAAJBAKKPHxnmkWVC4fje7KMbWZf07zR10D0mB9fjj4tlGkPOW+f8JGzg
YJRWboekcnZfiQrLRhA3REn1lUKkRAnUqAkCEQDL/3Li4l+RI2g0FqJvf3ffAkBY
f1ugn3b6H1bdtLy+J6LCgPH+K1E0clPrprjPjFO1pPUkxafxs8OysMDdT5VBx7dZ
RSLx7cCfTVWRTKSjwYKPAiEAy/9y4uJfkSNoNBaib393y3GZu+QkufE43A3BMLPC
ED8CIQDL/3Li4l+RI2g0FqJvf3fLcZm75CS58TjcDcEws8I1twIgJXpkF+inPgZE
TjVKdec6UGg75ZwW3WTPEoVANux3DscCIDjx+RSYECVaraeGG2O/v8iKe6dn1GpM
VGUuaKecISArAiA0QRYkZFB5D4BnOxGkMX3ihjn7NFPQ7+Jk/abWRRq6+w==
-----END RSA PRIVATE KEY-----

解密

🚀🚀之后解密一下传输的加密内容就好了,加密内容如下所示:

在这里插入图片描述

🚀🚀提取出来把后面多余的0删除,便可以解密了,使用命令如下所示:

openssl rsautl -decrypt -raw -inkey priv.key -in flag

🚀🚀结果如下所示:

The command rsautl was deprecated in version 3.0. Use 'pkeyutl' instead.
�5������p+wɹ�[R�.;����^�bs� �6yflag{5cf7b-9f8f1e-688-9f80f}

🚀🚀最后我们就拿到了我们的flag{5cf7b-9f8f1e-688-9f80f}

题目 蓝牙钥匙的春天

🚀🚀这个比较简单,所以只是介绍一下SMP协议:

🚀🚀蓝牙中的安全管理协议(Security Manager Protocol,SMP)是负责蓝牙设备间的配对和加密的协议。SMP在蓝牙低功耗(Bluetooth Low Energy, BLE)和经典蓝牙(Bluetooth Classic)中有所不同,但它们的主要功能是相似的。下面是对蓝牙低功耗中的SMP协议的详细介绍:

配对过程

🚀🚀SMP的主要功能之一是处理设备间的配对过程。配对过程的主要目的是建立一个安全的连接,确保数据传输的机密性和完整性。配对过程通常包括以下步骤:

  • 配对特征交换:设备交换配对请求和响应,以决定使用的安全功能和认证方法。
  • 生成和交换临时密钥(Temporary Key, TK):设备生成一个临时密钥,用于保护接下来的密钥交换过程。
  • 生成和交换短期密钥(Short Term Key, STK):使用临时密钥生成短期密钥,短期密钥用于初次加密连接。
  • 生成和交换长期密钥(Long Term Key, LTK):生成长期密钥,用于加密以后的连接。

配对方法

🚀🚀SMP支持多种配对方法,每种方法提供不同级别的安全性:

  • Just Works:无需用户输入,用于低安全需求的场景。
  • Passkey Entry:一方输入另一方显示的6位数密码,用于中等安全需求。
  • Numeric Comparison:双方显示一个6位数并进行比较,用于高安全需求。
  • Out of Band (OOB):使用蓝牙之外的通信渠道(如NFC)交换配对信息,用于最高安全需求。

密钥分发

🚀🚀在配对过程中,设备之间会分发各种密钥,用于加密和身份验证:

  • 长期密钥(LTK):用于加密数据。
  • 连接签名密钥(CSRK):用于数据签名,确保数据完整性。
  • 身份信息(IRK):用于设备身份验证和隐私保护。

数据加密

🚀🚀配对完成后,SMP使用生成的密钥对数据进行加密。蓝牙低功耗使用AES-CCM(Counter with CBC-MAC)算法进行加密,确保数据的机密性和完整性。

安全漏洞和保护

🚀🚀虽然SMP提供了强大的安全功能,但它也可能受到各种攻击,如中间人攻击(MITM)和旁路攻击。为了提高安全性,建议:

  • 使用高安全级别的配对方法。
  • 经常更新设备固件以修补已知的安全漏洞。
  • 在设计蓝牙应用时考虑使用额外的加密和认证机制。

实际应用

🚀🚀SMP广泛应用于需要安全数据传输的蓝牙设备,如智能手表、健身追踪器、无线耳机和医疗设备。通过确保设备间的安全配对和数据加密,SMP在保护用户隐私和数据安全方面起到了重要作用。

  • 使用高安全级别的配对方法。
  • 经常更新设备固件以修补已知的安全漏洞。
  • 在设计蓝牙应用时考虑使用额外的加密和认证机制。

实际应用

🚀🚀SMP广泛应用于需要安全数据传输的蓝牙设备,如智能手表、健身追踪器、无线耳机和医疗设备。通过确保设备间的安全配对和数据加密,SMP在保护用户隐私和数据安全方面起到了重要作用。

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

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

相关文章

CleanMyMac2024最新免费电脑Mac系统优化工具

大家好,我是你们的好朋友——软件评测专家,同时也是一名技术博主。今天我要给大家种草一个超级实用的Mac优化工具——CleanMyMac! 作为一个长期使用macOS的用户,我深知系统运行时间长了,缓存文件、日志、临时文件等都会…

【数据结构与算法 经典例题】括号匹配问题

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《数据结构与算法 经典例题》C语言 期待您的关注 ​​ 目录 一、问题描述 二、解题思路 🍃破解之道 🍃…

【C#线程设计】3:threadpool

实现: (1).控件:group Box,text Box,check Box,label,botton,richtextbox 控件拉取见:https://blog.csdn.net/m0_74749240/article/details/139409510?spm1…

全球AI速递6.11

1.快手:发布“可灵”视频生成大模型。 2.OPPO:计划让约 5 千万用户的手机搭载生成式 AI。 3.腾讯:发布了针对混元文生图开源大模型(混元DiT)加速库。 4.Stability AI:开源Stable Audio Open AI 模型&am…

重新认识Word —— 制作简历

重新认识Word —— 制作简历 PPT的图形减除功能word中的设置调整页边距进行排版表格使用 我们之前把word长排版文本梳理了一遍,其实word还有另外的功能,比如说——制作简历。 在这之前,我们先讲一个小技巧: PPT的图形减除功能 …

重学Spring总结

1、Spring框架的诞生 文章目录 1、Spring框架的诞生1、BeanFactory 快速入门1.1、BeanFactory完成了loC思想的实现:1)导入Spring相关的依赖:2)定义Uservice接口及其UserviceImpl实现类;3)创建Bean的配置资源文件,文件名最好为&…

Windows 服务器Nginx 下载、部署、配置流程(图文教程)

不定期更新 目录 一、下载Nginx安装包 二、上传安装包 三、启动Nginx 四、Nginx常用命令 五、Nginx(最小)配置详解 六、Nginx(基础)配置详解 七、反向代理 八、负载均衡 九、动静分离 十、报错 一、下载Nginx安装包 四…

vue29:普通组件的注册使用

<template><div class"App"><!-- 头部组件 --><HmHeader></HmHeader><!-- 主体组件 --><HmMain></HmMain><!-- 底部组件 --><HmFooter></HmFooter><!-- 如果 HmFooter tab 出不来 → 需要配置…

通过技术优化财务规划报告,重塑企业体验

财务报告使企业的管理层能够及时、准确、清晰且一致地了解整个企业的财务业绩和风险机遇。它促进了企业内部利益相关者之间的沟通&#xff0c;从而支持基于数据驱动的洞察力提升和战略决策。但财务报告往往需要占用大量的时间来运行和准备&#xff0c;且可能使最终结论偏离核心…

腾讯云大数据ES Serverless

Elasticsearch&#xff1a;日志和搜索场景首选解决方案。 技术特点&#xff1a;分布式、全文搜索和数据分析引擎&#xff0c;可以对海量数据进行准实时地存储、搜索和统计分析。 ES的技术栈一共包含四个组件&#xff1a; 其中最核心的是Elasticsearch&#xff0c;可用于数据…

LVGL移植和图片显示

最近闲来无事&#xff0c;偶尔刷到了移植LVGL的教程&#xff0c;今天肝完了机械原理又移植完LVGL库&#xff0c;真是收获满满的一天&#xff0c;先接一杯水去。 回来了&#xff0c;发个朋友圈高级一下&#xff0c;好困。 lvgl v8.3移植及组件使用_lvgl界面编辑器-CSDN博客htt…

RAG:如何从0到1搭建一个RAG应用

通过本文你可以了解到&#xff1a; 什么是RAG&#xff1f;如何搭建一个RAG应用&#xff1f;目前开源的RAG应用有哪些&#xff1f; 大模型学习参考&#xff1a; 1.大模型学习资料整理&#xff1a;大模型学习资料整理&#xff1a;如何从0到1学习大模型&#xff0c;搭建个人或企业…

手机连接ESP8266的WIFI,进入内置网页,输入要显示的内容,在OLED显示屏上显示文本

在这篇技术博客中&#xff0c;我们将探讨如何使用ESP8266 Wi-Fi 模块和SSD1306 OLED显示屏&#xff0c;构建一个简易的信息显示和交互系统。此系统能够让用户通过一个简单的Web界面输入信息&#xff0c;并将其显示在OLED屏幕上。这种设备的应用非常广泛&#xff0c;可以用于智能…

vue实现pdf下载——html2canvas

html2canvas 官方文档https://html2canvas.hertzen.com/getting-started html2canvas 的原理是通过遍历DOM树,将每一个HTML元素转化为Canvas对象,并叠加到一起形成一张完整的图片或者PDF文件。 1. 安装插件 npm install html2canvas jspdf --save 2.使用&#xff08;页面已经…

Leetcode刷题笔记9

1. 两数之和 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 解法一&#xff1a;暴力枚举 没什么好说的&#xff0c;直接使用两个for循环&#xff0c;i从第一个元素开始&#xff0c;j从第二个元素开始遍历并寻找 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a…

4_机械臂位姿求逆理论及代码计算

1、aubo arcs sdk poseInverse 使用例子 auto cur_pose rpc_cli->getRobotInterface(robot_name)->getRobotState()->getTcpPose();// 2.288083 0.035207 1.550335auto pose_inv rpc_cli->getMath()->poseInverse(cur_pose);//结果&#xff1a;0.118611 -0.57…

blender

通用设置&#xff1a; 仅显示/取消隐藏&#xff1a;数字键盘/ 移动视角&#xff1a;shift鼠标中键 Blender如何给场景添加参考图片-百度经验 (baidu.com) 进入编辑模式&#xff1a;Tab 编辑模式&#xff1a;点-线-面 两个视图 法向显示&#xff1a;就能变成恶心的蓝红色 显…

自动驾驶---Perception之视觉点云雷达点云

1 前言 在自动驾驶领域&#xff0c;点云技术的发展历程可以追溯到自动驾驶技术的早期阶段&#xff0c;特别是在环境感知和地图构建方面。 在自动驾驶技术的早期技术研究中&#xff0c;视觉点云和和雷达点云都有出现。20世纪60年代&#xff0c;美国MIT的Roberts从2D图像中提取3D…

解锁ChatGPT:从GPT-2实践入手解密ChatGPT

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

LabVIEW开发实验室超导体电流特性测试系统

本系统旨在为学校实验室提供一个基于LabVIEW的超导体电流特性测试平台&#xff0c;通过精确测量超导体在不同温度和电流条件下的电学特性&#xff0c;帮助学生和研究人员深入理解超导体的物理性质。本文将从背景、目标、工作原理、使用方法、操作流程和注意事项等方面详细介绍该…