|
下载本文的。pdf格式 这种文件类型包括高分辨率的图形和原理图(如适用)。 |
在第3部分在本系列中,我们讨论了无线系统中的安全需求。第4部分探讨了用于建立数据安全传输环境的配对过程。
配对是密钥交换和身份验证的过程。两种配对依赖于蓝牙低功耗版本:
LE安全连接(支持蓝牙4.2)
•LE Legacy配对(支持蓝牙4.0)
本文将只关注作为Bluetooth 4.2的一部分引入的LE Secure连接,它在安全性方面比以前的版本有了显著的改进。
蓝牙低能配对分为三个阶段。在第一阶段,设备交换配对参数。配对参数是用于确定要使用的关联模型的功能和安全需求。配对参数由不同的字段组成(图1).
在这个阶段,主设备向从设备发送一个配对请求(可能是对从设备发起的请求的响应),并带有自己的配对参数。作为响应,从设备向主设备发送一个配对响应,包含自己的配对参数。随后,两台设备根据交换的参数值选择配对方法。
配对参数包括:
•代码固定为0x01用于配对请求,0x02用于配对响应。
•I / O能力描述BLE设备的输入和输出能力。I/O能力包括以下几个选项:
——只显示
—“显示”和“Yes/No输入”
——键盘只
—无输入、无输出
-显示器和键盘
•OOB数据标志表示是否有来自远端设备的带外(OOB)认证数据。
•认证要求的旗帜有几个字段。键标志指定是否需要绑定。MITM指示是否需要中间人保护.SC显示是否有安全连接的请求。键盘按键指示输入密钥时发送按键通知的要求。SC和Keypress被突出显示,因为它们只在LE安全连接配对(蓝牙4.2)中可用。
•最大加密密钥大小提供设备支持的最大加密密钥大小。
•发起者密钥分发用于请求从发起者分发到响应者的密钥。
•响应方密钥分发用于请求从响应程序分发到发起者的密钥。
交换参数后,阶段2开始。阶段2处理设备认证和链路加密。这个阶段很重要,因为它设置了正确的环境,以便在两个设备之间安全地发送数据。在LE安全连接中,在完成身份验证和生成用于加密的最终安全密钥之前,设备之间要进行一系列消息的通信。
什么是安全的?
在我们讨论这些步骤之前,让我们先来看看蓝牙4.2中防御被动窃听的骨干机制。如前所述,LE安全连接使用符合联邦信息处理标准(FIPS)的椭圆曲线Diffie-Hellman (ECDH)算法,该算法允许设备在非安全通道上建立两个设备之间的共享密钥。这里使用的ECDH形式是P-256,这意味着设备生成的私钥长度为256位(或32字节)。
在执行ECDH算法之前,两台设备必须确定一组特定的域参数。在LE安全连接的情况下,两个设备默认都知道参数,因为它们遵循fips兼容的P-256 ECDH机制。在此之后,每个设备生成一对密钥。第一种被称为私钥,设备从不共享或通过空中发送。第二个称为公钥。这是由设备键和域参数的一部分生成器函数生成的。
之后,每个设备将自己的公钥发送给另一个设备。使用从另一台设备接收到的公钥、它自己的公钥和它自己的私钥,两台设备都能够生成一个共享密钥。请注意,被动窃听者只能嗅探设备之间交换的公钥。但是如果没有来自任何设备的私钥,它就不能生成用于进一步加密的共享密钥。通过这种方式,ECDH能够在一个不安全的通道上生成共享密钥并加密链接。
图2显示一个示例,演示当第三个设备侦听它们之间的通信时,两个设备如何建立共享密钥。
在第二阶段,生成ECDH密钥对并共享公钥。为了确保设备与预期的设备通信,将使用本系列第3部分中讨论的关联模型之一执行身份验证。根据关联模型/IO功能,用户输入可以是输入法、输出方法或OOB。完成后,将执行以下步骤(图3):
•设备中产生一个随机数。
•使用用户输入的值,公钥作为ECDH和随机数的一部分生成。
•通过AES-CMAC功能计算出确认值,并与对方交换。
•计算所用的随机数与另一台设备交换。
接收设备使用用户输入的值、接收到的公钥和接收到的随机数生成另一个确认值。如果生成的确认值与从其他设备接收到的确认值相同,则完成第一阶段的身份验证。基于关联模型,用于计算确认值的参数略有变化。此外,在输入密钥的情况下,计算确认值的步骤会重复多次,对每个比特都是这样做的。
之后,设备从ECDH进程的共享密钥中生成LTK (Long Term Key),并进入认证检查的第二阶段,即检查DHKey(图4).当双方DHKey检查成功后,设备进入第三阶段。
在配对阶段3期间,使用LTK加密链路。一旦链接被加密,密钥被共享,由配对参数中的启动器密钥分发/响应器密钥分发标志(例如,身份解析密钥,或IRK,使用可解析私有地址时需要)。
数据签名
BLE中可用的数据签名特性有助于为系统增加另一级别的安全性。当不使用加密时,BLE可以使用连接签名解析密钥(CSRK)来验证数据。为此,使用签名算法和计数器生成签名。该签名被放置在数据PDU旁边。计数器随每个数据PDU递增,以避免重放攻击。数据签名特性并不提供任何防止被动窃听的保护—它只是确保接收设备的数据来源的真实性。
简而言之,蓝牙低功耗提供了强大的安全方法,以防止未经授权的读写访问用户数据,使安全的无线系统。虽然蓝牙4.1和蓝牙4.2都提供了防止MITM的功能,但真正安全的BLE系统只能通过蓝牙4.2实现。当使用LE Legacy配对(蓝牙4.1)时,只有OOB提供了对被动窃听的保护。
蓝牙4.2包含了一个额外的关联模型,称为数值比较,并实现了一个椭圆曲线Diffie-Hellman算法。用于生成长期密钥(LTK)的参数从未在空中共享,以提供对被动窃听的保护。因为在Bluetooth LE 4.2中私钥从未通过无线方式共享,这使得窃听者很难解密在两个BLE设备之间传输的数据。
在本系列的下一部分中,我们将讨论与旧版本相比,支持蓝牙低功耗4.2特性所需的几个更新。它还将讨论如何为您的应用程序选择一个兼容蓝牙4.2的蓝牙低能耗设备。
指应用注释AN99209或者是蓝牙核心规范(PDF下载)更多关于蓝牙4.2特性的细节。