信标欺骗

Beacon Spoofing

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

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

前两个应该可以识别,第三个是spoofing beacon

解决 Android 和 iOS 问题的最佳方法是什么?

可通过三种常用方法来避免信标欺骗:

  1. 使用辅助传输标识符

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

  2. 旋转标识符哈希

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

  3. 使用次要因素来验证信标检测

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