0

我们正在使用来自通用供应商的基于 USB 的加密狗在 iMx6 平台上测试 WEC2013 中的蓝牙。我们使用 WEC2013 BSP 提供的默认 HCI 传输层。

BT 已打开并能够扫描附近的所有设备。

我们启用了以下一组 sysgen 变量和注册表项。

系统变量:

SYSGEN_BTH (Bluetooth stack with universal loadable driver)
SYSGEN_BTH_BTHUTIL (Bluetooth Profile Management APIs)
SYSGEN_BTH_HID_KEYBOARD (Bluetooth HID - Keyboard)
SYSGEN_BTH_HID_MOUSE (Bluetooth HID - Mouse)
SYSGEN_BTH_AG (Bluetooth HS/HF and Audio gateway service)
SYSGEN_BTH_SETTINGS (Bluetooth settings UI)
SYSGEN_OBEX_CLIENT (Obex client)
SYSGEN_OBEX_SERVER (Obex server)
SYSGEN_OBEX_FILEBROWSER (OBEX file browser)
SYSGEN_OBEX_INBOX (OBEX Inbox)
SYSGEN_FTPD (FTP server)
SYSGEN_BTH_BTHSSVC(Support Secure Simple Pairing)

注册表项:

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\224_1_1\Default\Bluetooth_USB_Driver]
  "DLL"="bthusb.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\224_1_1\Bluetooth_USB_Driver]
  "DLL"="bthusb.dll"

[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\Transports\PnP\{B3DD867A-1E6E-4215-8AA7-EAC1DFC46548}]
"flags"=dword:80000000
"driver"="bthusb.dll"
"resetdelay"=dword:0
"PacketSize"=dword:200
"BlockSize"=dword:5

[HKEY_LOCAL_MACHINE\ControlPanel\Bluetooth]
"PinAttemptInterval"=dword:200000
"PinEntries"=multi_sz:"0000","8888"

我们观察到与设备配对的不同场景。

  1. 从板连接到手机(imx6+usb dongle 运行 WEC2013) 当通过 bthsettings UI 启动配对时,配对成功。它将触发两侧的 6 位自动密钥。

  2. 在不打开 bthsettings UI 的情况下从移动设备连接到电路板。这里配对成功一次。当 UI 未打开时(BT 在后台打开),从手机启动配对,两者都将使用自动 6 位密钥方法配对。但这会在内部调用 bthsettings UI,所以下次我们从手机进行配对时,手机端会要求手动插入密钥。只要在手机上输入键并按下配对,手机端就会出现配对拒绝通知。所以在这种情况下配对失败。

  3. 打开 bthsettings 时从手机连接到棋盘。这里配对失败。手机发起配对时,会调用手动插键界面,插键并按下配对时,手机端会提示配对失败,配对失败。

在这些失败的场景中,上层正在响应来自芯片的“Pin code request event”的“Pin code requestnegative reply command”。

我们需要有关此配对过程的输入。为什么会根据 UI 是否打开来调用自动密钥和手动密钥生成方法?为什么手动钥匙盒失败了?

我们是否缺少任何注册表项或堆栈功能?

4

1 回答 1

1

这一切都与 SSP(安全简单配对)有关,它决定了配对身份验证模型。这会通过 bthsettings 下的更改在 WEC8(2013) 中受到影响。

在 WEC8 下,只要从外部设备启动连接,它们就会禁用 SSP(通过函数 EnbaleSSP()),并在内部启动连接时启用回 SSP。虽然这是逻辑,但我不知道为什么要引入它(这是一个错误,将在即将到来的更新中修复,就像他们最初为 NDIS 5 无线驱动程序连接所做的那样)。

作为解决此问题的方法,禁用 EnableSSP()。

SYSGEN_BTH_SETTINGS 组件也隐含需要 SYSGEN_BTH_BTHSSVC,并且链接在 WEC8 下断开。

Microsoft 已在 2015 年 4 月更新中提供了此修复程序。可在此处获取详细信息。

于 2015-05-04T13:08:43.603 回答