# 基于自动机学习的蓝牙设备指纹识别与分析

> 通过主动自动机学习，为实体外设上的低功耗蓝牙（BLE）协议实现推断 Mealy 状态机模型。运行 SweynTooth 衍生固件的 nRF52840 中心设备发送抽象 BLE 输入，并以错误处理、重复查询和缓存应对丢包与不确定的响应。作者学习了六款设备的连接过程模型和其中三款的传统配对（legacy pairing）模型，并利用模型差异识别各设备的 SoC。

- 作者：Andrea Pferscher; Bernhard K. Aichernig
- 原标题：Fingerprinting and analysis of Bluetooth devices with automata learning
- 发表载体：Formal Methods in System Design
- 发表状态：期刊论文
- 出版／提交日期：2022 年 8 月
- 日期依据：Springer 向 Crossref 提交的元数据及文章页面将第 61 卷第 1 期的刊期标为 2022 年 8 月，本目录采用月份精度；2023 年 5 月 22 日的在线出版日期另在元数据说明中记录。
- arXiv 首次提交：2022 年 11 月 29 日
- arXiv：2211.16074
- 已复核的 arXiv 版本：v2
- DOI：10.1007/s10703-023-00425-y
- 来源复核于：2026-10-17
- 收录于：2026-10-17
- 原始论文：<https://doi.org/10.1007/s10703-023-00425-y>
- PDF：<https://arxiv.org/pdf/2211.16074v2>
- 代码：<https://github.com/apferscher/ble-learning>
- BibTeX：<https://awesomerea.org/papers/citations/paper-ble-automata-learning.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-ble-automata-learning/>
- 记录 JSON：<https://awesomerea.org/papers/paper-ble-automata-learning/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-ble-automata-learning/index.md)

## 研究范围与局限

模型受所选抽象输入字母表限制，仅覆盖连接过程和传统配对；不推断报文格式，安全配对留待后续研究。等价性仅以每个状态少量的一致性测试近似检验，因此模型只是假设而非证明。其中一款 SoC 只能缩减输入字母表后学习，两款设备从已建立连接的状态开始学习，部分配对实验还需人工硬重置设备。所得指纹识别序列仅适用于受测 SoC。除一条会导致设备崩溃的输入序列外，作者未在学习所得模型中发现安全漏洞。

## 与本合集的关联

通过与真实设备的黑盒交互重建封闭 BLE 实现的协议状态行为，展示学习所得的状态机如何揭示不同实现之间的差异及其与规范的偏离。

## 发表与复核说明

发表于 Formal Methods in System Design 第 61 卷第 1 期，35–62 页，于 2023 年 5 月 22 日在线出版，为 CC BY 4.0 开放获取论文。本文是作者 FM 2021 论文“Fingerprinting Bluetooth Low Energy Devices via Active Automata Learning”（LNCS 13047，524–542 页，DOI 10.1007/978-3-030-90870-6_28）的扩展版。AALpy 应用列表链接的 ble-learning README 将本文称为“Identification and Analysis of Bluetooth Devices via Automata Learning”，与正式标题不同。Springer 的 PDF 无法自动获取，因此核查的是出版方全文页面和 arXiv v2（作者接收稿）。研究使用 Python 3.9.0、AALpy 1.0.1 和修改版 Scapy 2.4.4；固定在 2025 年提交的仓库目前要求 aalpy>=1.1.7 和 scapy>=2.4.5。运行需要一块刷入仓库所附 SweynTooth 衍生固件的 nRF52840 Dongle 或开发板，配对实验另需 Linux 及 SweynTooth 基于 BlueZ 的安全管理器（Security Manager）模块。仓库没有许可证文件。

## 一手来源

1. <https://doi.org/10.1007/s10703-023-00425-y>
2. <https://api.crossref.org/works/10.1007/s10703-023-00425-y>
3. <https://link.springer.com/article/10.1007/s10703-023-00425-y>
4. <https://arxiv.org/abs/2211.16074>
5. <https://arxiv.org/pdf/2211.16074v2>
6. <https://api.crossref.org/works/10.1007/978-3-030-90870-6_28>
7. <https://github.com/apferscher/ble-learning/blob/febd774109c41a6635659b8847cc766e667841dd/README.md>
8. <https://github.com/apferscher/ble-learning/blob/febd774109c41a6635659b8847cc766e667841dd/requirements.txt>
9. <https://github.com/DES-Lab/AALpy/blob/335c50a1b4b5a830d788f86b7c30a8cb6c73ecc0/README.md>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
