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

系列文章目录


文章目录

  • 系列文章目录
  • 前言
    • 4.1 Applet Instance Layout
    • 4.2 Digital Key Structure
      • 4.2.1 The description of Digital Key Structure
      • 4.2.2 The element of Digital Key Structure
        • 4.2.2.1 The element of the attestation package
  • 总结

前言

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


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内部进行管理的。

总结

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

CCC3.0学习笔记_数字密钥数据结构相关推荐

  1. CCC3.0学习笔记_数字密钥分享

    系列文章目录 第六章 CCC3.0 DIGITAL KEY SHARING 数字密钥分享 文章目录 系列文章目录 前言 一.跨平台密钥分享通道建立 1. Channel Establishment f ...

  2. CCC3.0学习笔记_数字钥匙系统架构

    系列文章目录 第六章 CCC3.0 System Architecture 文章目录 系列文章目录 前言 1. 概述和范围 2. 高层级功能 3. 高层级架构 总结 前言 随着科技不断发展,车钥匙经历 ...

  3. CCC3.0学习笔记_证书数据

    CCC3.0学习笔记_证书数据 系列文章目录 文章目录 系列文章目录 前言 1. [A] - SE Root CA Certificate 2. [B] - SE Root Certificate 3 ...

  4. CCC3.0学习笔记_认证和隐私保护

    CCC3.0学习笔记_Authentication and Privacy Keys 系列文章目录 文章目录 系列文章目录 前言 1. 手机端和车厂服务器端的密钥存储 2. 密钥的产生和使用的说明 3 ...

  5. CCC3.0学习笔记_蓝牙OOB配对

    系列文章目录 第四章 CCC3.0数字车钥匙学习入门之蓝牙OOB配对 文章目录 系列文章目录 前言 一.蓝牙的几种配对方式 1. Numeric Comparision 2. Just Works 3 ...

  6. CCC3.0学习笔记_快速交易

    上一次有提及只有进行过车辆与手机的标准交易之后,才有可能进行快速交易,假定双方已进行过标准交易,也就是在车辆和手机端的NVM中已经保存了长期的对称密钥 Kpersistent, 下面将详细快速交易的整 ...

  7. CCC3.0学习笔记_标准交易

    下面对车辆与手机进行标准交易的整个过程的详细解释: 执行此标准交易的前提条件是车辆已经从车厂服务器获取到公私密钥对(Vehicle.PK&Vehicle.SK)同时手机端也具有自身终端的公私密 ...

  8. CCC3.0学习笔记_Digital Key Structure

    系列文章目录 第六章 CCC3.0 DIGITAL KEY Structure 文章目录 系列文章目录 前言 一.数字钥匙的数据结构 1. Digital Key 数据结构说明 2. Digital ...

  9. CCC3.0学习笔记_SCP03安全通道

    1. 在安全通道建立的情况下,数据安全交互的应答流程图如下所示,具体步骤解释如下: 1> 避免SCP03安全通道协议中的CMAC与C-MAC的混淆,CMAC是计算C-MAC校验值的一       ...

最新文章

  1. C中的野指针—如何避免
  2. nas服务器搭建 linux,小白都能看懂的NAS服务器搭建教程
  3. 怎么计算末年某月某天有几个星期天公司
  4. 宣化市大专计算机学校,2018张家口专科大学有哪些 最新大专院校名单
  5. C语言-附加-按位翻转一个unsigned int 类型的数字
  6. 从Oracle DBA出发,走进GaussDB的世界 - 云和恩墨大讲堂GaussDB专题
  7. 解题报告 Toy Bricks
  8. mysql 存储过程临时表_在MySQL存储过程中创建的临时表的范围
  9. git常用的10个命令
  10. LeetCode#20 有效的括号
  11. ubuntu wireshark找不到网卡及开启IP转发
  12. Multi-class classification:One-vs-all
  13. 潘悟云方言计算机,山东方言精组与见晓组声母的分合研究
  14. Android开发十年,面试百度竟被刷!柳暗花明2020获字节跳动Offer(面试总结)
  15. 公寓这个大坑,劝大家不要再跳了
  16. Docker设置共享文件夹
  17. 关于Redis出现“java.io.IOException: 远程主机强迫关闭了一个现有的连接”的一次排查
  18. 机器学习:最大熵模型
  19. CAD坐标点、经纬度坐标点转ARCGIS矢量,求重叠面积
  20. 如何用matlab演奏《偏爱》

热门文章

  1. 什么是真正的云原生?
  2. 解决ubuntu下c++标准库缺少conio.h
  3. 3.7V升5V2A兼容进口MP2359/AH6901
  4. Unity学习笔记 使用DMM(Distance-Independent Millimeter)思想设计VRAR中的UI
  5. 开源背后 | 面对端侧推理引擎的挑战,阿里工程师如何应对?
  6. Epson 打印机设置
  7. 生物信息学数据库大全
  8. (附源码)计算机毕业设计个人相册管理系统
  9. 凯利公式计算器安卓_安卓手机上让人相见恨晚的5个APP,好用又好玩,你都装了吗?...
  10. C++ 使用 Skia 绘图(已停更)