Как я могу найти ключ связи 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
источник
Ключи не видны администратору, вы должны открыть реестр как системную учетную запись:
Это для Windows 7 на ThinkPad с адаптером ThinkPad Bluetooth 4.0, но может работать с другими системами Windows
Загрузите PsExec: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Распакуйте его в c: \ portable \ pstools \ open cmd, нажмите «Пуск», введите «cmd», нажмите enter, внутри черно-белого окна:
regedit открывается, перейдите к:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\
там вы найдете MAC-адрес всех ваших bluetooth-адаптеров, а под каждым адаптером - MAC-адреса всех сопряженных устройств с их ссылочными ключами.
чтобы определить MAC-адрес вашего адаптера:
Чтобы определить Mac-адрес вашего устройства (клавиатуры / мыши):
источник
У меня была точно такая же проблема, поэтому я нашел этот пост и теперь хочу поделиться своим опытом. Если у вас есть Android-смартфон, эта задача может быть гораздо проще, так как связывание Linkkey должно присутствовать на обоих ваших устройствах.
Наиболее полезным инструментом является ADB от Android SDK.
Предположим, у телефона есть адрес XX ^ 6, а у ПК - YY ^ 6
Таким образом, вы можете просто выбрать ключ из этого файла и поместить его в аналогичный файл на вашем ПК:
Этот способ кажется наиболее простым, поскольку в Linux и Android обычно используется один и тот же стек bluez.
Тем не менее, если вы лично презираете такую технику, есть другой способ получить ключ из реестра Windows, если используются стандартные драйверы Windows. Я получил это диалоговое окно с сообщением о безопасности, поэтому я использовал "chntpw" нативную утилиту linux, которая позволяет сбросить пароль или отредактировать файл реестра Windows. Требуемый файл был "windows \ system32 \ config \ SYSTEM".
Здесь это идет:
Как видите, это те же цифры, что и в файлах выше. Надеюсь, это поможет будущим поколениям.
источник
Для справки: в стеке Microsoft Bluetooth ключи ссылок находятся
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\aabbccddeeff
там, где aabbccddeeff - это ваш адаптер Bluetooth. Поскольку адаптер уже установлен, этот ключ должен существовать.В этом ключе вы можете иметь несколько значений REG_BINARY, где имя значения - это MAC-адрес сопряженного устройства (в той же форме - шестнадцатеричный, нижний регистр, без разделителей), а значение - ключ ссылки (16 байт).
Чтобы получить ключи ссылки из OS X, выполните (в терминале OSX)
defaults read /private/var/root/Library/Preferences/blued.plist
. В LinkKeys у вас должен быть ключ связи на MAC-адрес сопряженного устройства. Ключи в кодировке base64, поэтому сделайте так:echo -n 'aabbcc...==' | base64 -d | hexdump -C
и введите этот ключ в реестр Windows.источник
PsExec.exe -s -i regedit / E% cd% \ btkeys_export.txt "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ BTHPORT \ Parameters \ Keys"
источник