安全蓝牙服务



假设公共空间中安装了多个设备,并为指定的工人/技术人员广播BLE连接,以便能够与设备通信。可以采取哪些安全措施来防止不需要的用户连接到它们?

唯一想到的解决方案是密码键,但组合数量有限。因此,实际的传递键可能最终会被猜到。

我假设有无限数量的授权用户(没有可以绑定的简短、固定的设备列表(。

此类问题的典型解决方案是基于共享密钥的质询-响应。作为一个例子设计(这个设计有一些缺陷,我将在后面讨论(:

  • 客户端和设备共享预先安排的 128 位随机密钥
  • 客户端建立未经身份验证的加密("正常工作"(连接
  • 设备生成一个随机的 128 位质询,客户端读取该质询
  • 客户端使用密钥加密质询并将其返回
  • 设备验证加密是否正确,并对连接进行身份验证

对于低安全性的情况,这是不错的,非常容易实现,并且不需要设备或任何额外硬件的大量处理能力。但是,它确实存在问题。

首先,Just Works加密并不难暴力破解和MiTM。如果工作人员经常访问设备,并且攻击者有一些奉献精神,这将失败。

如果设备具有可以屏蔽的显示器,则改进的设计将使用密钥条目来执行初始配对,然后使用质询-响应进行身份验证:

  • 设备生成 6 位引脚
  • 工作人员在客户端中输入 6 位数字 PIN
  • 客户端使用带引脚的密钥条目连接到设备
  • 继续如上所述,随机质询/响应进行身份验证

如果设备具有 NFC 芯片,则通过使用 NFC 分发配对密钥,然后使用共享密钥进行身份验证,用户可以更轻松地执行此操作。(这称为 OOB 或"带外"配对。

所有这一切的关键点是,您首先要创建尽可能安全的连接,以防止窃听和MiTM。然后,作为一个单独的问题,使用共享密钥对客户端进行身份验证。

此系统的一个可能的缺点是,拥有共享密钥的任何人都可以假装该设备。从您的描述来看,这感觉不是一个大问题,但如果是,您可以通过使用公钥-私钥来避免这种情况,这样设备持有私钥,所有客户端都持有公钥。但是,在这种情况下,公钥是一个秘密。(您可以更进一步,颁发客户端密钥并进行相互身份验证,但这可能矫枉过正,除非您的设备非常强大且网络连接良好。

相关内容

  • 没有找到相关文章

最新更新