6 BR/EDR空闲模式过程
通用查询
目的
目的是向发起者提供通用可发现设备或受限可发现设备的蓝牙设备地址、时钟、设备类别、page scan模式和扩展查询响应信息。
通用查询过程应该用于通用目的的发现,例如:发现所有可发现的设备,无论它们处于通用可发现模式还是受限可发现模式。一个设备如果用通用查询去发现设备,并以某种形式呈现给用户,应该将处于受限可发现模式的设备从通用可发现模式的设备中区分出来,例如,将处于受限可发现模式的设备排在列表顶部或高亮显示。
注意:为终端用户将处于受限可发现模式的设备区分开来的原理是,设备通常只有在终端用户进行明确操作之后才进入受限可发现模式,这表明用户的直接目标是发现特定的设备并与之交互。
UI术语
Bluetooth Device Inquiry
描述
B处于不可发现模式,B'处于受限可发现模式,B"处于通用可发现模式。A发出通用查询,只有B'和B"会响应,响应数据包中有设备地址等信息,A得到了所有可发现设备的地址等信息。
条件
当蓝牙设备发起通用查询,要维持INQUIRY状态10.24 s或更长时间,除非查询者收集到足够多设备的响应决定提前退出INQUIRY状态。蓝牙设备应使用GIAC(General Inquiry Access Code)执行查询。
受限查询
目的
目的是向发起者提供受限可发现设备的蓝牙设备地址、时钟、设备类别、page scan模式和扩展查询响应信息。
只有当知道要发现的设备使用的是受限可发现模式时,才应该使用受限查询过程。
UI术语
Bluetooth Device Inquiry
描述
B处于不可发现模式,B'处于受限可发现模式,B"处于通用可发现模式。A发出受限查询,只有B'会响应,响应数据包中有设备地址等信息,A得到了所有受限可发现设备的地址等信息。
条件
当蓝牙设备发起受限查询,要维持INQUIRY状态10.24 s或更长时间,除非查询者收集到足够多设备的响应决定提前退出INQUIRY状态。蓝牙设备应使用LIAC(Limited Inquiry Access Code)执行查询。
名字发现
目的
目的是为发起者提供可连接设备的蓝牙设备名称(范围内的设备会响应寻呼)。
UI术语
Bluetooth Device Name Discovery
描述
名字请求
名字请求是从可连接的蓝牙设备检索蓝牙设备名称的过程。为了获得另一个设备的名称,没有必要执行完整的链路建立过程。
名字发现
名字发现是通过向已知设备执行名字请求从可连接的蓝牙设备中检索蓝牙设备名称的过程。(已知设备指蓝牙设备地址是可获得的)。其实就是之前已经通过通用查询或受限查询得到了远程设备的地址,这里再用这些地址去请求各个远程设备的名称。
条件
在名字请求过程中,发起方将使用事先刚取得(通常通过查询过程获取)的远程设备的Device Access Code。
设备发现
本节仅适用于BR/EDR和BR/EDR/LE设备类型的设备。LE没有设备发现。
目的
目的是为发起者提供可发现设备的蓝牙设备地址、时钟、设备类别、page scan模式、蓝牙设备名称和扩展查询响应信息。
UI术语
Bluetooth Device Discovery
描述
在设备发现过程中,首先执行查询(通用或受限),然后对响应查询的部分或所有设备执行名字发现。如果设备发现的发起者通过来自远程设备的扩展查询响应接收到一个完整的本地名称或一个被认为足够长的缩短的本地名称,发起者不应该再向同一个设备发起单独的名字发现。
条件
要满足查询(通用或受限)条件和名字发现条件(例如,被发现的设备是可发现并且可连接的)。
绑定
目的
目的是基于公共链接密钥在两个蓝牙设备之间创建关系(一个绑定)。在绑定过程中会创建并交换链接密钥(配对),并且双方蓝牙设备都会存储该密钥,用于将来的认证。除了配对之外,绑定过程会涉及更高层的初始化过程。
UI术语
Bluetooth Bonding
描述
绑定有两种形式:通用绑定和专用绑定。
通用绑定
通用绑定是指作为访问服务的前导在连接建立或通道建立过程中执行绑定的过程。
当执行通用绑定的双方设备都支持SSP(安全简单配对)时,Authentication_Requirements参数应设置为MITM Protection Not Required – General Bonding,除非一个可用的本地服务的安全策略需要MITM保护,在这种情况下,Authentication_Requirements参数应设置为MITM Protection Required – General Bonding。当设备执行SSP过程,但在断开物理链路后不打算保留链接密钥时,将使用'No bonding'。
A向某个已知设备B发起绑定,首先,如果曾经保存过与B的配对链接密钥要删除密钥。然后AB间建立链接,进行配对。配对成功后双方设备各自更新已配对设备列表并保存链接密钥。
专用绑定
专用绑定是指一个设备连接到另一个设备只是为了配对而不访问特定服务的过程。与建立链接或通道时进行的配对相比,专用绑定的主要区别在于,为了进行绑定,必须由寻呼设备(A)发起认证。
当执行专用绑定的双方设备都支持SSP时,Authentication_Requirements参数应设置为MITM Protection Not Required – Dedicated Bonding,除非一个可用的本地服务的安全策略需要MITM保护,在这种情况下,Authentication_Requirements参数应设置为MITM Protection Required – Dedicated Bonding。当设备执行SSP过程,但在断开物理链路后不打算保留链接密钥时,将使用'No bonding'。
设备不支持SSP时,要在LMP_ACCEPTED之后、LMP_SETUP_COMPLETE之前执行传统配对。
双方设备都支持SSP时,要在LMP_SETUP_COMPLETE之后执行SSP。
条件
在发起绑定前,发起设备(A)必须知道要配对设备的Device Access Code,这个一般先通过设备发现获得。
可以发起绑定的蓝牙设备(A)建议使用受限查询,接受绑定的蓝牙设备(B)建议支持受限可发现模式。
绑定原则上与链接建立的条件相同:
• 被呼叫的设备(B)应设置为可绑定模式。寻呼设备(A)因为已经发起了绑定过程,假设允许配对。
• 寻呼设备(A)应发起认证。
• 在启动绑定过程的认证部分之前,寻呼设备应删除与被寻呼设备之前的绑定相对应的任何链接密钥。