CCC数字钥匙设计【BLE】--URSK管理

news2025/6/18 6:32:43

1、URSK创建流程

URSK的英文全称为:UWB Ranging Secret Key,即UWB安全测距密钥。

在车主配对时会生成URSK,且在车主配对期间,车辆不得尝试生成第二个URSK。

URSK示例: ed07a80d2beb00f785af2627c96ae7c118504243cb2c3226b3679daa0f7e616c

在建立安全测距之前,需要URSK。车辆可能使用预先创建的URSK或根据需要创建一个新的URSK。

生成URSK的流程有如下两种情况:

1.1 情况1:专门生成URSK(如车主配对时)

BLE加密设置完成后,如果车辆支持UWB,则车辆将执行创建URSK的标准交易流程。比如在车主配对时会执行一次URSK创建流程。该流程如下图:

该流程中AUTH0命令的transaction_code值0x10

1.1.1 步骤1:标准交易流程的1-6步

1.1.2 步骤2:生成URSK流程

对于上图框F和框G,一旦URSK被成功派生,它将被存储在使用UWB_Session_Id索引的安全存储中。

具有安全测距能力的车辆,应支持每个数字钥匙至少产生并存储一个Pre-derived URSK

具有安全测距能力的手机,应支持每个数字钥匙产生并存储两个Pre-derived URSK

每个Pre-derived URSK通过关联的UWB_Session_Id进行索引。

车辆应使用Secure Ranging Setup流程(详见CCC的图19-23)来激活Pre-derived URSK。每个数字钥匙最多只能有一个激活的URSK,当另一个URSK被激活时,这个激活的URSK将被丢弃。

在一个Pre-derived URSK被激活后,车辆应请求生成和存储另一个Pre-derived URSK。车辆应控制这种额外的URSK生成所耗费的时间,以尽量减少对用户的影响(例如,在PE进入完成后),。建议在URSK激活不久后,则进行另一个Pre-derived URSK的生成。URSK存储要求如表19-85所示。

这边有一个概念叫URSK TTL,即已经激活的URSK(也叫dURSK)是有生存期限的,CCC要求该生存期限小于12小时,具体该时间参数由车厂OEM指定。

CCC中说明,可以选择使用不同的URSK设置一个新的测距会话,该URSK具有比较短的TTL(如30秒),用于发动机启动授权,提高安全性。

如果满足下列条件之一,URSK将被丢弃:

1) STS_Index达到最大值2^31-1。

2) STS_Index丢失。

3) URSK TTL(生存时间)到期。车辆的URSK最大生存时间为12小时(具体时间由车辆OEM指定)。

4) 通过Secure Ranging Setup流程激活一个新的URSK。

1.2 情况2:执行功能时生成URSK(如启动引擎)

通过向标准交易流程添加一个CREATE RANGING KEY命令,用于其他目的,如启动引擎。

该流程中AUTH0命令的transaction_code值不等于0x10

每次成功执行此流程时,都会生成一个唯一的URSK,并使用UWB_Session_Id进行存储索引。这个UWB_Session_Id是transaction_identifier中排序LSB的4个字节。车辆为每个AUTH0生成一个16字节的随机数,并作为AUTH0命令的一部分与其他参数一起发送给手机。

该流程如下图:

1.2.1 步骤1:标准交易流程的第1-8步

流程与情况1基本一样,比情况1 的流程增加了标准交易的第7步、第8步(Exchange Command及Exchange Response相关功能)。

1.2.2 步骤2:生成URSK流程

当执行解闭锁、引擎启动等功能时,也可以BLE在标准交易成功后产生URSK。

流程与情况1基本一样,比情况1 的流程增加了第11步、第12步(Control Flow Command及Control Flow Response相关功能)。

如果在BLE标准交易的步骤1到8中出现错误,则跳过后续的URSK生成流程,并向手机发出适当的错误信号。然后车辆发送Command complete SubEvent(Deselect SE))给手机,如上图中的步骤11所示。

如果在URSK生成流程中发生错误,则只有由之前standard transaction触发的操作(已经)被车辆接受。此时,如果仍然需要生成URSK,则应该执行情况1中描述的专门用于URSK生成的流程

