CCC数字钥匙设计【NFC】 --车主配对流程Phase2

1、车主配对流程介绍

车主配对可以通过车内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的交互。

2、Phase2:First Session(Digital Key Framework)

该阶段包含两次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。

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第1张图片

2.1 Step1 Digital Key Framework Selection

当手机和车内NFC读卡器通信时,车内NFC读卡器通过SELECT命令,发送对应的AID选中Digital Key framework

若车辆在选中Digital Key framework之前选择了Digital Key Applet,则手机响应Status Word (SW) = 6A82。

手机将通过SELECT response命令,返回所有支持的SPAKE2+版本,以及所有数字钥匙applet协议给车辆。

这个决定了双方使用的SPAKE2+版本(用于创建安全通道)以及数字钥匙的协议版本(用于钥匙分享),这些版本信息将会在车端进行兼容性的判断,以判断流程是否继续。

2.2 Step 2 and 2a: SPAKE2+ Transaction

车端会将要使用的SPAKE2+版本,以及所有支持的数字钥匙applet协议版本发送给手机。

具体SPAKE2+流程详见文档“SPAKE2+, draft-bar-cfrg-spake2plus-02.pdf”

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第2张图片

SPAKE2+ transaction为车辆和手机之间的数据交换建立了一个安全通道。

当发送成功的OP CONTROL FLOW命令(图6-3中的步骤17),或当发送错误的OP CONTROL FLOW命令,或当其他任何流程的终止,则该安全通道将关闭。

APDU命令的错误解密或APDU命令的错误MAC值,也会终止该安全通道。

当车辆尚未准备好进行车主配对时,应使用OP CONTROL FLOW中止并向用户提示情况,如“未满足车主配对的前提条件”。

2.3 Step 3 to 4: WRITEDATA

车辆将使用多个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进行签名。

手机在接受车辆公钥之前,需要对证书链进行解析,并对关键数据元素和签名进行验证。

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第3张图片

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第4张图片

2.4 Step 5 to 6: OP CONTROL FLOW

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:

2.5 Step 9 to 12: GET DATA

相关步骤如下,具体详见图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证书进行验证;

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第5张图片

2.6 Step 13 to 14: WRITE DATA

如果所有验证都成功,车辆可以回写带有opaque attestation的WRITE DATA命令,给到手机,用来确认手机的公钥Device.PK已存在于车辆。此证明将在注册钥匙时发送给KTS。手机将回复WRITE DATA响应。

如果任何验证失败,则车辆不写任何证明。车辆应向手机发送OP CONTROL FLOW命令以中止该流程,并根据表15-27的定义提供适当的错误指示。

CCC数字钥匙设计【NFC】 --车主配对流程Phase2_第6张图片

2.7 Step 15 to 18: OP CONTROL FLOW

如果车辆收到所有密钥证书无误,则在步骤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),结束第二阶段的车主配对流程。

3、车主配对过程涉及的CA证书链

该阶段主要功能是通过SPAKE2+建立安全通道,然后交换并验证车辆与手机的相关证书。

车主配对阶段涉及的相关证书与信息如下:

3.1 车辆端

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--来自手机

3.2 手机端

手机端有如下证书与信息:

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[]信息。--来自车辆

4、总结

NFC车主配对Phase2阶段主要功能如下:

1、Transaction1:通过SPAKE2+建立安全通道,协商协议版本,然后车辆将相关证书发给手机验证,手机存储相关证书信息;

2、Transaction2:手机将相关证书发送给车端验证,车端存储相关证书信息。

你可能感兴趣的:(数字钥匙,CCC,汽车,软件工程)