1、数字钥匙是什么?
汽车数字钥匙,将传统实体钥匙数字化,用卡片、手机等智能设备来做数字钥匙的载体。
从而实现无钥匙进入/启动、为他人远程钥匙授权、个性化的车辆设置等功能。
目前市场上流行的数字钥匙方案是通过NFC、BLE、UWB通信技术。
1) CCC1.0: NFC
2) CCC2.0:NFC + BLE(NFC + RKE功能)
3) CCC3.0:NFC + BLE+UWB (NFC + RKE功能 + PEPS和定位相关功能)
数字钥匙将传统实体钥匙数字化。简单的来想,就是将传统实体钥匙转化为一连串与钥匙相关的数据,分别存在于手机、车辆、车端服务器等。
首先数字钥匙,从本质上来讲,是一个与手机和车辆绑定的证书和密钥。
那具体数字钥匙包含哪些数据信息?怎么存储?下面通过数字钥匙在手机端的数据结构展开描述。
数字钥匙的相关信息是存储在手机SE芯片中的Applet中,即下图的Digital Key Applet中。
Digital Key Applet Instance承载了手机执行数字钥匙服务所需的所有数据。包含所有的数字钥匙和Instance CAs。
车主数字钥匙仅由Digital Key Structure组成。
朋友数字钥匙由Digital Key Structure和Attestation部分组成。
Digital Key Structure存储在Applet intance中,包含一个公钥/私钥对、一个private邮箱、一个confidential邮箱和其他元素。下面详细展开描述一下Digital Key Structure。如图4-2所示。
2、Digital Key Structure
2.1 Vehicle Identifier
Vehicle Identifier,即车辆标识符。唯一标识数字钥匙所关联的车辆。
每个车辆OEM的车辆标识符是唯一的。
车辆标识符与汽车工业中使用的VIN不相同。
它是由车辆在非接触式交易过程中传输的。
2.2 Endpoint Identifier
Endpoint Identifier,即端点标识符。用于手机内部钥匙管理。
如CCC规范第15节描述,“endpoint_identifier”在创建钥匙时使用。
该标识符反映在Digital Key Certificate [H]的subject字段中,也称为“Digital Key Endpoint Certificate”。
我个人的理解是一个endpoint,即对应手机端的一把数字钥匙。
手机根据CCC规范附录B.2中给出的规则创建Endpoint Identifier。
2.3 Digital Key Identifier(也叫keyID)
Digital Key Identifier,数字钥匙标识符。
所有的钥匙都由其在车辆OEM服务器和手机OEM服务器中的Digital Key Identifier(keyID)来标识。所以数字钥匙标识符应该是唯一的。
根据X.509证书定义,该元素在CCC规范的第14章中被命名为““subject key identifier”。它是手机公钥上的SHA-1哈希值(可参见【ISO/IEC 10118-3 Hashfunctions - Part 3: Dedicated hash-functions】和【FIPS PUB 180-4: Specifications for the Secure Hash Standard – 2015】)。详见CCC规范附录B.2。
2.4 Slot Identifier
Slot Identifier,槽标识符。车辆提供给车主手机的一个值,用于在本地识别所使用的钥匙。
该值在非接触式交易中传输。
在共享密钥时,车主手机或车辆OEM服务器向朋友手机提供一个槽标识符值,用于创建朋友钥匙,并在适用的情况下识别相关的immobilizer token。
2.5 Instance CA Identifier:
Instance CA Identifier,实例CA标识符。
指对数字钥匙进行签名的Instance CA。它是由手机在Instance CA创建时分配的。
2.6 Key Options:
Key Options,钥匙选项。
指示该钥匙允许执行哪些transaction(快速、标准)。
请注意,这些选项不是访问权限。
2.7 Device Public Key:
Device Public Key,手机公钥。(也称为device.PK and endpoint.PK)。、
在标准transaction中使用。
手机公钥必须是全局唯一的。它在endpoint创建时生成,并存储在车辆中。
它由CCC规范第15节中endpoint证书的“subjectPublicKey”字段表示。
请注意,Device.Enc.PK不同于Device Public Key。
类似地,device private key,device.SK,endpoint.SK在CCC规范中可互换使用。
总结,在CCC规范中:
Device Public Key = device.PK = endpoint.PK
Device Private Key = device.SK = endpoint.SK
2.8 Vehicle Public Key:
Vehicle Public Key,车辆公钥,也叫Vehicle.PK and vehicle_pk。
在标准transaction中使用。
车辆公钥对于与同一辆车关联的所有手机是相同的。
2.9 Authorized public keys:
Authorized public keys,授权公钥。
由车辆提供,并在钥匙共享时,用作朋友公钥验证链中的根。
在1.2.1版本的规范中补充说明,车辆应仅包含一个单一的authorized_PK,额外的授权公钥的使用留到将来的应用中。
2.10 Private Mailbox:
Private Mailbox,私有邮箱。
该邮箱本质上是一个buffer缓冲区。一个用于在数字钥匙交易期间,允许相关元素传输到车辆或从车辆中传输的buffer(具体详见CCC规范第4.3.1节)。
2.11 Confidential Mailbox:
Confidential Mailbox,机密邮箱。
本质也是一个buffer缓冲区,一个允许在数字钥匙交易期间,将需要机密保护的元素传输到车辆或从车辆中传输的buffer(具体详见CCC规范第4.3.2节)。
3、Attestation package(仅朋友钥匙)
1) 在车辆接受手机公钥之前,数字钥匙的所有相关数据元素,需由车辆在车主配对过程中进行验证(详见CCC规范第6章)。
2) 在对朋友手机公钥签名之前,数字钥匙的所有相关数据元素,需由车主手机在钥匙共享过程中进行验证(详见CCC规范第11章)。
在对朋友的公钥签名之前,车主会验证朋友的公钥对是否已在符合条件的SE上创建。
验证链从车主Digital Key structure中的authorized public key开始,该公钥已经提供并受到车辆的信任。例如,车辆OEM CA公钥(详见CCC规范第16.8节)。
attestation package(仅用于朋友钥匙)中提供的元素包含如下:
3.1 Friend Public Key:
Friend Public Key,朋友手机公钥。
朋友手机生成公钥和私钥。在钥匙共享过程中,该公钥与attestation package中的其他字段一起由车主手机签名。
3.2 Profile:
Profile,权限配置。
由共享钥匙的发送方选择(Selected by the sender of a Shared Key)。需符合车辆OEM政策,并经整车验证。
不符合车辆OEM策略设置的数字钥匙将被车辆拒绝(即,它们的公钥不被接受)。车辆OEM政策不在CCC规范范围内。
3.3 Sharing password information:
包含车辆的种子,用于从车主配对时建立的shared secret 生成Sharing password。
Contains the seed for the vehicle to generate a sharing password from the shared secret established at owner pairing.
该Sharing password还包含:车主手机策略是否要求(或不要求) ,车辆在激活共享数字钥匙之前,向朋友请求Sharing password的信息。
It also contains the information regarding whether the owner device policy requires (or not) that the vehicle requests a sharing password to the friend before activating the shared Digital Key.
3.4 Validity start date:
Validity start date,起始有效时间。
分享的钥匙最早可以使用的日期和时间。
3.5 Validity end date:
Validity end date,结束有效时间。
该钥匙最晚可以使用的日期和时间。
3.6 Key friendly name:
Key friendly name,朋友钥匙名字
该字段包含朋友钥匙的名字,在数字分享时时,应该定义该名字(具体详见CCC规范第11节)。
出于隐私原因,该名字不应该包含私人信息,如朋友的全名。
3.7 补充描述
1) 在数字钥匙的有效期内,除private和confidential邮箱外,其他的数字钥匙元素均不可更改。
2) 数字钥匙可以创建、终止和删除。
3) 在“终止”状态下,它是不可用的,但仍然能够提供终止证明,直到它最终从内存中删除。
4) 数字钥匙的状态由applet内部管理。
4、总结
1) 汽车数字钥匙,即将传统实体钥匙数字化。
2) 数字钥匙,从本质上来讲,是一个与手机和车辆绑定的证书和密钥。然后将这些证书&密钥分别存在于手机、车辆、车端服务器等。
3) 车主数字钥匙仅由Digital Key Structure组成。。
4) 朋友数字钥匙由Digital Key Structure和Attestation部分组成。
5) Digital Key Structure由5个Identifier(Vehicle Identifier、Endpoint Identifier、Digital Key Identifier、Slot Identifier、Instance CA Identifier)、3个public key(Device Public Key、Vehicle Public Key、Authorized public keys)、2个mailbox(Private Mailbox、Private Mailbox)、KeyOptions等11个元素组成。
6) Attestation(仅用于朋友钥匙)由Friend Public Key、Profile、Sharing password information、Validity start date、Validity end date、Key friendly name等6个元素组成。
7) 车主数字钥匙,在有效性和访问权限方面没有任何限制,而朋友数字钥匙通过引入Profile、Validity start date、Validity end date等参数,在钥匙有效性和访问权限上可以做一些配置。