蓝牙配对之——低功耗传统配对,万能钥匙进入

  在上一篇《蓝牙配对之——密钥生成方法》中,我们讨论了密钥的生成方法 – 如果发起设备和响应设备都满足一定的IO功能,它们就可以选择低功耗传统配对(Legacy Pairing)的Passkey Entry方法。

  蓝牙配对之——低功耗传统配对,万能钥匙进入

  在本文中,让我们继续深入了解如何借助Passkey Entry进行传统配对及其工作原理。

  蓝牙配对之——低功耗传统配对,万能钥匙进入

  图 1:通过Passkey Entry进入低功耗传统配对

  1.临时密钥(TK) 和随机数生成

  采用低功耗传统蓝牙配对时,两台设备都会生成临时密钥(Temporary Key,简称TK),进行配对。

  如果发起设备或响应设备中的任何一台设备的IO具有显示功能,就会生成并显示任意一个位于 “000000”到“999999”之间的TK值。另一台设备应具有输入功能,如键盘,这样用户就能输入这一临时密钥值。

  如果发起设备和响应设备的IO功能都不具备显示功能,但都是“仅有键盘(Keyboard Only)”,那么用户就需要确保发起设备和响应设备之间的临时密钥是相同的,这是Passkey Entry进入的一个特例。

  下图是一台设备名为“AuthenTIcaTIon”的设备想要与一台iOS设备配对时的场景,“AuthenTIcaTIon”设备的输入界面上显示了临时密钥。之后,iOS设备就会跳出对话框,提示用户输入临时密钥值。

  蓝牙配对之——低功耗传统配对,万能钥匙进入

  图2:iOS设备的万能钥匙进入

  输入临时密钥值之后,发起设备和响应设备应生成一个128位的临时数值,发起设备的叫做Mrand (“master random”),响应设备的叫做Srand (“slave random”)。

  2.Mconfirm和Sconfirm

  Mconfirm和Sconfirm是128位的确认值,可以通过确认值生成函数c1计算得出。这一函数的相关详情请参考蓝牙核心规格4.2版本,第4卷,H部分,第2.2.3章节

  c1 函数的输入参数包括:

  临时密钥(TK)

  用于计算Mconfirm的Mrand,或用于计算Sconfirm的Srand

  配对请求指令

  配对响应指令

  发起设备地址类型

  发起设备地址

  响应设备地址类型

  响应设备地址

  • 蓝牙配对之——低功耗传统配对,万能钥匙进入已关闭评论
    A+
发布日期:2019年07月14日  所属分类:通信