蓝牙配对第二篇:密钥生成方法

2016年07月08日 11:34    发布者:eechina
作者:蓝牙亚太区技术项目经理 任凯

《蓝牙配对第一篇:配对特性交换》谈到了低功耗(Low Energy,简称LE)的蓝牙配对特性交换。配对特性交换让连接的发起设备和响应设备双方都能够获悉彼此的配对特性。

可启用的配对特性有:
•    OOB(Out-of-Band)数据标志位
•    MITM(Man-in-the-Middle)标志位
•    SC—低功耗安全连接(LE Secure Connection)标志位
•    IO Cap—IO功能

*请阅读蓝牙技术联盟微信公众号3月25日历史文章《蓝牙配对第一篇:配对特性交换》,了解以上特性。

完成特性交换之后,双方设备就可以选择下一阶段所用的密钥生成方法了。下方列表中是低功耗传统配对(Legacy Pairing) 和低功耗安全连接 (LE Secure Connection) 的密钥生成方法。

低功耗传统配对:
•    直接连接(Just Works)
•    万能钥匙(Passkey Entry)
•    带外数据(Out-of-Band,简称OOB)

低功耗安全连接,除了以上三种方法以外,还增添了一种新方法:
•    数值比较(Numeric Comparison)

操作流程(Workflow)
下面介绍一下选用设备的密钥生成操作流程:

第1步:查看配对特性交换框架中的安全连接位。如果双方的安全连接位都等于1,则采用低功耗安全连接,并进入第2步。否则采用低功耗传统配对,并进入第3步。

第2步:当选用低功耗安全连接时,发起设备和响应设备应遵循如下矩阵选择配对方法:


  
     发起设备
        OOB已设置  OOB未设置  MITM已设置  MITM未设置
  响应设备  OOB已设置  使用OOB  使用OOB      
  OOB未设置  使用OOB  查看MITM      
  MITM已设置        使用IO功能  使用IO功能
  MITM未设置        使用IO功能  采用直接连接

•    “使用OOB”意为选择Out-of-Band
•    “查看MITM”意为忽略“OOB”,查看MITM标识
•    “使用IO功能”,进入第4步,根据双方设备的IO功能选择密钥生成方法

第3步:当选用低功耗传统配对(Legacy Pairing)时,发起设备和响应设备应遵循如下矩阵选择配对方法:


  
     发起设备
        OOB已设置  OOB未设置  MITM已设置  MITM未设置
  响应设备  OOB已设置  使用OOB  查看MITM      
  OOB未设置  查看MITM  查看MITM      
  MITM已设置        使用IO功能  使用IO功能
  MITM未设置        使用IO功能  采用直接连接

•    “使用OOB”意为选择Out-of-Band
•    “查看MITM”意为忽略“OOB”,查看MITM标识
•    “使用IO功能”,进入第4步,根据双方设备的IO功能选择密钥生成方法

第4步:以下是IO功能和密钥生成方法的映射。根据下面这张图表,发起设备和响应设备双方就能根据他们的配对特性找到适合的连接方法。


     发起设备
  响应设备  仅有显示屏  显示是或否  仅有键盘  无输入  键盘和显示屏
  无输出
  仅有显示屏  直接连接  直接连接  密钥输入:响应设备显示,发起设备输入  直接连接  密钥输入:响应设备显示,发起设备输入
  未经验证  未经验证  通过验证  未经验证  通过验证
  显示是或否  直接连接  直接连接(低功耗传统配对)  密钥输入:响应设备显示,发起设备输入  直接连接  密钥输入(低功耗传统配对):响应设备显示,发起设备输入
  未经验证  未经验证  通过验证  未经验证  通过验证
     数值比较(低功耗安全连接)        数值比较(低功耗安全连接)
     通过验证        通过验证
  仅有键盘  密钥输入:发起设备显示,响应设备输入  密钥输入:发起设备显示,响应设备输入  密钥输入:发起设备和响应设备输入  直接连接  密钥输入:发起设备显示,响应设备输入
  通过验证  通过验证  通过验证  未经验证  通过验证
  无输入  直接连接  直接连接  直接连接  直接连接  直接连接
  无输出  未经验证  未经验证  未经验证  未经验证  未经验证
  键盘和显示屏  密钥输入:发起设备显示,响应设备输入  密钥输入(低功耗传统配对):发起设备显示,响应设备输入  密钥输入:响应设备显示,发起设备输入  直接连接  密钥输入(低功耗传统配对):发起设备显示,响应设备输入
  通过验证  通过验证  通过验证  未经验证  通过验证
     数值比较(低功耗安全连接)        数值比较(低功耗安全连接)
     通过验证        通过验证

随后,发起设备和响应设备就能获悉密钥生成阶段将要应用的方法了。后续的第三篇文章将继续介绍如何通过使用密钥输入(Passkey Entry),在低功耗传统配对中生成匹配密钥。