Android 信标欺骗

Android 信标欺骗,android,bluetooth-lowenergy,android-bluetooth,Android,Bluetooth Lowenergy,Android Bluetooth,假设我有三部智能手机发送一个UUID:X的信标。 其中两个应用程序名为True App: 第一个有大调1,小调1 第二个有大调:1,小调:2 第三款智能手机有一款名为Beacon Simulator的应用程序,可以克隆其他两款智能手机的信标 前两个应该认识到第三个是欺骗信标 对于Android和iOS,哪种方法是解决此问题的最佳方法?有三种常见的方法可以避免信标欺骗: 使用二次传输的标识符 您可以使用较难复制的次要已知标识符(例如蓝牙MAC地址)尝试验证信标标识符是否来自预期来源然而,这种技术很

假设我有三部智能手机发送一个UUID:X的信标。 其中两个应用程序名为True App: 第一个有大调1,小调1 第二个有大调:1,小调:2

第三款智能手机有一款名为Beacon Simulator的应用程序,可以克隆其他两款智能手机的信标

前两个应该认识到第三个是欺骗信标


对于Android和iOS,哪种方法是解决此问题的最佳方法?

有三种常见的方法可以避免信标欺骗:

  • 使用二次传输的标识符

    您可以使用较难复制的次要已知标识符(例如蓝牙MAC地址)尝试验证信标标识符是否来自预期来源然而,这种技术很少能很好地工作,因为一个坚定的黑客也可以用适当的设备欺骗MAC地址(或任何其他传输字段)。对MAC地址使用这种方法在移动设备上也非常有限——iOS设备根本无法读取信标的MAC地址,并且Android和iOS发射机都会定期随机化它们的BLE发射机

  • 旋转标识符散列

    有许多信标系统试图通过使用基于安全加密哈希算法的旋转标识符的专用信标格式来避免欺骗。这方面的两个例子是Gimbal(专有)和Eddystone EID(开源,但由Google有效运行)。在每种情况下,您都必须调用服务器来“解析”从信标传输接收到的旋转散列,并将其有效地转换为应用程序可以使用的静态标识符。 这种方法在许多用例中都是非常安全的,但也存在一些主要缺点:(a)系统复杂且难以设置。(b) 解析标识符需要网络连接。如果您失去连接或网络速度缓慢,您的应用程序将无法工作。(c) 这种方法将您锁定到特定的供应商(Gimbal或Google)。(d) 通过在一个位置记录信标传输并在第二个位置重播,该系统仍然可能失败

  • 使用次要因素验证信标检测

    次要因素的一个示例是验证每个信标的已知位置。如果您知道每个信标的纬度和经度,当您看到信标时,比较测量的纬度和经度,看看它是否合理接近。这将防止欺骗,除非是在近距离内。另一个例子可能是时间。如果您知道两个不同的信标相距超过一英里,但您的手机在几秒钟内检测到了这两个信标,那么您可以合理地确定两个检测中的一个是伪造的,并做出适当的响应。有很多其他的可能性是特定于用例的如果您的用例允许,并且您的安全需求不是极端的,那么这种方法通常可以在基本安全性和易于实现性之间进行很好的权衡


  • 有三种常见的方法可以避免信标欺骗:

  • 使用二次传输的标识符

    您可以使用较难复制的次要已知标识符(例如蓝牙MAC地址)尝试验证信标标识符是否来自预期来源然而,这种技术很少能很好地工作,因为一个坚定的黑客也可以用适当的设备欺骗MAC地址(或任何其他传输字段)。对MAC地址使用这种方法在移动设备上也非常有限——iOS设备根本无法读取信标的MAC地址,并且Android和iOS发射机都会定期随机化它们的BLE发射机

  • 旋转标识符散列

    有许多信标系统试图通过使用基于安全加密哈希算法的旋转标识符的专用信标格式来避免欺骗。这方面的两个例子是Gimbal(专有)和Eddystone EID(开源,但由Google有效运行)。在每种情况下,您都必须调用服务器来“解析”从信标传输接收到的旋转散列,并将其有效地转换为应用程序可以使用的静态标识符。 这种方法在许多用例中都是非常安全的,但也存在一些主要缺点:(a)系统复杂且难以设置。(b) 解析标识符需要网络连接。如果您失去连接或网络速度缓慢,您的应用程序将无法工作。(c) 这种方法将您锁定到特定的供应商(Gimbal或Google)。(d) 通过在一个位置记录信标传输并在第二个位置重播,该系统仍然可能失败

  • 使用次要因素验证信标检测

    次要因素的一个示例是验证每个信标的已知位置。如果您知道每个信标的纬度和经度,当您看到信标时,比较测量的纬度和经度,看看它是否合理接近。这将防止欺骗,除非是在近距离内。另一个例子可能是时间。如果您知道两个不同的信标相距超过一英里,但您的手机在几秒钟内检测到了这两个信标,那么您可以合理地确定两个检测中的一个是伪造的,并做出适当的响应。有很多其他的可能性是特定于用例的如果您的用例允许,并且您的安全需求不是极端的,那么这种方法通常可以在基本安全性和易于实现性之间进行很好的权衡