博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解低功耗蓝牙的配对过程- Part 4 LE Secure Connections
阅读量:4984 次
发布时间:2019-06-12

本文共 2342 字,大约阅读时间需要 7 分钟。

除了前面文章介绍的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抓取空中数据包来分析,能更直接的理解配对的整个过程,请参考下图:

 

转载于:https://www.cnblogs.com/lim11/p/11169774.html

你可能感兴趣的文章
20155307《网络对抗》免杀原理与实践
查看>>
《Android开发卷——自定义日期选择器(三)》
查看>>
游里工夫独造微一一小平邦彦传
查看>>
HTML5 JSON ( tuple => Object => JSON => Object=> Elements_of_tuple )
查看>>
#2006 - MySQL server has gone away 问题解决方法 (全) (转)
查看>>
php学习笔记4--php中的变量作用域
查看>>
D1格式是720*576还是704*576 分类: 生活百科 ...
查看>>
V4L2驱动的移植与应用(三) 分类: arm-linux-Ubunt...
查看>>
服务级后门自己做——创建服务 分类: VC++ ...
查看>>
push本地代码到github发生错误的解决办法
查看>>
设置遮罩层
查看>>
Catalyst 3850 升级-1
查看>>
static
查看>>
python模块之time模块
查看>>
bzoj2882: 工艺
查看>>
Shell中的${},##和%%的使用
查看>>
创建一个随机对象列表
查看>>
省市联动 js
查看>>
常用HTTP状态码
查看>>
WebAPI GET和POST请求的几种方式
查看>>