1.3 生成URSK对应的BLE通信命令

上面的标准交易流程及生成URSK流程,均通过BLE来进行通信交互。

为了通过BLE创建URSK,每个APDU命令和响应都需要进行如下编码,具体如下。

消息类型:SE Message,如下表。

消息:

  • APDU命令封装:DK_APDU_RQ
  • APDU响应封装:DK_APDU_RS

1.4 情况1&情况2的AUTH0命令说明

如下表,0x10专门用于URSK生成。而其他值则有于相关功能的执行。

2、总结

1)、URSK创建流程有两种情况,第一种情况是专门生成URSK的流程,一般在车主配对时实施。第一种情况是引擎启动等功能执行时,可以执行生成URSK的流程。

2)、两种情况的流程差别不大,都是先通过standard transaction,然后通过Create ranging key来创建URSK。

3)、通过BLE的SE Message格式来发送DK_APDU_RQ、DK_APDU_RS数据 帧以完成URSK的生成流程。

4)、有个URSK TTL的概念,即已经激活的URSK是有生存期限的,CCC要求该生存期限小于12小时。

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

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

相关文章

面向面试知识--MySQL数据库与索引

面向面试知识–MySQL数据库与索引 优化难点与面试点 什么是MySQL索引? 索引的MySQL官方定义:索引是帮助MySQL快速获取数据的数据结构。 动力节点原文: MysQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MysQL在存储数据之…

问题usr/bin/env: “python‘: Too many levels of symbolic links太多层链接的bug pycharm

问题描述 解决:建议不要用过去的conda环境了,直接新建一个环境,然后在图片这个步骤的时候务必选择现有的解释器 。(产生问题的原因可能就是新建的解释器太多了)

Mermaid画流程图可以实现从一条线中间引出另外一条线吗

这张图中开始和操作1之间引出的一条线要怎么表示啊!!! Mermaid是不能实现这样的画法的吗?可是为什么老师就可以画出来??? 求大佬指教!!!!

现场总线学习

文章目录 1.现场总线现状2.数据编码2.1 数字数据的数字编码2.2 数字数据的模拟编码 3.通信方式!!!4.局域网及其拓扑结构5.工业总线协议6.为什么要在can协议的控制器和bus总线之间,连接一个can收发器?7.那其他协议也需要…

vue修改node_modules打补丁步骤和注意事项

当我们使用 npm 上的第三方依赖包,如果发现 bug 时,怎么办呢? 想想我们在使用第三方依赖包时如果遇到了bug,通常解决的方式都是绕过这个问题,使用其他方式解决,较为麻烦。或者给作者提个issue,然…

dev board sig技术文章:轻量系统适配ARM架构芯片平台

摘要:本文简单介绍OpenHarmony轻量系统移植,会分多篇 适合群体:想自己动手移植OpenHarmony轻量系统的朋友 开始尝试讲解一下系统的移植,主要是轻量系统,也可能会顺便讲下L1移植。 1.1移植类型 OpenHarmony轻量系统的…

腾讯云服务器收费价格表(腾讯云服务器租用价格表)

作为国内领先的云计算服务提供商,腾讯云凭借其稳定、安全、高效的特点,备受用户青睐。本文将详细介绍腾讯云服务器的收费价格表及使用场景,帮助大家更好地了解并选择合适的云服务器方案。 一、轻量应用服务器 轻量应用服务器是一款开箱即用的…

数字人民币如何将支付宝钱包余额转入到微信支付钱包余额?

数字人民币如何将支付宝钱包余额转入到微信支付钱包余额? 第一步:获取微信支付数字人民币钱包编号 1.1、手机上找到并打开数字人民币APP; 1.2、打开后找到微众银行(微信支付)微信钱包,并点击翻转获取收款…

攻防世界-WEB-fileinclude

访问url,可以看到一些提示,绝对路径/var/www/html/index.php,也提示了flag在flag.php中。 快捷键Ctrlu,查看网页源代码 思路: 源代码中看到 include($lan.".php"); ,可知此处存在文件包含。$lan的值是从co…

