【Android】蓝牙开发——经典蓝牙配对介绍(通过手机系统蓝牙演示)

目录

一、蓝牙配对介绍

二、蓝牙配对过程

三、蓝牙配对方式展示


一、蓝牙配对介绍

蓝牙规范定义了两种标准配对过程,LMP配对(也称为基于PIN码)和SSP安全简易配对。

LMP(Link Manager Protocol)配对,又名PIN码配对,即pincode配对方式。

SSP(Secure simple pairing)安全简易配对,一共有四种,其中Out of Band很少使用到,具体如下:

(1)Numeric Comparison (即confirm配对方式)

配对双方都显示一个6位的数字,由用户来核对数字是否一致,并输入Yes/No,两端Yes表示一致即可配对,可以防止中间攻击。 使用场景:两端设备可以弹出6位十进制数,并且有yes和no按钮。

(2)Passkey Entry 

配对目标输入一个在本地设备上显示的6位数字,输入正确即可配对,并可以防止中间人攻击。 使用场景:一端设备可以显示,另一端设备可以输入。

(3)Just Works 

不会进行鉴权,不能防止中间人攻击用于配对没有显示没有输入的设备,主动发起连接即可配对,用户看不到配对过程,不可以防止中间人攻击,例如连接蓝牙耳机。 使用场景:用于即不能显示6位随机数,也不能输入的设备。

(4)Out of Band 

两设备的通过别的途径交换配对信息,例如一些NFC蓝牙音箱。

任何配对方法的结果都是一样的:即创建共享的链路密钥(Link Key)。

二、蓝牙配对过程

配对设备的过程旨在在两个蓝牙设备之间创建共享密钥:链路密钥(Link Key)。然后,该链路密钥(Link Key)用于彼此认证设备并加密交换的数据。数据实际上并没有使用链路密钥(Link Key)直接加密;临时加密密钥(Encryption Key)从链路密钥(Link Key)和在加密通信流开始之前不久交换的随机数导出。然后,该加密密钥(Encryption Key)用于在两个方向上加密数据。可以在连接处于活动状态的任何时候更改它,一旦连接关闭,或者如果加密停止,将被丢弃。

一旦两个设备拥有相同的链路密钥(Link Key),该共享密钥可以用于在稍后的时间将两个设备重新认证。当重新连接时,设备通过交换从其派生的数字来快速验证它们都具有相同的链路密钥(Link Key)。如果链路密钥(Link Key)匹配,则可以继续创建会话密钥(Session Key)。否则,配对过程(LMP配对或SSP)必须从一开始重新启动,从而创建一个全新的链路密钥(Link Key)。

三、蓝牙配对方式展示

这里主要展示pincode、confirm、passkey和justwork四种配对方式,看看蓝牙设备在不同的配对方式下,在手机设置的系统蓝牙中,配对蓝牙设备,界面弹出的配对框是什么样子的。

(1)pincode 配对方式,配对码一般为0000或1234,只要手机端配对码输入正确,即可配对成功。

(2)confirm 配对方式,除了手机端确认配对码之外,蓝牙设备端也需要确认该配对码,两端同时确认正确之后才能配对成功。

(3)passkey 配对方式,手机端弹出配对码显示框,在蓝牙设备端填入该配对码确认,确认正确才能配对成功。

(4)justwork 配对方式,手机端、蓝牙设备端不显示任何配对相关信息,直接配对成功。

参考文章:

1、蓝牙安全简单配对的解释 https://www.jianshu.com/p/683c287fee3e

2、蓝牙配对过程分析(经典蓝牙)https://blog.csdn.net/w1107845086/article/details/79636090

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章