fengxin215

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

蓝牙简单配对(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 Discovery到Authentication是配对的四个步骤,分别是搜索设备、建立物理连接、各自产生数据加密所需的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完成,其他版本大同小异,也可以参考。

 



 
posted on 2016-04-15 15:09  fengxin215  阅读(1102)  评论(0)    收藏  举报