macOS Sierra如何在没有代码的情况下安全地与蓝牙键盘配对?


8

我有一台2014年末运行MacOS Sierra 10.12.5的Mac Mini。当我将其与蓝牙键盘配对时,没有提示我输入数字序列。

macOS如何在不提示输入密码的情况下验证和保护蓝牙键盘之间的连接?它是否仅使用首次信任?是否可以强制macOS使用配对代码?


您的蓝牙键盘是Apple键盘吗?
Jahhein

@Jahhein,不,不是。
埃里克·普鲁伊特

那么,这是一个很好的问题。我很想知道自己的答案。我读过蓝牙,如果它不是Apple认证的蓝牙设备,就不会想到明显的理由。
Jahhein

Answers:


6

TL; DR问题的答案

macOS如何在不提示输入密码的情况下验证和保护蓝牙键盘之间的连接?

不仅是macOS,还需要在固件级别连接并加密键盘-如果不是,则无法在OS加载之前执行NVRAM重置。

但是,您不需要代码,因为现代的蓝牙键盘使用身份验证算法进行配对,并使用基于公共密钥生成的身份验证密钥来保护数据传输。

它是否仅使用首次信任?

否。它使用算法和128位生成的密钥来验证其身份。

是否可以强制macOS使用配对代码?

为什么?这可以追溯到2009年前的配对方法。这相当于在现代WiFi网络上启用WEP共享密钥。


蓝牙配对

您描述的用于配对蓝牙设备(示例中为键盘)的过程使用一种旧的(蓝牙2.1)身份验证方法,称为简单安全配对(SSP)。

基本上,SSP具有4种关联(配对)模型:

  • 数值比较。两种设备都有输入和显示,因此用户只需选择“是”或“否”即可配对设备
  • 密码一台设备具有输入功能(如键盘),另一台设备具有显示功能(如计算机)。具有显示功能的设备显示4到6位数字,具有输入功能的设备输入该数字。
  • Just Works 这适用于没有显示或输入功能的设备(例如耳机),在这些设备中您看不到或输入密码。
  • 带外(OoB)用于支持其他通用无线技术(NFC)的设备,这些设备必须彼此非常靠近。一台设备必须“点击”另一台设备,然后才能进行配对。

需要注意的最重要的一点是,SSP 不是加密密钥;它不是加密密钥。这只是彼此识别的配对机制。加密是通过公钥处理的。您输入的代码是要确保您要连接的设备。这不是安全。

从Bluetooth 3.0(2009年4月)开始,Bluetooth设备使用AMP密钥进行身份验证,从而自动执行上述过程。

AMP密钥派生 AMP链接密钥派生自蓝牙链接密钥。每当创建或更改蓝牙链接密钥时,AMP管理器就会在主机堆栈中生成通用AMP链接密钥(GAMP_LK)

认证方式

蓝牙设备身份验证过程采用质询-响应方案的形式。每个设备在身份验证过程中进行交互,以充当索赔者或验证者。索赔人是试图证明其身份的设备,而验证者是验证索赔人身份的设备。质询-响应协议通过验证密钥(蓝牙链接密钥)的知识来验证设备。

在此处输入图片说明

加密

有4种加密模式

  • 模式1-不加密
  • 模式2-基于链接密钥的密钥对单独寻址的流量进行加密
  • 模式3-使用基于主密钥的密钥对所有流量进行加密
  • 模式4-(蓝牙2.1 + EDR)要求对所有流量进行加密,但服务发现除外

使用Bluetooth 2.1(2009年及以后的键盘)及更高版本的Bluetooth键盘会加密所有流量。


消息来源: SP 800-121修订版2,蓝牙安全指南(2017年5月)


听起来蓝牙通常在配对过程中容易受到MITM攻击,但是只要安全地进行了配对,随后的通信就应该容易受到拦截。我的理解正确吗?
埃里克·普鲁伊特

仅当设备使用较差的安全性做法(例如,弱密钥和静态密钥,弱加密,“模式1”安全性(无)等)时,每种技术都有漏洞,但制造商如何实施BT才是最容易受到攻击的。对于键盘,它会保持连续配对(否则您将无法唤醒计算机或在预引导环境中使用它)。在这种情况下,成为MITM非常困难,因为在攻击开始时,配对和安全通信已经建立并起作用。
艾伦(Allan)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.