CCC3.0学习笔记_数字密钥数据结构

CCC3.0学习笔记_数字密钥数据结构

系列文章目录



前言

现在车钥匙的主流方式是把车主的手机作为车辆的钥匙来使用,那么数字钥匙具体是什么,存储在什么地方,以及包含了哪些数据内容,下面具体来聊一下数字钥匙。


4.1 Applet Instance Layout

一个数字密钥小程序实例管理着设备执行数字密钥服务的所有必要的数据,如图4-1所示,里面包含了所有的数字密钥和一个或多个 Instance CAs。
一个数字密钥如4.2章节所描述的结构来表示,Instance CA代表着 Device OEM CA 的中间证书并驻留在设备当中,Instance CA用于验证小程序实例(Aapplet Instance)中创建的数字密钥,因为当设备端创建一个数字密钥之后,Instance CA就是该数字密钥的第一级证书的公私密钥对,车辆端最终也会使用 Instance CA 来完成对数字密钥的验签操作。
另外需要注意的是每一个车场对应唯一的 Instance CA,也就是说一个车厂生产的全部车辆都使用相同的一个Instance CA,
如果说使用一台手机控制不同车厂的多辆车,那么就会在Applet中有多个 Instance CA存储在设备中。
具体可参考下图所示:
在这里插入图片描述

4.2 Digital Key Structure

在这里插入图片描述

4.2.1 The description of Digital Key Structure

一个数字密钥结构存储在于 Applet中并且包含了一组公私密钥对,一个私有邮箱和一个机密邮箱以及其它单元。
一个车主数字密钥仅仅由数字密钥结构组成,它没有任何有效性和访问权限的限制。
一个分享的数字密钥则是由数字密钥结构部分和权限证明部分,此证明与朋友设备相关联,并且使用车主私钥进行签名,所以当密钥分享操作完成之后,在朋友设备第一次靠近的时候,车辆端就是验证这个 Attestation, 从而允许分享设备对车辆执行相关动作。

4.2.2 The element of Digital Key Structure

  • Vehicle Identifier:也称作车辆标识符(vehicle_identifier),唯一标识与数字密钥相关联的车辆,这个8字节的车辆标识符唯一标识一辆车,而且这个标识符不等同于汽车工业里面的VIN码,在车辆进行无线交易过程中进行传输。
  • Endpoint Identifier:用于设备内部的密钥管理,设备端基于附录B.2的规则创建这个终端标识符(endpoint_identifier),在第15章节终端标识符用于密钥的创建,此标识符也反映在数字密钥证书【H】中的主题域中,【H】也被称作数字密钥终端证书。
  • Digital Key Identifier:数字密钥标识符也称作keyID,使得车厂服务器系统能够识别数字密钥,每一辆都有唯一的一个数字密钥标识符,此数据单元也是在第14章节中基于X.509格式证书中的主题密钥标识(subject key identifier),在RFC 5280证书介绍资料中有提及到,Digital Key Identifier应该由公钥来派生或者是用某种方式来产生一个唯一的数值,从公钥来派生数字密钥标识符一共有两种通用的方法,CCC种用到的是方式1(mode1),也就是设备端公钥的 160bit SHA-1 算法的哈希值就是数字密钥标识符。
  • Slot Identifier:也被称作 key slot identifier就是密钥标识符,就是由车辆提供给车主设备用于标识使用哪一个密钥的数值,这个数值在进行无线交易时进行传递,当分享密钥时,车主设备或者车厂服务器提供一个密钥标识符数值给到朋友设备,用于朋友设备创建一个朋友设备密钥,有可能的话标识相关的防盗令牌。
  • Instance CA Identifier:指向用于对数字密钥签名的 Instance CA,它在设备端创建 InstanceCA的时候被分配。
  • Key Options:密钥选项指示密钥允许使用哪种交易(快速或标准交易),有很多种其它的选项,例如通过有线接口来执行交易等,注意的是这些密钥选项并不是访问权限。
  • Device Public Key:在本规范中也称作device.PK或者endpoint.PK,在标准交易中使用到,设备公钥应该是唯一的,它是在终端创建的时候产生的并且保存在车辆端,它也代表着第15章节中终端证书中的主体公钥(subjectPublicKey),需要注意的是Device.Enc.PK与设备公钥是不同的,同样 device private key 和 device.SK以及 endpoint.SK在本规范中是可以互换的,指代同一个东西。
  • Vehicle Public Key:在本规范中也称作 vehicle.PK或者 vehicle_pk,在标准交易中使用到,车辆公钥对于与同一辆车相关联的所有设备都是相同的。
  • Authorized publick keys:授权公钥是由车辆端来提供的,它是密钥分享时对朋友设备公钥证书链验证的根密钥。
  • Private Mailbox:在NFC交易过程中,发送数据给车辆或者从车辆端接收数据的一个缓存,主要指的是在设备端。
  • Confidential Mailbox:在NFC交易过程中,需要加密保护传输的数据单元缓存,主要也是在设备端。

