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

2023-10-20 07:30

本文主要是介绍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/245610

相关文章

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3