Android蓝牙低能耗Pairign
我有点搞不懂这个词。我了解到BLE配对过程有三个选项,我感兴趣的是密钥条目 我的目标是在现场安装一个传感器,Android应用程序将扫描并找到这个传感器,然后它将请求与传感器配对,然后它们才能交换数据。用户应用程序在手机或平板电脑上运行 BLE配对与Bluetooth Classic相同吗?我的意思是,Android API BluetoothDevice.setPin是否同时用于BLE和Classic,而驱动程序将在引擎盖下完成其余工作Android蓝牙低能耗Pairign,android,bluetooth,bluetooth-lowenergy,Android,Bluetooth,Bluetooth Lowenergy,我有点搞不懂这个词。我了解到BLE配对过程有三个选项,我感兴趣的是密钥条目 我的目标是在现场安装一个传感器,Android应用程序将扫描并找到这个传感器,然后它将请求与传感器配对,然后它们才能交换数据。用户应用程序在手机或平板电脑上运行 BLE配对与Bluetooth Classic相同吗?我的意思是,Android API BluetoothDevice.setPin是否同时用于BLE和Classic,而驱动程序将在引擎盖下完成其余工作 我很困惑,因为我在某处读到,对于BLE,我可以设置PIN
我很困惑,因为我在某处读到,对于BLE,我可以设置PIN或密码短语,但BT Classic只接受4位PIN。在BLE中配对只是设置加密链接的一种方式。设备需要在加密密钥上达成一致,它们可以通过以下方式来实现:just works(将密钥设置为全零)、passkey entry(最多六位数)或out-of-band(密钥通过NFC或其他渠道分发) 如果使用密钥,则意味着“窥探者”无法与传感器配对,除非他能看到设备上的密钥。(打印或在显示器上) 您还可以将配对与绑定相结合,在这种情况下,设备在加密链接后分发密钥,从而可以在不必租用密钥的情况下重新连接到同一设备 然后,您希望在传感器上设置数据库,以便仅允许通过加密链接读取传感器数据。(您不希望您的窥探者简单地连接到设备并自己读取数据) 这种方法的一个问题是pass key条目只使用6位数字。这还不足以真正保护你免受他人窃听。密码输入后生成的密钥可以在毫秒内强制执行,所有商用蓝牙嗅探器都会这样做,这是其正常操作的一部分。不过,他们必须嗅探配对过程才能做到这一点,因此,如果在设备绑定时没有人窃听,通常情况下,您的设备是好的
此外,使用带外数据也是安全的,因为您无法轻易强制使用随机128位AES密钥。在BLE中配对只是设置加密链接的一种方法。设备需要在加密密钥上达成一致,它们可以通过以下方式来实现:just works(将密钥设置为全零)、passkey entry(最多六位数)或out-of-band(密钥通过NFC或其他渠道分发) 如果使用密钥,则意味着“窥探者”无法与传感器配对,除非他能看到设备上的密钥。(打印或在显示器上) 您还可以将配对与绑定相结合,在这种情况下,设备在加密链接后分发密钥,从而可以在不必租用密钥的情况下重新连接到同一设备 然后,您希望在传感器上设置数据库,以便仅允许通过加密链接读取传感器数据。(您不希望您的窥探者简单地连接到设备并自己读取数据) 这种方法的一个问题是pass key条目只使用6位数字。这还不足以真正保护你免受他人窃听。密码输入后生成的密钥可以在毫秒内强制执行,所有商用蓝牙嗅探器都会这样做,这是其正常操作的一部分。不过,他们必须嗅探配对过程才能做到这一点,因此,如果在设备绑定时没有人窃听,通常情况下,您的设备是好的
此外,使用带外数据也是安全的,因为您无法轻松强制使用随机128位AES密钥。据我所知,BTLE中未使用PIN类型的密钥。传统蓝牙设备使用固定PIN密钥,该密钥已硬编码到设备中或由应用程序输入。在下一轮蓝牙中,这种配对方法被SSP(安全简单配对)所取代。BTLE来得晚,只使用SSP。SSP中的密钥(当中间人保护启用时)由蓝牙软件随机生成,通常处于非常低的级别。一个SSP选项是“just works”,整个密钥生成是内部的。对用户来说很好,但中间人(MITM)攻击也是可能的。因此,最终,对于蓝牙LE应用程序,您将永远不会使用4位PIN 因此,在Android上与BTLE设备配对的方式与配对标准蓝牙设备的方式完全相同。如果BTLE设备使用的SSP选项超出了“just works”,您将看到一个弹出菜单,要求您