对于任何一个无线设备,无论是健康监测器还是付款系统,保护用户的隐私信息都是非常重要的。隐私机制可防止设备受到不可信的设备追踪。安全的通信保证了数据安全,防止未经授权的设备侵入数据导致触发系统意外操作。BLE 4.2的新功能加强了隐私和安全,解决了早期BLE的缺陷并且提高了能效。
隐私
为了保护BLE设备的隐私,受信任的BLE设备使用共享的身份解析密钥(IRK,Identity Resolving Key)生成和解析随机的可解析私有地址(RPA,Resolvable Private Address)。只有一台设备拥有另一台广播设备的IRK时,才能跟踪该广播设备的活动。
蓝牙设备在配对期间共享IRK,并将其存储在设备内置存储器中的解析列表中。因此,早前绑定的设备依然可以解析对方设备的私有地址。
蓝牙4.1中,该解析列表保存于主机并且由主机完成地址解析,也就是说每次收到RPA的广告包时,都需要主机进行干预。在蓝牙4.2中,该解析列表保存在控制器中,由控制器解析私有地址。如果设备主机使用单独的CPU,则主机不需要被唤醒即可进行蓝牙配对,从而降低了整体功耗。即使设备使用相同的CPU执行控制器和主机,因为地址不需要通过不同的协议层,减少了解析地址所需的CPU循环次数,也可降低功耗。
RPA会时刻变化,因此第三方更难以跟踪私有设备。在Privacy 1.1(蓝牙4.1)中,建议的RPA超时时间为15分钟。然而,由于Privacy1.1对连接和功耗有一定影响,因此它的使用非常有限。此外,由于Privacy 1.1不支持地址在链路层解析,因此在使用RPA时不能实现设备过滤和定向连接广播(DCA)之类的功能。
蓝牙4.2中Privacy 1.2允许的RPA超时时间可以为1秒到11.5小时。因为BLE 4.2支持在链路层解析地址,故可使用DCA加速设备之间的连接并降低功耗。
被动窃听
为了防止未经授权访问通信,无线系统必须防止被动窃听和中间人(MITM)攻击。被动窃听是指第三台设备偷偷地窃听两个设备(见图2)之间的私有通信。对于支付解决方案这样的信息保密性(比如密码)极其重要的应用来说,防止被动窃听是非常重要的。
图1:在被动窃听攻击中,第三台设备偷偷窃听两个设备之间的通信。
通过使用密钥对数据进行加密,系统可以防止被动窃听。蓝牙低功耗4.2引入LE安全连接,采用符合联邦信息处理标准(FIPS)的DCTH (Elliptic Curve Diffie-Hellman)算法生成密钥。该密钥用于生成其它密钥,如长期密钥和DH密钥,但其本身从不通过无线电共享。由于DH密钥从不通过无线电交换,因此第三方设备很难猜出加密密钥。在蓝牙低功耗早期版本(蓝牙4.1或更老版本)中,设备采用的是非常容易猜测到的临时密钥(TK)对连接进行首次加密,此后的长期密钥和其他密钥都会在这个不太安全的连接上进行。
中间人
MITM是指当两个设备尝试彼此通信时,第三设备插入到两者之间并伪装成对方设备(参见图1)。通过认证可以确保系统所通信的设备是其实际预期的设备,而不是伪装的非授权设备。
图2:在中间人攻击中,第三台设备插入两台设备的连接之中,并且使通讯的两端认为他们是在与对方直接对话。
在蓝牙通信中,两台设备使用关联模型实现相互验证,然后安全地交换数据。蓝牙配对是一个密钥交换的过程;但是,交换密钥之前,这两个设备必须共享包括认证要求在内的配对参数。而为了实现认证,两台设备必须使用某种关联模型进行相互验证。模型的选择基于三个参数:
a.是否需要MITM防护
b.该设备是否可以从用户接收数据(例如按钮或键盘输入)或是否可以向用户输出数据(例如LCD显示6位十进制数)。将用户纳入到配对处理是数据安全传输的一个重要因素
c.该设备是否能够进行频带外(OOB)通信。例如,如果部分安全密钥可以在两个设备之间通过近场通讯(NFC)沟通,那么窃听者就无法理解最终的数据意义。
BLE 4.2有四个关联模型可供选择:
数值比较-两台待匹配设备均显示六位数字,如果两个数字相同,那么用户在设备上选择“是”即可通过验证。蓝牙4.2 低功耗安全连接引入了这种关联模型。在传统配对(蓝牙低功耗4.1或更老的版本)中,这些IO功能实现的是“即刻运行”关联模型(无验证)。
密钥输入-用户在两台设备中输入相同的密钥,或其中一台设备显示密钥,用户在另一台设备输入相同的密钥。在传统密钥输入(蓝牙4.1或更老的版本)中,整个密钥以简单的单次确认即可进入交换;而蓝牙4.2中,一次交换一位密钥,安全性有了很大提高。这种逐位公布保证了在协议的配对程序失败之前,未猜测到的密钥泄露不超过2位。
非蓝牙传输(OOB)-OOB关联模型适用于双方设备中至少有一个具有OOB能力、能够加密信息进行频带外交换的情况。此时,MITM防护取决于用于共享信息的OOB协议对MITM的抵抗力。在传统配对(BLE 4.1或更老的版本)中,两个设备都需要具有OOB能力才能使用OOB关联模型。
即刻运行-在不需要MITM保护或者设备具有表1中提到的IO能力的时候,采用这种关联模型。
表1显示了不同IO情况下在LE安全连接配对时能够使用的关联模型。但是,如果不需要MITM保护或其中某台BLE设备具有OOB功能时, 可以忽略IO。
表1:关联模型的选择取决于设备的I/O支持如何。
蓝牙低功耗4.2提供三个支持MITM防护的关联模型以及一个针对无需MITM防护应用的模型。4.1以及更老的BLE版本不支持数值关联模型;如果OOB数据也不可用,则只能使用密钥输入关联模型进行验证配对。而密钥关联模型需要键盘实现密钥输入,这一点在许多系统中无法实现,限制了MITM防护的应用。但是,只要显示能够实现是/否选项时,可以使用数值比较模型,为更多的应用提供MITM保护。
配对
配对是密钥交换和认证的过程。根据不同的蓝牙低功耗版本,有两种取决于的配对类型:LE安全连接(蓝牙4.2新增)和LE传统配对(蓝牙4.0以后的版本支持)。与之前的版本相比,LE安全连接提供了显著的改善。
蓝牙低功耗的配对分为三个阶段。在第一阶段,设备交换其配对参数,其是能够确定合适关联模型的能力和安全要求。配对参数包括各种字段,如图3。
图3:BLE 4.2配对第一阶段交换的配对参数
LE安全连接采用符合联邦信息处理标准(FIPS)的ECDH算法,能够在没有防护的信道中建立安全的共享密钥。使用ECDH形式是P-256,这意味着设备生成的私有密钥长度为256位(或32字节)。
执行ECDH算法之前,两个设备必须确定一组特定的域参数。在LE安全连接中,因为两台待连接设备都FIP的SP-256 ECDH机制,因此都知道一个默认的参数。随后,两台设备各生成一对密钥,一个称为私有密钥,该设备不会通过无线电进行共享或发送;另一个称为公共密钥,由设备密钥和一个发生器函数(域参数的一部分)产生。
随后,两台设备都将自己的公共密钥发送给对方设备。使用这个接收到的公共密钥、自己的公共密钥以及自己的私有密钥,两台设备都能够生成一个共享密钥。注意,被动窃听者只能获取设备之间交换的公共密钥,但没有双方的私有密钥,因此不能产生用于进一步加密的共享密钥。通过这种方式,ECDH能够在不安全的通道上生成共享密钥并对连接进行加密。
图4显示了在有第三设备窃听的情况下,两台设备是如何建立共享密钥的。
图4:当有第三设备窃听时,两台设备正在建立共享密钥
在第2阶段中,ECDH密钥生成后将公共密钥分享给可信的设备并建立加密连接。为确保与设备进行通信的设备是预期的设备,需要使用关联模型进行认证。该设备根据ECDH算法的共享密钥生成一个长期密钥(LTK)并继续进行第二阶段的认证检查,包括检查DH密钥。
在第3阶段,使用长期密钥来对连接进行加密。一旦连接被加密,密钥就可以通过配对参数中的启动器密钥分配/应答器密钥分配标志进行共享(例如,如果采用RPA,则需要IRK)。
数据签名
数据签名是另一个能够帮助增加安全级别的BLE功能。在没有使用加密时,BLE可以使用连接签名解析密钥(CSRK,Connection Signature Resolving Key)对数据进行认证。签名是由签名算法和计数器产生的。计数器随各数据PDU递增,以避免任何重放攻击。请注意,数据签名并非用来防护被动窃听,而是为接收设备验证数据源的真实性。
蓝牙低功耗4.2提供了强大的安全机制以确保安全的无线连接系统。尽管BLE 4.1和4.2都提供了MITM防护功能,但只有蓝牙4.2能够实现真正安全的BLE系统。当使用蓝牙4.1 的LE传统配对时,只有OOB关联模型提供了被动窃听的防护;而蓝牙4.2还提供数值比较关联模型和ECDH算法以确保隐私和数据安全。
有关蓝牙4.2隐私和安全功能的详细信息,请参考应用指南AN99209,有关蓝牙4.2功能的详细信息,请参考蓝牙核心规格。
全部0条评论
快来发表一下你的评论吧 !