zoukankan      html  css  js  c++  java
  • 深入理解低功耗蓝牙的配对过程- Part 4 LE Secure Connections

    除了前面文章Part 3介绍的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模式,这是一个较新的配对模式,下面我们分步骤的深入了解它。

    第一阶段:配对特性交换

    Part 1中讨论过配对特性交换,在此我们回顾一下。下表是对请求/响应包的定义。在“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配对模型都是常见的,所以我将在下一篇文章中更详细地讨论它。

    结论

    根据用户体验和操作方便,与Part 3相比Numeric Comparison只需要两个按钮,yes和No,指示两个设备之间6位确认值是否匹配,它不需要密码的数字键盘输入,这样将改进并简化硬件I / O。同时,由于Numeric Comparison只存在于LE Secure Connections,它再次提供了更强的保护,如防窃听和防MITM的威胁。所以如果你需要开发一款对隐私敏感的产品,需要对蓝牙LE link进行高度保护,LE Secure Connections这种模式是一个不错的选择。

    回顾前面文章所讨论的配对的几个阶段,用Ellisys抓取空中数据包来分析,能更直接的理解配对的整个过程,请参考下图:

  • 相关阅读:
    三大主流负载均衡软件对比(LVS+Nginx+HAproxy)
    nginx 提示the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    centos安装nginx并配置SSL证书
    hadoop创建目录文件失败
    The server time zone value 'EDT' is unrecognized or represents more than one time zone.
    脚本启动SpringBoot(jar)
    centos做免密登录
    数据库远程连接配置
    Bash 快捷键
    TCP三次握手四次断开
  • 原文地址:https://www.cnblogs.com/lim11/p/11169774.html
Copyright © 2011-2022 走看看