首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全蓝牙服务

安全蓝牙服务
EN

Stack Overflow用户
提问于 2020-02-01 13:47:25
回答 1查看 79关注 0票数 1

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

唯一出现在脑海中的解决方案是一个通行证键,但组合的数量有限。因此,最终可能会猜到实际的pass键。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-01 16:20:30

我假设有一个无限制的授权用户数量(没有短的,固定的设备列表,您可以连接)。

解决这类问题的一个典型方法是基于共享秘密的挑战反应。作为一个例子,设计(这个设计有一些缺陷,我将在后面讨论):

  • 客户机和设备共享一个预先安排好的128位随机密钥
  • 客户机进行未经身份验证的加密(“只工作”)连接
  • 设备产生一个随机的128位挑战,客户端读取
  • 客户机用密钥加密挑战并返回
  • 设备验证加密是正确的,并验证连接h 210f 211>f 211。

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

首先,简单的工作加密并不是很难蛮力和MiTM。如果工作人员经常访问该设备,并且攻击者有一定的奉献精神,则此操作将失败。

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

client

  • Client

  • 设备生成一个6位引脚

  • 工作人员将6位引脚输入到中,使用Passkey条目w/ pin
  • 连接到设备,如上所示,随机询问/响应authenticate

如果设备有NFC芯片,则可以使用NFC分发配对密钥,然后使用共享秘密进行身份验证,从而使用户更容易使用NFC。(这被称为OOB或“带外”配对。)

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

这个系统的一个可能的缺点是,任何拥有共享秘密的人都可以对设备进行伪装。根据您的描述,这并不是一个大问题,但如果是的话,您可以通过使用公共私钥来避免这种情况,比如设备持有私钥,而所有客户端都持有公钥。然而,在这种情况下,公钥是一个秘密。(您可以更深入地发布客户端密钥并进行互操作,但除非您的设备非常强大并连接了网络,否则这可能会导致过度死亡。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60017477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档