BLE蓝牙中的安全连接(Secure Connections)

BLE关于安全的发展历史

蓝牙Core 5.0已经发布,目前来看安全相关的内容没有太多改变

BLE作为一个新发展出来的分支,作为一个新兴的事务,关于安全的修改并不是特别多,仅仅在Core 4.2中有所增补

4.0提出BLE,并且采用配对认证的方式(密码输入、数字比较、直接工作),加密采用AES-CCM,从加密的角度来看加密程度已经很高,但是认证阶段的加密程度似乎还有待加强,于是在4.2中将BR/EDR的SC机制引入过来


BLE蓝牙中的安全连接(Secure Connections)_第1张图片

从Core 4.2中可以看出引入了Secure Connections安全机制,简称SC

从蓝牙的发展历史来看SC也并非是新技术,在BR/EDR中早在Core 4.1已经提出

Secure Connections安全机制简介

SC最先提出在BR/EDR中,追溯其起源可以到Core 2.1,在Core 2.1之前,加密认证方式所有的安全均建立在0-16位的数字上,存在被破解的风险,于是人们提出了SSP(Secure Simple Pairing),SSP是一种在传统认证基础上改进过来的认证加密方式

如上图,SSP的改变主要在于认证阶段,采用椭圆曲线非对称加密方式,交换公钥、存留私钥、公钥结合私钥计算共享密钥的方式进行认证,最终认证通过后由共享密钥生成连接密钥(Link Key)

可以发现在认证加密过程中密钥的生成存在随机性,并且用户都不会直接接触到密钥,大大的提高了其安全系数,并且椭圆曲线非对称加密算法其加密程度也非常高,在此基础上,配对的安全系数提高了加密过程依然采用传统的E0算法,直到在Core 4.1中将BLE的AES-CCM加密算法引入过来,将SSP认证与AES-CCM加密结合,提出了SC加密认证机制


上述为BR/EDR中SC的发展过程,在Core 4.2中,BLE直接将BR/EDR的SC安全机制借鉴过来,提出LE Secure Connections


新提出的安全机制对于BLE来讲,改变的仅仅是配对阶段,加密阶段原本BLE就是使用的AES-CCM

LE Secure Connections

主要有以下步骤:
1.Public Key Exchange
2.Authentication Stage 1
3.Long Term Key Calculation
4.Authentication Stage 2

1.首先配对双方进行公钥交换
2.接着根据双方IO能力选项(输入数字、比较数字、直接工作)的方式进行阶段1认证
3.根据SK、PK计算出DHKey,利用DHKey计算出LTK
4.对利用Pk、Sk生成的DHKey进行认证






LE Secure Connections 新增PDU



用于传递ECDH P-256算法生成的公钥


用于对DHKey进行认证

关于ECDH认证机制,可以参考NIFS的相关文档,或者后续文章


你可能感兴趣的:(BLE蓝牙中的安全连接(Secure Connections))