如何在Windows 7中为配对设备挖掘蓝牙链接密钥?这是否取决于我使用的(Toshiba)蓝牙堆栈,还是在Windows 7中有通用的存储位置?
注意:我不是在谈论用户在配对过程中通常键入的六位数代码-这是毫无用处的,因为在配对过程后会丢弃该代码。我的意思是设备在配对期间交换的128位链接密钥,此后用于加密所有蓝牙流量。
背景:
我在笔记本电脑上双启动Windows 7 / Ubuntu,并且希望将手机与两个操作系统都配对。由于双启动计算机只有一个蓝牙适配器,因此只有一个蓝牙地址,因此我无法与手机进行两次配对,因为在第二次配对(Windows)上,手机仅将先前的配对(Linux)替换为相同的蓝牙地址。
Ubuntu论坛上的一个线程向我指出了我必须做的事情-首先在Linux上配对,然后在Windows上配对,然后在Linux端将链接密钥替换为协商的Windows。
我可以从中找到Linux端配对密钥/var/lib/Bluetooth/[BD_ADDR]/linkkeys
-那里没有问题。
但是,在Windows端,我找不到密钥。根据论坛帖子,在Windows端SYSTEM\ControlSet002\services\BTHPORT\Parameters\Keys\[BD_ADDR]
,该注册表项应位于其中,但是该注册表项确实存在,但没有子项。(并且ControlSet001中的类似注册表路径也没有任何子项。)
我被指示要做的一件事是在与Sysinternals Process Monitor配对期间捕获所有事件。我这样做了,但是我无法从捕获的事件中找到任何有用的信息,甚至没有将数据导出到巨大的XML并使用BD_ADDR(带有或不带有冒号)将其grep的情况。
那么,如何在Windows 7中找到配对设备的链接密钥?
一些参考信息:Wikipedia:蓝牙,现在的安全性:蓝牙安全性