现在的位置: 首页 > 综合 > 正文

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

2018年01月09日 ⁄ 综合 ⁄ 共 1209字 ⁄ 字号 评论关闭
[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
,以达到“不用配对”的用户体验。

 

        

 

2、 
Mediatek Android
的配对代码流程

 

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

 
 
 

抱歉!评论已关闭.