车主配对可以通过车内NFC进行,若支持UWB测距,也可能通过BLE/UWB进行,本文主要介绍通过BLE/UWB进行车主配对的流程。
如果车辆或手机不支持UWB安全测距,则应通过NFC进行车主配对。
如果车辆和手机均支持UWB安全测距,则可通过NFC或BLE进行车主配对。
车主配对可以通过车辆启动的Owner Pairing Connection Establishment自动触发(如CCC规范章节19.2.1),也可以通过用户进入车辆的系统菜单并手动触发车主配对。
在任何一种情况下,在启动车主配对之前,车辆都要确保满足其所有策略,相关策略可能如下:
1、 物理钥匙在车内
2、 车辆无已经匹配的手机
3、 Digital Key功能已开启
采用BLE进行车主配对与采用NFC进行车主配对流程基本相似。只有一些微小的修改,具体详见CCC图19-16。
但Phase 2、Phase 3和Phase 4的NFC相关流程(NFC polling和链路建立、NFC链路teardown、NFC复位等)不适用于BLE上的车主配对。
不支持UWB安全测距的车辆不允许通过蓝牙进行车主配对,且不能广播Owner Pairing Advertisement
BLE车主配对过程,可以细分为如下流程:
1) Owner Pairing Phase0:准备阶段;
2) Bluetooth LE Link Layer Connection Establishment,详见CCC图19-1;
3) BLE Owner Pairing GATT flow,详见CCC图19-2;
4) 手机发送“Request_Owner_Pairing” SubEvent notification来启动车主配对。
5) Phase2:SPAKE2+ Flow、Certificate Exchange;
6) 车辆发送“BLE_pairing_ready” SubEvent通知手机(表明车辆已准备好BLE配对);
7) Bluetooth LE Pairing & Encryption Setup Procedure,详见CCC图19-3;
8) 手机发送“Request_standard_transaction” SubEvent 通知车辆进行标准交互;
9) URSK Derivation Flow(URSK创建流程),详见CCC图19-21;
10) Capability Exchange,详见CCC图19-18;
11) Time Sync;
12) Secure Ranging Setup Flow,详见CCC图19-23;
13) 通过定位算法,检测到有效钥匙在车内;
14) 手机发送“Request_standard_transaction” SubEvent 通知车辆进行标准交互;
15) Phase3;
16) 车辆发送“Deselect_SE” SubEvent 通知手机取消选择Digital Key applet;
17) Phase4;
18) 车辆发送“Deselect_SE” SubEvent 通知手机取消选择Digital Key applet
具体梳理如下图:
下面对每个步骤展开描述。
与采用NFC车主配对的流程基本一致,可参见之前文档《CCC数字钥匙设计【NFC】 --车主配对流程介绍》
1) 车端蓝牙模块通过步骤11&15发送携带CCC_DK_UUID的广播信息;
2) 步骤1,5,6,9,10:车辆端LL层处于广播状态,且设置为接受所有的连接请求。CCC规范要求广播信息配置如下:
3) 步骤2:手机端开启被动扫描passive scanning;
4) 步骤3,4,7,8:手机端 LL层处于扫描状态,且设置为接受所有的广播;
5) 一旦Device LL接收到广播报文,则转发到Device Host。(如上图box A).
6) 步骤12:若有检测到CCC_DK_UUID,则通知用户;
7) 步骤13:若用户接受车主配对请求,则用户提供Pairing password给手机Device Host。
8) 之后Device LL则进入intiating状态。
9) Device LL一旦接收到Vehicle LL相同的广播报文,则如步骤16发起连接请求。
至此,手机与车辆已建立了BLE蓝牙LL层连接。
1) 步骤1:手机启动服务发现,且手机Host作为GATT Client
2) 步骤2:车端返回DK服务。车端Host作为GATT Server
3) 手机启动服务发现,获取车端的DK Service和DK Service UUID_SPSM,并建立L2CAP连接。
4) 关于如何建立LL2CAP连接,可详见蓝牙协议栈Volume 3 Part A。
该步骤主要完成了BLE的GATT协议层的服务发现相关内容。
该步骤,手机通过BLE发送“Request_Owner_Pairing” SubEvent来启动车主配对。具体如下:
CCC规定通过DK Message Format格式来发送数据,采用DK Event Notification的Message Type,如下图,具体也可详见CCC规范19.3章节。
上面三表可以梳理为下图:
另外,在CCC规范章节19.3.8 DK Event Notification有详细描述该命令的数据结构。
上面四表可以梳理为下图:
流程与采用NFC车主配对的Phase2部分相似,可参见之前文档《CCC数字钥匙设计【NFC】 --通过NFC进行车主配对Phase2》。
车端发送“BLE_Pairing_Ready”通知手机,已准备好车主配对。细节可参考上面2.4章节。
详见CCC规范19.5.1的Figure 19-17: Bluetooth 1 LE Secure OOB Pairing Prep.
该步骤为BLE的配对绑定过程。下面大概讲下BLE连接/配对/绑定的区别:
1)连接:通讯的基础,通讯数据为明文,此时蓝牙双方已经能进行通信交互;
2)配对:配对后,则通讯数据经过加密的密文,提高蓝牙链路传输的安全性。
3)绑定:绑定是配对发起时的一个可选配置。把配对信息记录下来, 下次不用配对自动进入加密的连接;
手机发送“Request_Standard_Transaction” SubEvent,车辆收到后,启动标准交互流程。暂不展开详细描述。
步骤9-12:主要进行了UWB测距,主要涉及如下流程:
1) URSK Drivation Flow,详见之前文档《CCC数字钥匙设计【BLE】--URSK管理》
2) Capability Exchange,用来交互手机与车辆之间的DK Protocol Version, UWB Configuration Identifier, PulseShape Combinations等信息。交互流程如下图:
3) Time Sync,详见之前文档《汽车数字钥匙设计05:UWB测距之蓝牙时间同步》
4) Secure Ranging Setup Flow:详见之前文档《CCC数字钥匙设计【BLE】 --建立安全测距》
根据前面UWB各锚点UWB的距离值,通过定位算法,对手机进行定位。若检测到有效钥匙在车内,则满足要求,流程继续。
手机发送“Request_Standard_Transaction” SubEvent,车辆收到后,启动标准交互流程。与本流程中的步骤8相同,暂不展开详细描述。
与采用NFC车主配对的流程基本一致。可参见之前文档《CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3》
与采用NFC车主配对的流程基本一致。可参见之前文档《CCC数字钥匙设计【NFC】 --通过NFC进行车主配对Phase4》
在通过BLE进行车主配对过程中,用到如下Command Complete SubEvent,具体可详见CCC规范 Table19-73。
1) 如果车辆或手机不支持UWB安全测距,则应通过NFC进行车主配对。
2) 如果车辆和手机均支持UWB安全测距,则可通过NFC或BLE进行车主配对。
3) 通过NFC配对和通过BLE配对的流程基本相似,主要差异点如下:
a. 在NFC的Phase2之前增加了BLE连接的建立 ;
b. 在NFC的Phase3之前增加了BLE的配对绑定过程、UWB的测距、手机定位算法(检测到手机在车内)
总结差异如下表: