Localizando a chave de link Bluetooth no Windows 7, para emparelhar um dispositivo em um computador com inicialização dupla

12

Como posso desenterrar a tecla de conexão Bluetooth de um dispositivo emparelhado no Windows 7? Isso depende da pilha Bluetooth que estou usando (Toshiba) ou existe um local genérico para armazená-las no Windows 7?

Nota: não estou falando sobre o código de seis dígitos normalmente digitado pelo usuário durante o emparelhamento - isso é inútil, pois é descartado após o processo de emparelhamento. O que quero dizer é a chave de link de 128 bits que os dispositivos trocam durante o emparelhamento e que são usados ​​posteriormente para criptografar todo o tráfego do Bluetooth.

Fundo:

Eu dualboot Windows 7 / Ubuntu no meu laptop, e eu gostaria de ter o meu telefone emparelhado com os dois sistemas operacionais. Como o computador de inicialização dupla possui apenas um adaptador Bluetooth e, portanto, apenas um endereço Bluetooth, não posso fazer dois emparelhamentos no telefone, pois no segundo emparelhamento (Windows) o telefone apenas substitui o emparelhamento anterior (Linux) pelo mesmo endereço Bluetooth.

Uma discussão nos fóruns do Ubuntu me indicou o que eu devo fazer - emparelhar primeiro no Linux, depois no Windows e depois substituir a chave de link no lado Linux pela que o Windows negociou.

Posso encontrar a chave de emparelhamento do lado do Linux /var/lib/Bluetooth/[BD_ADDR]/linkkeys- sem problemas.

No entanto, no lado do Windows, não consigo encontrar a chave. De acordo com o post no fórum, no lado do Windows a chave deve estar em SYSTEM\ControlSet002\services\BTHPORT\Parameters\Keys\[BD_ADDR]mas enquanto essa chave Registro faz existir, ele não tem subchaves. (E um caminho de registro semelhante no ControlSet001 também não tinha subchaves.)

Uma coisa que eu fui instruído a fazer é capturar todos os eventos durante o pareamento com o Sysinternals Process Monitor . Fiz isso, mas não consegui encontrar nenhuma informação útil dos eventos capturados, nem exportando os dados para um XML enorme e cumprimentando-o com os BD_ADDRs (com ou sem dois pontos).

Então, como eu poderia encontrar a chave de link para um dispositivo emparelhado no Windows 7?

Algumas informações de referência: Wikipedia: Bluetooth , Segurança agora: segurança Bluetooth

Ilari Kajaste
fonte

Respostas:

7

A chave do registro que você deve usar é:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys.

No meu computador, ele se recusou a me deixar acessar essa chave. Eu tive que mudar o proprietário para Administradores antes que eu pudesse ver a subchave.

Se você estiver usando a pilha Bluetooth da Toshiba, suas chaves serão armazenadas em outro lugar. Pode-se encontrar onde, ou simplesmente retornar à pilha da Microsoft. No caso posterior, as chaves Bluetooth serão armazenadas no registro como acima.

Esta discussão descreve o processo:

  1. Desinstale o Toshiba Bluetooth (Adicionar / remover programas),
  2. Reiniciar,
  3. O Windows agora deve detectar o "novo" dispositivo Bluetooth e instalar seus próprios drivers para ele.

Cuidado: Crie um ponto de restauração do sistema primeiro e verifique se você possui a mídia de instalação do driver Toshiba para voltar (apenas no caso). Teste bem a funcionalidade do telefone emparelhado antes de gritar vitória.

harrymc
fonte
Mudei o proprietário para Administrador, que me permitiu acessar essa chave, mas infelizmente ela não contém subchaves.
Ilari Kajaste
Você fez isso enquanto emparelhado?
harrymc
Sim, eu tenho e tive o telefone (mais dois outros dispositivos) emparelhados com o Windows. Eu não estava conectado a nenhum deles na época - acho que isso não importava, já que a chave precisa ser armazenada em qualquer caso.
Ilari Kajaste
1
Estou certo de que a Toshiba não usaria entradas de registro da Microsoft. Você pode voltar para a pilha da Microsoft?
harrymc
1
Este tópico diz: 1. Desinstale o Toshiba Bluetooth (Adicionar / Remover Programas), 2. Reinicialize, 3. O Windows deve agora detectar o "novo" dispositivo Bluetooth e instalar seus próprios drivers para ele. Crie um ponto de restauração do sistema primeiro e verifique se você possui a mídia de instalação do driver Toshiba (no caso). Se isso funcionar, teste bem apenas a funcionalidade do telefone emparelhado que você realmente usa.
harrymc
5

As chaves não estão visíveis para o administrador, você deve abrir o registro como a conta do sistema:

Isso é para o Windows 7 em um ThinkPad com adaptador thinkpad bluetooth 4.0, mas pode funcionar com outros sistemas Windows

Faça o download do PsExec: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

Descompacte-o em c: \ portable \ pstools \ open cmd clique em Iniciar, digite cmd, pressione Enter, dentro da janela em preto e branco.

