目录
前言
SMP即Security Manager Protocol。其内容主要是配对和Key的分发,然后用Key对链路或数据进行加密。双方要共同拥有一个加密key(LTK,Long Term Key)。这个key至关重要,怎么生成、怎么由通信的双方共享,关系到加密的成败。因此蓝牙协议定义了一系列的复杂机制,用于处理和加密key有关的操作,这就是SM(Security Manager)。
1. Security Manager介绍
它的主要目的是为LE设备(LE only或者BR/EDR/LE)提供建立加密连接所需的key(STK or LTK)。为了达到这个目的,它定义了如下几类规范:
1)将生成加密key的过程称为Pairing(配对),并详细定义了Pairing的概念、操作步骤、实现细节等。
2)定义一个密码工具箱(Cryptographic Toolbox),其中包含了配对、加密等过程中所需的各种加密算法。
3)定义一个协议(Security Manager Protocol,简称SMP),基于L2CAP连接,实现master和slave之间的配对、密码传输等操作。
2. Pairing(配对)
区别于传统蓝牙的配对过程,BLE的配对过程发生在连接过程之后,配对是一个三阶段的过程。前两个阶段是必须的,第三阶段是可选的。
- 第一阶段:配对特征交换
- 第二阶段:短期秘钥(STK)生成
- 第三阶段: 传输特定秘钥分配
阶段1,称作“Pairing Feature Exchange”,用于交换双方有关鉴权的需求(authentication requirements),以及双方具有怎么的人机交互能力(IO capabilities)。
阶段2,通过SMP协议进行实际的配对操作,根据阶段1 “Feature Exchange”的结果,有两种配对方法可选:LE legacy pairing和LE Secure Connections。
阶段3是可选的,经过阶段1和阶段2之后,双方已经产生了加密key,因而可以建立加密的连接。加密连接建立后,可以互相传送一些私密的信息,例如Encryption Information、Identity Information、Identity Address Information等。
2.1 配对第一阶段
两个设备之间的配对信息交换是通过配对请求和配对响应数据包完成的。
当配对特性交换开始时,发起者和响应者将通过配对请求和响应相互交换配对特性信息。有了这些信息,发起者和响应者可以相互确定I/O能力,应该使用哪种配对机制(legacy pairing或LE Secure Connections),并选择配对方法(just work、Passkey Entry、Numeric Comparison or Out of Band),以便在阶段 2中使用。
配对特征交换的是输入输出(IO)功能、认证需求(需不需要绑定以及防止MITM )、密钥大小(固定为128bit)。
2.1.1 配对方法
Master和Slave有两种可选的配对方法:LE legacy pairing和LE Secure Connections,选择的依据是:当Master和Slave都支持LE Secure Connections 的时候,则使用LE Secure Connections。否则,使用LE legacy pairing。
2.1.2 Authentication(鉴权方式)
对BLE来说,主要有三类鉴权的方法,如下:
JustWorks:只工作,不需要用户参