车主配对可以通过车内NFC进行,若支持UWB测距,也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase2进行介绍。
1) Phase0:准备阶段;
2) Phase1:启动流程;
3) Phase2:与NFC的第一个session(通过Digital Key framework);这里包含2次交易。
Transaction1:协商协议版本、执行SPAKE2、发送所有密钥数据给手机。
Transaction2:provides the creation attestation and certificate chain to the vehicle。
4) Phase3:与NFC的第二个session(通过Digital Key applet);
5) Phase4:收尾阶段,与KTS的交互。
该阶段包含两次Transaction,均在车辆和手机Digital Key Framework之间执行。
第一次Transaction主要包含如下内容:
1) 协商协议版本,
2) 手机与车端的认证,
3) 车辆与手机通过SPAKE2+建立安全通道,
4) 车辆将创建数字钥匙所需的所有数据发给手机,如车辆公钥证书。
第二次Transaction主要包含如下内容:
1) 车辆从手机端读取创建数字钥匙所需的所有数据,并进行验证,
2) 若验证通过,则车辆存储手机的公钥。
在第一次Transaction和第二次Transaction的结束之时,都要执行NFC的复位流程。
完整的Phase2流程如下图,具体可参见CCC规范Figure 6-3 Owner Pairing Flow - Phase 2: First NFC Session。
当手机和车内NFC读卡器通信时,车内NFC读卡器通过SELECT命令,发送对应的AID选中Digital Key framework。
若车辆在选中Digital Key framework之前选择了Digital Key Applet,则手机响应Status Word (SW) = 6A82。
手机将通过SELECT response命令,返回所有支持的SPAKE2+版本,以及所有数字钥匙applet协议给车辆。
这个决定了双方使用的SPAKE2+版本(用于创建安全通道)以及数字钥匙的协议版本(用于钥匙分享),这些版本信息将会在车端进行兼容性的判断,以判断流程是否继续。
车端会将要使用的SPAKE2+版本,以及所有支持的数字钥匙applet协议版本发送给手机。
具体SPAKE2+流程详见文档“SPAKE2+, draft-bar-cfrg-spake2plus-02.pdf”
SPAKE2+ transaction为车辆和手机之间的数据交换建立了一个安全通道。
当发送成功的OP CONTROL FLOW命令(图6-3中的步骤17),或当发送错误的OP CONTROL FLOW命令,或当其他任何流程的终止,则该安全通道将关闭。
APDU命令的错误解密或APDU命令的错误MAC值,也会终止该安全通道。
当车辆尚未准备好进行车主配对时,应使用OP CONTROL FLOW中止并向用户提示情况,如“未满足车主配对的前提条件”。
车辆将使用多个WRITE DATA命令,通过安全通道,向手机发送创建数字钥匙所需的所有数据(详见Figure 6-5和Figure 6-6)。
手机接收成功后,手机应按照CCC规范章节6.3.3.10描述,使用如下方式之一验证车辆公钥证书[K]:
方式一:Vehicle OEM CA Certificate [J] (详见 Figure 6-5)
方式二:Vehicle OEM CA Certificate [M] signed by Device OEM CA [D] (详见 Figure 6-6)
按方式二展开解析:
1. 通过【D】手机OEM CA证书 验证【M】 车辆OEM CA证书;(---该步骤仅方式二才有)
1a. 将创建【L】数字钥匙需要的所有数据发送给手机;
1b. 将【K】车辆公钥证书发送给手机;
2. 通过【M】车辆OEM CA 证书 验证【K】 车辆公钥证书;
3. 将【L】数字钥匙所需所有数据的Authorized.PK[]发送到SE的数字钥匙中;
4. 将【K】车辆公钥证书的Vehicle.PK发送到SE的数字钥匙中
5. 将数字钥匙的公钥DigitalKey.PK发送到【G】数字钥匙证书Digital Key Certificate中。
6. 通过SE中的Instance CA对 【G】数字钥匙证书Digital Key Certificate进行签名。
手机在接受车辆公钥之前,需要对证书链进行解析,并对关键数据元素和签名进行验证。
OP CONTROL FLOW命令表示所有数据传输无误。然后,手机关闭卡模拟,并创建数字钥匙,如CCC规范章节6.3.3.9节所述。
Digital Key framework使用CREATE ENDPOINT命令(参见15.3.2.4节),在SE中使用以下参数创建数字钥匙:
1) vehicle identifier:
2) endpoint identifier:
3) Instance CA identifier:
4) Digital Key option group 1 and 2:
5) protocol version
6) vehicle public key
7) authorized.PK[]:
8) confidential mailbox size:
9) private mailbox size:
10) slot identifier:
11) counter limit:
相关步骤如下,具体详见图6-7:
2a. 手机将通过Vehicle OEM CA签名的【F】Device OEM CA证书发送给车辆
<---->
2. 车辆通过【J】车辆OEM CA证书进行验证;
2b. 手机将通过Device OEM CA签名的【E】Instance CA证书发送给车辆
<---->
3. 车辆通过【F】Device OEM CA证书进行验证;
2c. 手机将通过Instance CA签名的【H】数字钥匙证书发送给车辆
<---->
4. 车辆通过【E】Instance CA证书进行验证;
如果所有验证都成功,车辆可以回写带有opaque attestation的WRITE DATA命令,给到手机,用来确认手机的公钥Device.PK已存在于车辆。此证明将在注册钥匙时发送给KTS。手机将回复WRITE DATA响应。
如果任何验证失败,则车辆不写任何证明。车辆应向手机发送OP CONTROL FLOW命令以中止该流程,并根据表15-27的定义提供适当的错误指示。
如果车辆收到所有密钥证书无误,则在步骤15中发送OP CONTROL FLOW (P1=10h, P2=02h)。
否则,车辆将发送OP CONTROL FLOW (P1=12h, P2=reason),因P2值所示的错误而中止车主配对。
如果步骤15中的OP CONTROL FLOW为P1=10h, P2=02h,则车辆在步骤17中发送OP CONTROL FLOW (P1=11h, P2=11h),结束第二阶段的车主配对流程。
该阶段主要功能是通过SPAKE2+建立安全通道,然后交换并验证车辆与手机的相关证书。
车主配对阶段涉及的相关证书与信息如下:
1、车辆的公私钥匙:Vehicle.PK和Vehicle.SK
2、【K】用Vehicle OEM CA签名的车辆公钥证书(内含Vehicle.PK信息)--要发给手机
3、【L】手机创建数字钥匙所需的所有数据,内含Authorized.PK[]信息。--要发给手机
4、【J】车辆OEM CA证书(Trusted Signature),内含VehicleOEM.PK。
5、【F】手机OEM CA证书(VehicleOEM签名的),内含DeviceOEM.PK。--来自手机
6、【E】用手机OEM CA签名的Instance CA证书(内含公钥Instance CA.PK),每个车辆OEM对应一个Instance CA。--来自手机
7、【H】用Instance CA签名的数字钥匙证书,内含DigitalKey.PK--来自手机
手机端有如下证书与信息:
1、存储在SE芯片里信息
(1) Instance CA(内含公私钥对Instance CA.PK和Instance CA.SK),每个车辆OEM对应一个Instance CA。
(2) 【G】数字钥匙信息(内含数字钥匙的公私钥对DigitalKey.PK和DigitalKey.SK、Vehicle.PK、Authorized.PK[]信息),每个车辆对应一组数字钥匙信息。
2、存储在手机OS里的信息:
(1) 【D】手机OEM CA证书(Trusted Signature),内含DeviceOEM.PK,车主配对前使用。
(2) 【F】手机OEM CA证书(VehicleOEM Signature),内含DeviceOEM.PK。车主配对后使用--要发给车辆
(3) 【M】用手机OEM CA签名的车辆OEM CA证书,内含VehicleOEM.PK。
(4) 【E】用手机OEM CA签名的Instance CA证书(内含公钥Instance CA.PK),每个车辆OEM对应一个Instance CA。--要发给车辆
(5) 【H】用Instance CA签名的数字钥匙证书,内含DigitalKey.PK--要发给车辆
(6) 【K】用Vehicle OEM CA签名的车辆公钥证书(内含Vehicle.PK信息)--来自车辆
(7) 【L】手机创建数字钥匙所需的所有数据,内含Authorized.PK[]信息。--来自车辆
NFC车主配对Phase2阶段主要功能如下:
1、Transaction1:通过SPAKE2+建立安全通道,协商协议版本,然后车辆将相关证书发给手机验证,手机存储相关证书信息;
2、Transaction2:手机将相关证书发送给车端验证,车端存储相关证书信息。