CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3

2023-10-20 07:44

本文主要是介绍CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、车主配对流程介绍

车主配对可以通过车内NFC进行,若支持UWB测距,也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase3进行介绍。

1) Phase0:准备阶段;

2) Phase1:启动流程;

3) Phase2:与NFC的第一个session(通过Digital Key framework);这里包含2次交易。

Transaction1:协商协议版本、执行SPAKE2、发送所有密钥数据给手机。

Transaction2:provides the creation attestation and certificate chain to the vehicle。

4) Phase3:与NFC的第二个session(通过Digital Key applet);

5) Phase4:收尾阶段,与KTS的交互。

2、Phase3:Second Session(Digital Key applet)

第二个NFC会话在车辆和Digital Key applet之间执行。第一次标准交易采用type=7,建立认证安全通道,之后由手机端 发起Tracking Key Request。

Figure 6-8: Owner Pairing Flow – Phase 3: Second NFC Session

2.1 Step1-2选择Digital Key applet

当手机和车内NFC读卡器通信时,车内NFC读卡器通过SELECT命令,发送对应的AID选中Digital Key applet

2.2 Step3-12标准交互

车辆应选择Digital Key applet,并执行标准交易【步骤3-6,type=7(见Table 9-1)】。

如果车辆没有按照Figure 6-3(NFC Owner Pairing Flow Phase2)步骤13所示的方式写入opaque attestation(即车辆没有发送 write DATA命令),则车辆应先将opaque attestation写入private mailbox。

车辆通过WRITE_DATA(attestation)告知手机,手机的证书已在车端加载完成。

如果需要immobilizer token并从车辆中取回,则需要在Digital Key applet中将其写入车主数字钥匙的confidential mailbox中。

为了将适当的数据结构写入confidential and private mailboxes,车辆应使用EXCHANGE命令和适当的参数来:

  • 如果还没有写入opaque attestation,则将带有5F5Ah标记和长度的opaque attestation写入private mailbox中的KeyAtt字段

  • 将车主的防盗令牌(immobilizer token)写入confidential mailbox(如果从车辆中检索到防盗令牌)

  • 将槽位标识符位图写入private mailbox(conditional)

  • 将车主槽标识符写入private mailbox的槽标识符列表(conditional)

  • 将车辆OEMproprietary data structure(专有数据结构)写入private mailbox

  • 将signaling bitmap写入private mailbox,以表示上述数据结构的更新

  • 将用于共享的immobilizer tokens写入confidential mailbox(如果从车辆中检索到immobilizer tokens,并且车辆OEM未实施KTS)(optional)

2.3 Step13-14CONTROL FLOW

车辆应发送CONTROL FLOW命令,以表明所有数据已成功写入邮箱。且P2参数设置如下:

P2= 81h,向Digital Key applet表示车辆已完成Phase3的车主配对。

在第三阶段结束时,如果从车辆中检索到immobilizer tokens,则应在车主手机中提供车主immobilizer tokens并且钥匙可能被车辆跟踪,也可能尚未被车辆跟踪。

2.4 Step15Key Tracking Request

如果标准交互成功,车主手机将发送异步消息,将车主密钥注册到KTS。

车辆的密钥登记是可选的。如果车辆也试图注册密钥,则可能发生竞态条件。因此,不建议使用车辆密钥登记。

当标准交互失败时,手机不会向KTS服务器发送key tracking request。

手机将Instance CA证书、数字钥匙证书等信息发送到KTS服务器具体详见表6-2中列出的数据元素。

KTS服务器发送Key Tracking Response给到手机,所有Key Tracking Response的参数不得以TLV格式提供,具体参数如下表:

2.5 Step16Configuration of the Contactless Transaction

在标准交互中有两个选项可以访问mailbox数据:

  • 在AUTH1响应中传输所需的数据

  • 使用EXCHANGE命令(快速交互强制使用)

如果从车辆接收到的WRITE DATA命令中包含4Ah和/或4Bh标签,则手机将在AUTH1响应中发送signaling bitmap和/或车主immobilizer token。

3、总结

该NFC车主配对Phase3阶段主要功能如下:

1、车辆通过AID选中Digital Key applet

2、通过NFC进行标准交易;

3、车辆通过发送CONTROL FLOW命令,指示当前阶段的结果。当车辆发送的P2= 81h,表示车辆已完成Phase3的车主配对;

4、手机通过Key Tracking Request将Instance CA证书、数字钥匙证书等信息发送给KTS服务器

5、KTS服务器通过Key Tracking Response将kts-Signature、slotIdentifier、confidentialMailboxData等信息返回给手机

这篇关于CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/245699

相关文章

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

Python对PDF书签进行添加,修改提取和删除操作

《Python对PDF书签进行添加,修改提取和删除操作》PDF书签是PDF文件中的导航工具,通常包含一个标题和一个跳转位置,本教程将详细介绍如何使用Python对PDF文件中的书签进行操作... 目录简介使用工具python 向 PDF 添加书签添加书签添加嵌套书签Python 修改 PDF 书签Pytho

Java进行日期解析与格式化的实现代码

《Java进行日期解析与格式化的实现代码》使用Java搭配ApacheCommonsLang3和Natty库,可以实现灵活高效的日期解析与格式化,本文将通过相关示例为大家讲讲具体的实践操作,需要的可以... 目录一、背景二、依赖介绍1. Apache Commons Lang32. Natty三、核心实现代

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基