c:\portable\pstools\psexec -s -i regedit

abre o regedit, navegue para: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\

lá você encontrará o endereço MAC de todos os seus adaptadores bluetooth e, em cada adaptador, estão todos os endereços MAC dos dispositivos emparelhados com suas teclas de link.

para descobrir o endereço MAC do seu adaptador:

bluetooth settings> Hardware > ThinkPad Bluetooth 4.0 > Properties > Advanced > Address

para descobrir o endereço mac do seu dispositivo (teclado / mouse):

Control Panel > Hardware and Sound > Devices and Printers > right click your device > Properties > Bluetooth > Unique Identifier 
thezeroth
fonte
Do @Cristian: usei o método descrito pelo thezeroth na minha máquina de inicialização dupla do Xubuntu 15.10 / Windows 8 e funciona como um encanto. A única coisa é que no Xubuntu a chave de emparelhamento não estava no arquivo mencionado, mas em um arquivo chamado Info dentro de uma subpasta nomeada após o identificador exclusivo do mouse (um logitech M535). Fora isso, solução perfeita.
fixer1234
3

Eu tinha exatamente o mesmo problema, então encontrei este post e agora quero compartilhar minha experiência. Se você possui um smartphone Android, essa tarefa pode ser muito mais fácil, pois o linkkey de emparelhamento deve estar presente nos dois dispositivos.

A ferramenta mais útil é o ADB do Android SDK.

Vamos supor que o telefone tenha endereço XX ^ 6 e PC - YY ^ 6

$ adb shell
~ # find|grep linkkeys
~ # ./data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/linkkeys
~ # cat ./data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/linkkeys
YY:YY:YY:YY:YY:YY 393FCA48F0DB57AA4D59F423E4EA60D5 5 -1
~ #

Assim, você pode simplesmente escolher a chave desse arquivo e colocá-la em um arquivo semelhante no seu PC:

pc $ sudo -s
pc # cat /var/lib/bluetooth/YY:YY:YY:YY:YY:YY/linkkeys
XX:XX:XX:XX:XX:XX 393FCA48F0DB57AA4D59F423E4EA60D5 5 0

Dessa maneira, parece ser mais fácil, pois o Linux e o Android geralmente usam a mesma pilha bluetooth do bluez.

Ainda assim, se você pessoalmente despreza essa técnica, há outra maneira de obter a chave no registro do Windows, desde que sejam usados ​​drivers padrão do Windows. Eu recebi a caixa de diálogo de mensagem de segurança, então usei o utilitário linux nativo "chntpw", que permite redefinir a senha ou editar o arquivo de registro do Windows. O arquivo solicitado foi "windows \ system32 \ config \ SYSTEM".

Aqui vai:

$ chntpw -e SYSTEM
blah-blah-blah
> cd ControlSet001\services\BTHPORT\Parameters\Keys\yyyyyyyyyyyy
(...)\BTHPORT\Parameters\Keys\5cac4c10c4f1> ls
Node has 0 subkeys and 1 values
  size     type            value name             [value if type DWORD]
     16  REG_BINARY        <xxxxxxxxxxxx>

(...)\BTHPORT\Parameters\Keys\5cac4c10c4f1> hex xxxxxxxxxxxx
Value <xxxxxxxxxxxx> of type REG_BINARY, data length 16 [0x10]
:00000  39 3F CA 48 F0 DB 57 AA 4D 59 F4 23 E4 EA 60 D5 9?.H..W.MY.#..`.

Como você pode ver, são exatamente os mesmos números dos arquivos acima. Espero que ajude as gerações futuras.

Guardião do espírito
fonte
O seu dispositivo está enraizado / o BusyBox está instalado? O comando "localizar" falhou.
0

Para referência, na pilha Bluetooth da Microsoft, as teclas de link estão localizadas em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys\aabbccddeeffonde aabbccddeeff é seu adaptador Bluetooth. Como o adaptador já está instalado, essa chave deve existir.

Nessa chave, você pode ter vários valores REG_BINARY, em que o nome do valor é o endereço MAC do dispositivo emparelhado (na mesma forma - hex, minúsculas, sem separadores) e o valor é a chave do link (16 bytes).

Para pegar as teclas de link do OS X, execute (no OSX Terminal) defaults read /private/var/root/Library/Preferences/blued.plist. Nas LinkKeys, você deve ter uma chave de link por endereço MAC de um dispositivo emparelhado. As chaves são codificadas em base64, assim como: echo -n 'aabbcc...==' | base64 -d | hexdump -Ce digite essa chave no registro do Windows.

Ilya
fonte
-1

PsExec.exe -s -i regedit / E% cd% \ btkeys_export.txt "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ BTHPORT \ Parameters \ Keys"

mantenha simples
fonte
Bem-vindo ao Super Usuário! Você poderia elaborar isso? Talvez edite sua resposta para explicar o que está descrevendo e por que está fazendo essa sugestão. Obrigado!
bertieb