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。

  1. Phase3:与NFC的第二个session(通过Digital Key applet);

  2. 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。

2.1 St ep1 Digital Key Framework Selection

当手机和车内NFC读卡器通信时,车内NFC读卡器通过SELECT命令,发送对应的A ID 选中 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"

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】车辆公钥证书**发送给手机;

  1. 通过**【M】车辆OEM CA 证书验证【K】 车辆公钥证书**;

  2. 将**【L】数字钥匙所需所有数据**的Authorized.PK[]发送到SE的数字钥匙中;

  3. 将**【K】车辆公钥证书**的Vehicle.PK发送到SE的数字钥匙中

  4. 将数字钥匙的公钥DigitalKey.PK发送到**【G】数字钥匙证书Digital Key Certificate**中。

  5. 通过SE中的Instance CA对 【G】数字钥匙证书Digital Key Certificate进行签名。

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

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证书**发送给车辆

<---->

  1. 车辆通过**【J】车辆OEM CA证书**进行验证;

2b. 手机将通过Device OEM CA签名的**【E】Instance CA证书**发送给车辆

<---->

  1. 车辆通过**【F】Device OEM CA证书**进行验证;

2c. 手机将通过Instance CA签名的**【H】数字钥匙证书**发送给车辆

<---->

  1. 车辆通过**【E】Instance CA证书**进行验证;

2.6 Step 13 to 14: WRITE DATA

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

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

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.SKVehicle.PKAuthorized.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:手机将相关证书发送给车端验证,车端存储相关证书信息。

相关推荐
老猿讲编程2 小时前
整车厂如何规划构建汽车集成安全团队的软件研发能力
安全·汽车
车载诊断技术8 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
重生之我是项目经理8 小时前
PMO转型提升汽车销售效率:看板工具的关键作用
汽车·项目管理
guogaocai1231 天前
国高材服务 | 高分子结晶动力学表征——高低温热台偏光显微镜
汽车·材料工程
不止会JS1 天前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
Theodore_10222 天前
4 软件工程——总体设计
java·开发语言·数据库·算法·java-ee·软件工程·设计
Theodore_10222 天前
1 软件工程——概述
java·开发语言·算法·设计模式·java-ee·软件工程·个人开发
准橙考典2 天前
如何考驾照?
物联网·安全·华为·自动驾驶·汽车
shinelord明2 天前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
人才程序员3 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面