Как я могу найти ключ связи Bluetooth для сопряженного устройства в Windows 7? Является ли это чем-то, что зависит от используемого мной стека Bluetooth (Toshiba), или есть общее место для их хранения в Windows 7?
Примечание: я не говорю о шестизначном коде, обычно вводимом пользователем во время сопряжения - это бесполезно, так как он отбрасывается после процесса сопряжения. Я имею в виду 128-битный ключ связи, который устройства обмениваются во время сопряжения, а затем используют для шифрования всего своего трафика Bluetooth.
Фон:
Я запускаю Windows 7 / Ubuntu на своем ноутбуке и хочу, чтобы мой телефон был подключен к обеим ОС. Поскольку на компьютере с двойной загрузкой имеется только один адаптер Bluetooth и, следовательно, только один адрес Bluetooth, я не могу выполнить две пары с телефоном, так как при второй связи (Windows) телефон просто заменяет предыдущую пару (Linux) на тот же адрес Bluetooth.
Поток на форумах 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 (с двоеточиями или без них).
Так как же найти ключ ссылки для сопряженного устройства в Windows 7?
Некоторая справочная информация: Википедия: Bluetooth, Безопасность сейчас: Безопасность Bluetooth