除了前面文章介绍的LE Legacy pairing,LE Secure Connections是配对的另一种方式。
LE Secure Connections是蓝牙v4.2中引入的一个增强的安全特性。它使用Federal Information Processing Standards(FIPS)兼容的算法,称为Elliptic Curve Diffie Hellman (ECDH)密钥生成。对于LE Secure Connections,它支持四种相关模型:
- Just Works
- Numeric Comparison (Only for LE Secure Connections)
- Passkey Entry
- Out of Band (OOB)
其中Numeric Comparison只支持LE Secure Connections这种配对模式,而不支持LE Legacy pairing模式,这是一个较新的配对模式,下面我们分步骤的深入了解它。
第一阶段:配对特性交换
在中讨论过配对特性交换,在此我们回顾一下。下表是对请求/响应包的定义。在“AuthReq”字段中,有一个名为“SC”的位。如果设备支持LE Secure Connections 配对,则SC字段设置为1,否则设置为0。如果当两个设备都支持LE Secure Connections 配对,那么接下来的配对流程将会按LE Secure Connections pairing模式执行,否则将采用LE Legacy pairing模式。
Table 1 Pairing Request/Response
*Bit order is LSB to MSB.
因此,如果两个设备想通过LE Secure Connections pairing模式进行配对,它们必须将“SC”设置为1,以表示对等设备“我具有安全连接的能力”。
第二阶段:Key生成方法的选择
在配对特征交换之后,配对发起者和响应者应该确定将使用什么密钥生成方法。下面是密钥生成方法的示例C语法编码:
表2列出了用于数值比较的配对发起设备和响应设备的IO功能。当发起设备和响应设备都具有Display Yes/No 的I/O功能,或Dispay和Keyboard的I/O功能时,将使用数字比较(Numeric Comparison)配对模型。
Table 2 Mapping of IO Capabilities for Numeric Comparison
* – 表示用于除Numeric Comparison之外的其他密钥生成方法
第二阶段:认证
生成密钥之后,配对将进入第二阶段,即身份验证。其目的是防止中间人(MITM)攻击和生成密钥,这些密钥将用于加密连接的链路。
在公钥交换中,每个设备生成自己的椭圆曲线Diffie-Hellman(ECDH)公钥-私钥对。公钥-私钥对包含私钥和公钥。
- SKa,启动设备的私钥
- PKa,启动设备的公钥
- SKb,响应设备的私钥
- PKb,响应设备的公钥
Picture 1, the authentication process of Numeric Comparison
配对由发起设备将其PKa发送到响应设备开始。响应设备用它自己的PKb进行回应。在交换了公钥之后,设备就可以开始计算Diffie-Hellman密钥;你可以在图1中看到它从1b的末尾开始。
之后,每个设备每次随机选择一个128位的随机数。此随机数值用于防止重播攻击。
- Na,发起设备的一次128位随机数
- Nb,响应设备的一次128位随机数
然后,响应设备通过Nb、PKa、PKb和0计算一个结果Cb。如图1所示,步骤3。
步骤4,响应设备在接收到发起设备的Na之前必须共享Cb。
第5步,发起设备必须在接收到响应设备的Nb之前共享其Na。
第6步,发起设备收到响应设备Nb后,必须检查来自响应设备的Cb。
此时,发起或响应设备已经知道对等设备的公钥和随机数。发起设备可以从响应设备确认结果(Cb)。此时出现失败表明存在攻击者或其他传输错误,应该使配对过程中止,步骤6.a。
假设结果检查成功,两台设备各自计算6位确认值,并在各自的设备上显示给用户,用户需要检查这些6位数的值是否匹配,并确认是否正确匹配,如果没有匹配,配对将中止。
第三阶段:长期密钥-LTK
当身份验证成功时,两个设备开始计算用于链路加密的长期密钥(LTK)。这是配对和重新连接的最后一步,在不同的配对模式中,和对等设备进行身份验证,并防止中间人(Man in the Middle, MITM)攻击。参看下图空中数据包交互
LTK计算对于任何LE Secure Connections配对模型都是常见的,所以我将在下一篇文章中更详细地讨论它。
结论
根据用户体验和操作方便,与相比Numeric Comparison只需要两个按钮,yes和No,指示两个设备之间6位确认值是否匹配,它不需要密码的数字键盘输入,这样将改进并简化硬件I / O。同时,由于Numeric Comparison只存在于LE Secure Connections,它再次提供了更强的保护,如防窃听和防MITM的威胁。所以如果你需要开发一款对隐私敏感的产品,需要对蓝牙LE link进行高度保护,LE Secure Connections这种模式是一个不错的选择。
回顾前面文章所讨论的配对的几个阶段,用Ellisys抓取空中数据包来分析,能更直接的理解配对的整个过程,请参考下图: