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

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.mzph.cn/news/83428.shtml

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

相关文章

抖音seo账号矩阵源码系统

1. 开通多个抖音账号,并将它们归纳为一个账号矩阵系统。 2. 建立一个统一的账号管理平台,以便对这些账号进行集中管理,包括账号信息、内容发布、社区交互等。 3. 招募专业的运营团队,对每个账号进行精细化运营,包括内…

年龄大了转嵌入式有机会吗?

年龄大了转嵌入式有机会吗? 首先,说下结论:年龄并不是限制转行嵌入式软件开发的因素,只要具备一定的编程和电子基础知识,认真学习和实践,是可以成为优秀的嵌入式软件开发工程师的。最近很多小伙伴找我&…

一、【漏洞复现系列】Tomcat文件上传 (CVE-2017-12615)

1.1、漏洞原理 描述: Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 的webshell文件&#x…

Java线上故障排查(CPU、磁盘、内存、网络、GC)+JVM性能调优监控工具+JVM常用参数和命令

CPU/堆/类/线程 根据服务部署和项目架构,从如下几个方面排查: (1)运用服务器:排查内存,cpu,请求数等; (2)文件图片服务器:排查内存,cpu,请求数等…

R语言-关于颜色

目录 颜色 示例 R 颜色板 参考: 颜色 什么场景会用到颜色?比如在绘图过程中,为了让图更好看,有的时候,需要选择使用不同的颜色进行绘制或者填充。本文提供了R颜色的相关参数。 在R中,可以通过颜色下标…

摸鱼也摸鱼之点灯游戏自动求解

游戏 变色方块 世上最难智力游戏 (yanhaijing.com) 脚本 新建文件夹,命名为Inverter 在文件夹下新建inverter.js文件,内容如下 "use strict";function getA() {let a [];let level parseInt(document.querySelector("#cur-level&q…

解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058

文章目录 一、问题现象二、原因分析三、解决方案1. 方案1:更新SQLyog版本2. 方案2:修改用户的授权插件3. 方案3:修复my.cnf 或 my.ini配置文件 四、最后总结 本文将总结如何解决 SQLyog 连接 MySQL8.0 时报错:错误号码2058 一、问…

线程池:神秘的“轻量级线程”

当前我们的多线程部分已经学习了几个代码案例: 1.单例模式 2.阻塞队列 -> 生产者消费者模型 3.定时器 4.线程池 而线程存在的意义就是,使用进程来实现并发编程会“太重了”,创建和销毁进程都会比较耗资源。 但是线程会更加高效。此时&…

K8S名称空间和资源配额

Kubernetes 支持多个虚拟集群,底层依赖于同一个物理集群。 这些虚拟集群被称为名称空间。名称空间namespace是k8s集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的名称空间,例如,可以为test、dev、prod环境分别创建各…

Stable Diffusion 参数介绍及用法

大模型 CheckPoint 介绍 作用:定调了作图风格,可以理解为指挥者 安装路径:models/Stable-diffusion 推荐: AnythingV5Ink_v32Ink.safetensors cuteyukimixAdorable_midchapter2.safetensors manmaruMix_v10.safetensors counterf…

Python 图片处理笔记

import numpy as np import cv2 import os import matplotlib.pyplot as plt# 去除黑边框 def remove_the_blackborder(image):image cv2.imread(image) #读取图片img cv2.medianBlur(image, 5) #中值滤波,去除黑色边际中可能含有的噪声干扰#medianBlur( Inp…

买卖股票的最佳时机

一、题目。 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置…

2023年云南省职业院校技能大赛中职组“网络安全”赛项样题

2023年云南省职业院校技能大赛 中职组“网络安全”赛项样题 一、竞赛时间 总计:180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 数据库加固 A-3 服务加固SSH\VSFTPD A-4 防火墙策…

php预约系统源码 网上预约小程序开发源码 整套系统搭建让在线预约更便捷

随着互联网技术的发展,越来越多的服务行业开始通过网上预约系统来实现便捷的客户管理和服务提供。PHP预约系统源码作为一种成熟的技术方案,可以帮助商家快速搭建自己的预约系统,提高工作效率,优化客户体验。 分享一个php预约系统…

常见的排序算法及时间空间复杂度

排序算法是计算机科学中的基本算法之一,它用于将一组数据按照某种顺序进行排列。下面是一些常见的排序算法,以及它们的思想和时间空间复杂度,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢…

Python日期处理库:掌握时间的艺术

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 日期和时间在计算机编程…

《中国数字经济发展指数报告(2023年)》发布

导读 国家统计局《数字经济及其核心产业统计分类(2021)》首次对数字经济及其核心产业统计分类做出详细说明。然而,由于数字经济内涵外延的不断丰富,区域数字经济发展的量化评估仍在持续发展的过程中,以量化模型方式能够更加客观全面反映新时…

flash attention的CUDA编程和二维线程块实现softmax

本文参考了链接添加链接描述 flash attention介绍 flash attention的介绍可以参考论文:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness,具体的数学公式参考下面这个图片:其中注意关于矩阵S有两个维度,softmax的操作维度是dim=1,用pytorc…

【HarmonyOS】元服务卡片router实现跳转到指定页面

【关键字】 元服务卡片、router跳转不同页面 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面功能。此处以JS UI开发服务卡片为例,JS卡片支持组件设置action,包括router事件和message事件&…

蒙特卡洛方法的数学基础-1

蒙特卡洛方法的数学基础-1 概率论 Bayes 公式 常用分布 Binominal Distribution Poisson Distribution Gaussian Distribution Exponential Distribution Uniform Distribution 大数定理 均匀概率分布随机地取N个数xi ,函数值之和的算术平均收敛于函数的期望值 …