虚拟线程最佳实践

Virtual Threads: An Adoption Guide 虚拟线程:采用指南 接上篇 Virtual Threads 虚拟线程 原文:https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html 虚拟线程是由 Java 运行时而不是操作系统实现的 Java 线程。虚拟线程和传统线程&…

Datax从mysql同步数据到HDFS

在实际使用Datax的时候,比较常用的是同步业务数据(mysql中的数据)到HDFS来实现数仓的创建,那么怎么实现呢?我们一步步来实现(基于Datax 3.0.0) 1、检查环境,需要安装完一个Datax&am…

网络基础面试题

1. ISO/OSI的七层模型 ISO国际标准化组织 OSI开放系统互连 TCP和UDP都会进行差错校验,TCP会告诉A包发错了,但UDP不会告诉A发错了会把包丢弃。 静态路由不需要路由器做任何的计算,对路由器的消耗是最小的,效率最高但是缺点是…

Qt开发 - Qt基础类型

1.基础类型 因为Qt是一个C 框架, 因此C中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。 QT基本数据类型定义在#include <QtGlobal> 中&#xff0c;QT基本数据类型有&#xff1a; 虽然在Qt中…

“智能制造进园区·浙江站和专家行”活动成功举办

为进一步加强央地联动&#xff0c;强化智能制造系统推进格局&#xff0c;促进重点区域行业智能制造供需对接&#xff0c;2023年9月12日-15日&#xff0c;在工业和信息化部装备工业一司指导下&#xff0c;由国家智能制造专家委员会、浙江省经济和信息化厅、智能制造系统解决方案…

专访中欧财富伍春兰:财富管理行业数字化转型升级,数据库如何选型?

以下文章来源于InfoQ数字化经纬。 InfoQ数字化经纬&#xff1a; InfoQ极客传媒旗下官方账号。面向数字化管理者、从业者、洞察者&#xff0c;提供数字化企业案例、政策解读、研究报告&#xff0c;做数字时代的「记录者」。 作者 | 赵钰莹 嘉宾 | 伍春兰 中欧财富技术总监 …

如何在微信上制作自己的小程序卖东西

在当今的数字化时代&#xff0c;微信小程序已成为电商行业的重要平台。本文将详细解析电商微信小程序的制作流程&#xff0c;帮助你了解从零到上线的过程。 一、前期准备 1. 确定商城定位和目标群体&#xff1a;在制作电商微信小程序前&#xff0c;你需要明确商城的定位&#x…

解决连接数据库提示:Public Key Retrieval is not allowed

最近在使用新的用户连接mysql时&#xff0c;总是提示&#xff1a;Public Key Retrieval is not allowed 解决方法一&#xff1a;在&#xff08;连接属性&#xff09;添加allowPublicKeyRetrievaltrue 解决方法二&#xff08;不建议&#xff09;&#xff1a;先在cmd上登录

爬虫 — Js 逆向案例五闪职网登录

目标网站&#xff1a;http://shanzhi.spbeen.com/login/ 需求&#xff1a;找到密码加密的过程&#xff0c;进行加密 案例分析 1、多输入几次错误的密码&#xff0c;查看哪些字段是加密的。 2、如何没有 Search 到相关的字段&#xff0c;可以在 JS 里面找一找。 3、如果看到 JS…

广东深圳建筑模板厂家-能强优品木业

深圳作为中国经济腾飞的重要城市&#xff0c;建筑业一直是该地区的重点发展领域。在建筑施工过程中&#xff0c;建筑模板是不可或缺的关键组成部分。于是&#xff0c;广东深圳拥有一家备受赞誉的建筑模板厂家&#xff0c;为当地建筑行业提供优质产品和服务。这家建筑模板厂家就…

rtsp转webrtc的其他几个项目

1&#xff09; mpromonet/webrtc-streamer &#xff08;c开发&#xff09; 把rtsp转webrtc&#xff0c; 通过 load urls from JSON config file ./webrtc-streamer -C config.json 通过exe文件和docker项目实际测试可以显示&#xff0c;但不太稳定加载慢,有时候出错后很难…