蓝牙简单配对(Simple Pairing)协议及代码流程简述

[DESCRIPTION]
 
在BT2.1及之后版本,蓝牙协议有在传统的密码配对(PIN Code Pairing)之外,新增一种简单配对(Simple Pairing)的方式。这种新的配对方式操作更为简单、安全性也更强。目前市面上大部分蓝牙设备均已支持简单配对方式。
从用户角度上看,传统的PIN Code Pairing 需要双方蓝牙设备 输入配对密码(如果双方都有输入设备的话),而简单配对则只需要 双方确认屏幕上的6位随机数相同即可(如果双方都有屏幕)。
下面对简单配对的协议及代码流程进行简单描述。
 
 
[SOLUTION]
 

1、  在蓝牙规范中有用下图描述简单配对过程

a)         上方第一行描述了三种配对过程,分别为Bluetooth In Band, OOB Discovery only, OOB Discovery and Authentication。这里OOB是指Out of Band,即非蓝牙的传输方式,如NFC

b)         左边第一列从Device DiscoveryAuthentication是配对的四个步骤,分别是搜索设备、建立物理连接、各自产生数据加密所需的Link key、鉴权(即确认双方Link key正确)。

c)         Bluetooth In Band是手机最常用的蓝牙配对方式

                         i.              通过Inquiry (蓝牙术语,规范中有详细定义如何通过Inquiry操作来找到周围设备)来搜索周围设备,

                       ii.              再通过Page(和Inquiry一样,也是专有术语)建立蓝牙物理连接(ACL Link

                      iii.              产生Link key的过程比较深入,这里暂不深入讨论,有兴趣可研究BLUETOOTH SPECIFICATION Version 4.0 – Volume 3 – Part H - Security Manager Specification

                      iv.              双方各自产生Link key后,可通过三种方式进行鉴权Numeric Compare (6位随机密码比较)Passkey Entry (一方显示数据,另一方输入密码)Just Works (不鉴权,直接使用)

d)         OOB Discovery only & OOB Discovery and Authentication 这两种方式是使用非蓝牙的传输方式来完成Bluetooth In Band的部分步骤,如通过NFC来交换双方蓝牙地址和Link key,以达到“不用配对”的用户体验。

 

        蓝牙简单配对(Simple Pairing)协议及代码流程简述_第1张图片

 

2、  Mediatek Android的配对代码流程

 

下述代码流程基于ALPS.JB2.MP完成,其他版本大同小异,也可以参考。

 
蓝牙简单配对(Simple Pairing)协议及代码流程简述_第2张图片
蓝牙简单配对(Simple Pairing)协议及代码流程简述_第3张图片
蓝牙简单配对(Simple Pairing)协议及代码流程简述_第4张图片
 

 

你可能感兴趣的:(BT)