无显示屏设备的蓝牙数字比较配对

问题描述 投票:0回答:1

根据蓝牙 5.2 手册,第 1641-1642 页,表 2.8,在两个设备都有显示屏的情况下,应使用数字比较配对。作为身份验证的一部分,这些显示屏可用于在两台设备上显示确认是/否提示。 (图 2.3,第 1648 页)。然而,从数字比较的协议消息交换序列的角度来看,即使其中一个设备没有显示 IO,也可以使用数字比较配对。具体地,不是在两个设备上显示密码,而是可以将密码显示在其中一个设备(假设设备A)上,而另一设备(假设设备B)仅通过键盘输入相同的密码。内部生成的相同密码 (Va=Vb) 可与设备 B 上输入的密码匹配,并可在设备 B 上确认是/否提示。其余过程可按照标准方法进行(密钥输入配对,第 1652 页) ,图2.5)。

我的理解有问题吗?与没有显示屏的设备使用数字比较配对是否有任何安全隐患?

bluetooth bluetooth-lowenergy protocols
1个回答
0
投票

DisplayYesNo 和 NoInputNoOutput 设备

Numeric Comparison 和 Just Works 具有类似的配对协议,只是 Just Works 中跳过了一些重要的检查,这导致配对协议生成未经身份验证的链接密钥。

Just Works 和未经身份验证的链接密钥的危险在于它们容易受到所谓的 NiNo MitM(NoInputNoOutput Machine-in-the-Middle)攻击。这是具有现实世界影响的实际攻击。

您提出的建议将有效,因为第二台设备没有屏幕,用户无法直观地确认数字。确认数字是蓝牙中重要的安全步骤,因为它使得主动 MitM 攻击仅以 0.000001 的概率成功

DisplayYesNo 和 DisplayOnly 设备

我还发现您可能会想到一台设备显示是/否确认(例如用户的电话),然后另一台设备仅显示代码。以我对协议的了解,如果第二个设备输出代码并且用户可以直观地确认它,我不能说它实际上应该导致“Just Works”(我可能会错过一些东西,除非系统被编程为强制“Just Works”并且不在第二台设备上显示实际代码)。

但是这样的设置会使第二个设备更容易受到未经授权的连接的攻击,并且可能允许或简化其他利用步骤(特定于实现)。这就是为什么如果您是开发人员,我敦促您实现规范中所述的协议 - 执行数字比较的两个设备都应该有办法确认或拒绝代码!

另外这里有一个来自Bluetooth SIG网站的表格供您理解:

Bluetooth SIG pairing method table

© www.soinside.com 2019 - 2024. All rights reserved.