==> 所有数字密钥相关的数据单元在车主配对过程中在车辆接受设备公钥之前进行校验,在车主设备进行密钥分享期间,在车主设备对分享的朋友设备的公钥进行签名之前,车主设备应该校验朋友设备的公私密钥对是在一个合格的SE中创建的,对朋友设备公钥的证书链验证的起点就是使用到车主的数字密钥结构中的一个授权公钥,授权公钥是车辆提供的并且是被信任的,例如 Vehicle OEM CA 公钥,一般在数据密钥结构中有5个授权公钥,而且 Vehicle OEM CA 公钥就是放在第一个位置。

4.2.2.1 The element of the attestation package
  • Friend Public Key:这个就是朋友设备自身产生的公私密钥对中的朋友设备公钥,在密钥分享期间,这个朋友设备公钥与证明数据包中其它的数据单元一同使用车主设备的私钥进行签名。
  • Profile:由分享密钥的发送方来选择,也就是车主来选择分享的密钥拥有哪些访问权限,它需要遵守车厂的政策并由车辆进行校验,所有不遵守车厂策略设置的数字密钥将会被车辆拒绝(例如他们的公钥是不被接受的),至于车厂政策的具体情况不在本规范讨论的范围内。
  • Sharing password infomation:分享密码信息不仅包含了在车主配对期间车辆产生密钥密码的种子,也包含了车主设备是否需要车辆端在激活一个分享的数字密钥之前是否需要一个分享密码的相关信息。
  • Validity start date:可以使用密钥的最早日期和时间,数字密钥可以提早向车辆出示时被接受,但是在这个时间没有到达之前,密钥还是不可以使用的,这就需要车辆内部时间的准确性,可靠性和安全性,这就取决于车厂的政策和能力,简而言之就是分享密钥开始起作用的时间点。
  • Validity end date:这个就是密钥可被使用的截止时刻,同样需要车辆内部时间的准确性,可靠性和安全性,这就取决于车厂的政策和能力,也就是说超过这个时间点,分享的密钥将会过时,不再起作用了。
  • Key friendly name:应在密钥分享时为分享数字密钥分配一个用户友好名称,它可能在密钥分享时与车主的联系人中的名称是一样的,应该允许车主编辑用于识别和个性化的名称,出于隐私原因,友好名称应该不包含好友全名等隐私信息。

==> 除了私有和机密邮箱以外的其它数字密钥数据单元在数字密钥的生命周期内都是不可改变的,一个数字密钥能够被创建,终止,删除,在数字密钥处于“”终止“”状态时,它是不可用的,但是依旧可以用来提供终止证书直到数字密钥最终在内存中删除,数字密钥所处的状态是在Applet内部进行管理的。

总结

以上内容主要是分析了数字密钥和分享密钥的数据内容和每个数据单元的具体解释。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的蜗牛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值