CCC数字钥匙设计 --数字钥匙数据结构

news2024/11/15 17:30:59

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 StructureAttestation部分组成。

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)、KeyOptions11个元素组成。

6) Attestation(仅用于朋友钥匙)Friend Public Key、Profile、Sharing password information、Validity start date、Validity end date、Key friendly name6个元素组成。

7) 车主数字钥匙,在有效性和访问权限方面没有任何限制,而朋友数字钥匙通过引入ProfileValidity start dateValidity end date等参数,在钥匙有效性和访问权限上可以做一些配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1201411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C51--串口发送中断请求

在串口通信寄存器中有T1&#xff1a;发送中断请求标志位 换行 &#xff1a;\r\n #include "reg52.h" #include <intrins.h>sfr AUXR 0x8E;//串口初始化 void UartInit(void) //9600bps11.0592MHz {PCON & 0x7F; //波特率不倍速SCON 0x50; //8位数…

eNSP毕业设计系列-《大型企业网》-BGP网络无nat

客户主要需求&#xff1a;需要有三栋楼&#xff0c;每栋楼有三个业务。 又新增了要求&#xff0c;要双核心、双防火墙。 所以我根据客户的需求&#xff0c;完成了如下组网设计。 主要技术&#xff0c;MSTPVRRP链路聚合OSPF传统纵网&#xff0c;&#xff08;万金油组合&#…

AI 绘画 | Stable Diffusion WebUI的基本设置和插件扩展

前言 Stable Diffusion WebUI是一个基于Gradio库的浏览器界面&#xff0c;用于配置和生成AI绘画作品&#xff0c;并且进行各种精细地配置。它支持目前主流的开源AI绘画模型&#xff0c;例如NovelAI/Stable Diffusion。 在基本设置方面&#xff0c;Stable Diffusion WebUI的默…

ViewPager2和TabLayout协同使用

一、ViewPager2的基本用法 使用前先添加依赖&#xff1a; implementation androidx.appcompat:appcompat:1.4.0 // AndroidX AppCompatimplementation com.google.android.material:material:1.4.0 // Material Design Components1、制作Fragment 首先制作一个Fragment的xml布…

Mysql数据库管理---MySQL数据库连接、权限认证

1 mysql系统连接权限认证。 1 mysql数据库权限表在数据库启动时就载入内存&#xff0c;当用户通过身份验证后&#xff0c;就在内存中进行相应权限的存取。系统会用到mysql数据库中3个核心表&#xff1a;user&#xff0c;host&#xff0c;db。 主要包括&#xff1a; 用户列&a…

【Opencv】图像融合addWeighted()函数示例和详解

本文通过原理和示例对addWeighted&#xff08;&#xff09;函数进行详解&#xff0c;&#xff0c;并通过改变融合系数展示多个结果&#xff0c;帮助大家理解和使用。 目录 函数原理示例权重&#xff08;0.5,0.5&#xff09;权重&#xff08;0.8,0.2&#xff09;权重&#xff08…

如何解决Windows电脑 Create folder error,Access is denied.

如何解决 Create folder error, Error: mkdir C:\Program Files\nodejs\21.1.0/: Access is denied. Waring: Name : http://npm.taobao.org/mirrors/node/v21.1.0/win-x64/node.exe Code : -2 Error : Create folder error, Error: mkdir C:\Program Files\nodejs\\21.1.0/…

【Linux】虚拟机连不上外网 (ping www.baidu.com不通)

进入linux系统&#xff0c;打开终端&#xff0c;ping www.baidu.com 发现ping不通 首先我连接的是nat模式 查看是否连接上自己本机的网 切换root用户 使用 ifconfig 命令查看是eth0 还是 ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes …

cocosCreator 之 Bundle使用

版本&#xff1a; v3.4.0 语言&#xff1a; TypeScript 环境&#xff1a; Mac Bundle简介 全名 Asset Bundle(简称AB包)&#xff0c;自cocosCreator v2.4开始支持&#xff0c;用于作为资源模块化工具。 允许开发者根据项目需求将贴图、脚本、场景等资源划分在 Bundle 中&am…

LeetCode 189.轮转数组(三种方法解决)

文章目录 题目暴力求解空间换时间三段逆置总结 题目 LeetCode 189.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5…

Redis的特性以及使用场景

分布式发展历程参考 陈佬 http://t.csdnimg.cn/yYtWK 介绍redis Redis&#xff08;Remote Dictionary Server&#xff09;是一个基于客户端-服务器架构的在内存中存储数据的中间件&#xff0c;属于NoSQL的一种。它可以用作数据库、缓存/会话存储以及消息队列。 作为一种内存数…

基于Amazon EC2和Amazon Systems Manager Session Manager的堡垒机设计和自动化实现

01 背景 在很多企业的实际应用场景中&#xff0c;特别是金融类的客户&#xff0c;大部分的应用都是部署在私有子网中。为了能够让客户的开发人员和运维人员从本地的数据中心中安全的访问云上资源&#xff0c;堡垒机是一个很好的选择。传统堡垒机的核心实现原理是基于 SSH 协议的…

模板——“C++”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是C中的模板初阶的内容&#xff0c;下面&#xff0c;让我们进入C模板的世界吧&#xff01;&#xff01;&#xff01; 1. 泛型编程 2. 函数模板 3. 类模板 泛型编程 如何实现一个通用的交换函数呢&#xff1f;…

汽车ECU的虚拟化技术初探(二)

目录 1.概述 2.U2A虚拟化方案概述 3.U2A的虚拟化功能概述 4.虚拟化辅助功能的使能 5.留坑 1.概述 在汽车ECU的虚拟化技术初探(一)-CSDN博客里&#xff0c;我们聊到虚拟化技术比较关键的就是vECU的虚拟地址翻译问题&#xff0c;例如Cortex-A77就使用MMU来进行虚实地址的转换…

阿里云ACK(Serverless)安装APISIX网关及APISIX Ingress Controller

在k8s上安装apisix全家&#xff0c;通过helm安装很简单&#xff0c;但是会遇到一些问题。 安装 首先登录阿里云控制台&#xff0c;在ACK集群详情页&#xff0c;进入CloudShell&#xff0c;执行下面helm命令安装apisix、apisix-ectd、apisix-dashboard和apisix-ingress-contro…

【Linux】Kali(WSL)基本操作与网络安全入门

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍WSL安装Kali及基本操作。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路…

从0到0.01入门React | 004.精选 React 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

upload-labs关卡7(基于黑名单的空格绕过)通关思路

文章目录 前言一、回顾上一关知识点二、靶场第七关通关思路1、看源代码2、空格绕过3、检查文件是否成功上传 总结 前言 此文章只用于学习和反思巩固文件上传漏洞知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的平台&#xff0c;不能随意去尚未授权的网站做渗透测试…

【GEE】10、使用 Google 地球引擎创建图形用户界面【GUI开发】

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 用于生成图形用户界面的 GEE 对象。如何开发具有交互元素的面板。如何将地理处理元素连接到交互式元素。 2背景 在过去的十个单元中&#xff0c;我们展示了 Google Earth Engine 可以成为一种重要且高效的资源&a…

数字双向码、密勒码、传号反转(CMI)码、AMI、HDB3的编码规则和功率谱解析+眼图

数字双向码、密勒码、传号反转&#xff08;CMI&#xff09;码、AMI、HDB3的编码规则和功率谱解析眼图 本文主要涉及数字双向码、密勒码、传号反转&#xff08;CMI&#xff09;码、AMI、HDB3的编码规则,优缺点和功率谱解析以及眼图的分析。关于简单二元码大家可以参考简单二元码…