本文接上一篇CCC数字钥匙BLE概述,介绍BLE中相关连接流程的实现。
2、BLE流程
2.1 所有者配对连接建立
CCC中使用Bluetooth OOB(Out of Band, 带外)配对完成所有者配对、连接建立的流程。BLE设置分为以下两个子部分:
- BLE链路层连接建立,以及BLE所有者配对GATT流
- BLE配对和加密设置
一辆不支持安全测距的车辆不应允许通过BLE接口建立与所有者的配对,也不应广播所有者配对广播。所有者配对应通过NFC启动,以及完成相关的BLE激活流程。
2.1.1 BLE链路层连接建立和BLE所有者配对GATT工作流
建立流程由车辆端使用CCC_DK_UUID进行广播(ADV_IND)。车辆链路层应处于广播状态,同时其过滤策略应设置为接受所有连接请求。
而设备端则开启扫描,设备端应处于扫描状态,其过滤策略设置为接受所有广播。一旦设备链路层接收到一个广播,由HOST处理,Device Host检查收到的广播载荷中是否包含CCC_DK_UUID。如果包含CCC_DK_UUID,则通知用户,请求配对。若用户接受所有者配对请求,则提供配对秘钥,创建BLE连接。当收到下一个车端链路层的广播帧时,设备链路层发送CONNECT_IND,发起一个连接请求(图中步骤16)。至此,LE增强连接完成。
在图19-2中,设备Host(作为GATT客户端)与车辆主机(充当GATT服务器)发起服务发现,以获取DK服务和DK服务UUID_SPSM特征(Simplified Protocol/Service Multiplexer, SPSM),以建立DK服务的L2CAP连接。
图中,设备从车辆GATT服务器读取SPSM值。
2.1.2 BLE配对和加密设置
设置流程从BLE安全OOB配对准备开始。
步骤1:主节点初始化配对,包括配对请求(设备发起)与配对应答(车端应答)。
步骤1a/1b:交换公钥(Pka/Pkb);
步骤2:安全连接秘钥生成;通过随机数进行配对与确认;配对过程中,需要计算Long Term Key(LTK);检查DHKey。
配对DHKey检查成功之后,主机设备开始加密,将设备和车辆添加到解析列表。
在此流程中,设备已生成公钥(Pka)和私钥(SKa),并通过安全通道收到车辆的蓝牙地址(BTAddrB),车辆的承诺值(Cb)和随机数(rb)。
车辆已生成其公钥(PKb)和私钥(SKb),并通过安全通道收到设备的蓝牙地址(BTAddrA)、设备的承诺值(Ca)和随机数(ra)。
2.1.3 所有者配对广播
对于所有者配对,仅支持Legacy LE 1M PHY。ADV_IND需要按照Section 2.3.1.1 Volume 6 Part B。
事件类型:无指向可连接和可扫描。
ADV_IND中包含广播地址和广播数据,如下所示,其中广播地址(Advertising Address, AdvA)为6字节。
其中IntentConfiguration
用于设备上允许单独的用户流(user flow),具体取决于用户是否已经在车辆中开始车主配对。
持续更新,系列教程,收藏关注吧!
1、CCC联盟——UWB PHY
2、CCC联盟数字车钥匙(一)——UWB MAC概述
3、CCC联盟数字车钥匙(二)——UWB MAC时间网格
4、CCC联盟数字车钥匙(三)——UWB MAC时间网格同步及Hopping
5、CCC联盟数字车钥匙(四)——UWB MAC协议
6、CCC联盟数字车钥匙(五)——UWB MAC STS索引
7、CCC联盟数字车钥匙(六)——BLE连接概述