本文对Car Connectivity Consortium Digital Key Release 2 Technical Specification 中的标准交易步骤进行分析和介绍。
Car Connectivity Consortium Digital Key Release 2为Car Connectivty Consortium汽车电子钥匙标准最新版本,标准交易(Standard transaction)是 Car Connectivity Consortium Digital Key Release 2(以下简称CCC Digital Key R2)是核心部分,整个交易步骤如下图所示:
如上图所示,可同时参考CCC Digital Key R2标准中Listing 15-19和15-20的内容,各个交易步骤分别说明如下:
首先:Step1-1和Step2-1是ECDH的第一步操作,交易双方都生成临时密钥对,并交换临时公钥。可以认为标准交易就是在ECDH的基础上增加了相应交易操作,后续将进一步说明。
(EC指的是Elliptic Curve Cryptography,DH指的 Diffie-Hellman algorithm,ECDH的原理这里不详细描述,可参考:https://andrea.corbellini.name/2015/05/30/elliptic-curve-cryptography-ecdh-and-ecdsa/)
其次:Step1-2, Step2-2, Step2-6,Step1-6 是标准的签名和验签步骤,交易双方分别使用各自的永久私钥对交易数据进行签名(Step1-2, Step2-6),然后交易双方选用对应的公钥进行验签(Step2-2,Step1-6)。
在实际交互操作中,车辆和设备交互步骤就是NFC Reader(Vechicle)向ICC(Device)发送两条指令,并得到响应,以上过程中,指令和响应中信息除了临时公钥和签名数据,实际还包括了交易相关的一些数据,如交易序列号,密钥序号等信息。
如图,Step1-3,Step1-4,Step1-5,Step2-3,Step2-4,Step2-5步骤就是生成各种共享密钥的过程,这里又可以大概分成a,b,c三个小步骤,a生成共享密钥Kdh,而b,c都是密钥分散的过程,根据Kdh和不同分散的信息生成了不同用途的密钥:
a、Step1-3和Step2-3是以上所述ECDH的第二步操作,即利用Step1-1和Step2-1的交换的公钥信息,分别生成相同的共享密钥Kdh;
b、Step1-4和Step2-4是密钥分散过程,基于Kdh和相关的交易信息info(Volatile…)进行密钥分散,用来生成当前安全通道所需的三个密钥Kenc,Kmac,Krmac;
c、Step1-5和Step2-5是同样也是密钥分散过程,基于Kdh和相关的交易信息info(Persisent…)进行密钥分散,生成并存储密钥Kpersisent,Kpersisent在接下的安全通讯不会使用,它被存储起来,用于快速交易,所以必须经过标准交易后,才有可能进行快速交易。
以上所述各大步骤的最后一步是Step1-6,车辆解密设备传送来的数据得到设备签名,如验签通过则认证通过,至此交易双方完成了以下工作,建立了安全通道(标志就是生成三个共享密钥Kenc,Kmac,Krmac),进行了双向认证,此外还生成和保存Kpersisent。
紧接下来,交易双方可以基于已经建立的安全通道,继续相关的应用操作,比如mailbox读写,然后结束当前交易。
同时因为交易双方生成和保存了Kpersisent,所以下一次交易交易双方可以采用快速交易的方式来建立安全通道。