【车载开发系列】UDS诊断---安全访问服务($0x27)

news2024/9/20 1:00:36

【车载开发系列】UDS诊断—安全访问服务($0x27)

UDS诊断---安全访问服务($0x27

    • 【车载开发系列】UDS诊断---安全访问服务($0x27)
    • 一.概念定义
    • 二.安全控制过程
    • 三.报文格式
      • 1)请求种子
      • 2)发送密钥
      • 3)否定响应
    • 四.否定响应码列表
    • 五.参数定义
    • 六.注意事项

一.概念定义

该服务提供了一种保护机制,该机制用来保护访问限制的诊断服务。
加密策略采用种子和密钥相关联的方法。采用随机产生的种子,通过安全算法得到唯一的秘钥。
若秘钥匹配正确则可以调用受到保护的诊断服务。这个服务解锁的是处在某个安全等级下的服务。

二.安全控制过程

  1. 诊断工具请求种子;
  2. ECU发送种子,并根据安全算法计算密钥;
  3. 诊断工具根据接收到的种子也进行密钥计算,并进行发送;
  4. ECU接收到密钥,与自身计算的密钥进行比较;
  5. ECU根据比较结果决定自身是否解锁,并返回响应(肯定/否定响应)信息
    在这里插入图片描述

三.报文格式

1)请求种子

以请求进入01安全等级为例(请求Seed的"Sub-function"不一定要是01,也可以是03、05,或者07-7D之间的任意奇数值,代表不同的安全等级),则此时请求种子的格式如下:
在这里插入图片描述
ECU收到请求后,应当生成随机的种子,并通过响应报文返回种子。响应报文格式如下:
其中种子及密钥均为 4 字节(32 位)的数值
在这里插入图片描述在这里插入图片描述

2)发送密钥

以请求进入01安全等级为例,在接收到前面一小节生成的种子后,诊断工具将根据车产定义的安全算法进行密钥的计算。并进行密钥的发送。此时密钥的发送格式如下:
(发送密钥时的第二个字节值不一定就是02(01+1),可以是04、06,或者08-7E间的任意偶数值,不过注意要是之前请求Seed的"Sub-function"+1,即像01对应02,03对应04,07对应08这样对应起来。)
在这里插入图片描述
ECU收到SendKey之后,肯定响应报文格式如下:
在这里插入图片描述

3)否定响应

请求Seed和SendKey他们两个在失败的时候,都返回以下格式的否定响应。在这里插入图片描述

四.否定响应码列表

如果诊断工具发送一个无效的密钥,ECU拒绝请求并发送否定响应码 35h“密钥无效(InvalidKey),安全访问失败计数加 1。该计数器的初始值为零。
当失败计数器数值达到一定回数时,ECU 需要等待10 秒方可接受下次“请求种子”(Request Seed)报文并返回 36h(请求次数超出限制)否定响应。
在这 10s 内,任何“SecurityAccess- RequestSeed”都将不被处理,且 ECU 返回 37h(延时时间未到)否定响应。
对于35/36/37这三个错误码,需要比较关注一下。这三个错误往往是成对出现的。

Hex(bit6~0)Description描述说明
0x12subFunctionNotSupported功能不支持如果子功能参数不支持,发送此否定响应码
0x13incorrectMessageLengthOrInvalidFormat报文长度错误如果报文长度错误,发送此否定响应码
0x24requestSequenceError请求序列错误在接收到“sendKey”子功能前没有先接收到“requestSeed”请求报文
0x35invalidKey密钥无效接收到预期的“sendKey”子功能但是密钥值与 ECU 内部存储或计算的密钥不相等
0x36exceededNumberOfAttempts超出密钥访问次数限制延迟定时器因为超过最大允许失败尝试的次数激活
0x37requiredTimeDelayNotExpired超时周期未到,延时时间未到在 ECU 要求的超时周期未到之前,发送了尝试获取安全访问权限的请求报文

五.参数定义

子功能关联的安全等级由整车厂定义。在这里我们只要知道0x01和0x02输入一个安全级,而0x09和0x0A输入一个安全级别,必须成对的使用。

HexDescription描述
0x01requestSeed to reach security level: Unlocked (Level 1)请求种子以进入安全级别:解锁(级别 1)
0x02sendKey to reach security level: Unlocked (Level 1)发送密钥以进入安全级别:解锁(级别 1)
0x09RequestSeed to reach security level: Unlocked (Flash,Level2)请求种子以进入安全级别:解锁(级别 2)
0x0AsendKey to reach security level: Unlocked (Flash,level2发送密钥以进入安全级别:解锁(级别 2)

在某一时间只有一个安全级别可以被激活。例如,如果与请求种子 09h 相关联的安全级别已激活,而诊断工具成功请求解锁与请求种子 01h相关联的安全级别,此时只有与请求种子01h相关联的安全级别支持的受限功能被解锁。

六.注意事项

  1. ECU上电或者Reset复位操作之后, ECU处在locked状态;
  2. 同一时刻只有1个安全等级是 active ,与这个安全等级相关的功能和诊断服务可以使用,其它安全等级相关功能和诊断服务是not active 。
  3. 1个ECU内部可以有多个安全等级,安全等级之间是否关联取决于诊断规范的定义,如果没有关联,就是例如解锁安全等级2时,无需先解锁安全等级1.
  4. 如果当收到RequestSeed时,ECU已经处在unlocked状态,应给出positive response, 其中seedValue 0x00
  5. 具体的安全加密算法由车厂自行决定的。
  6. SecurityAccess服务定义了三种状态(两个不同级别):锁
    定、解锁(级别 1)、解锁(级别 2)

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

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

相关文章

JavaScript基础学习

文章目录什么是JavaScriptJavaScript 运行过程JvaScript 的组成JavaScript的三种书写模式行内式内嵌式外部式JavaScript的输出输出方式输入: prompt输出: alert输出: console.logJavaScript的一些基础语法变量的使用如何理解JS的动态类型(弱类型)基本数据…

SSM整合:mybatis层-P17

首先构建新的项目。 MYSQL: 在mysql中创建我们需要的表 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books ( bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id, bookName VARCHAR(100) NOT NULL COMMENT 书名, bookCo…

【深入浅出Spring原理及实战】「IOC容器初始化」彻底让你明白和理解运行原理和源码流程

前言介绍 本篇文章篇幅较大,希望读者可以慢慢阅读,建议收藏,分多次阅读学习。 学习源码的过程当中,有几点建议: 一定要学会抓重点,归纳核心类、核心方法、核心步骤; 分析源码我们不需要太过于纠…

MongoDB 存储引擎

简单回顾 上次我们说到了关于 mongodb 的集群,分为主从集群和分片集群,对于分片集群中的分片这里需要注意如下几点,一起来回顾一下: 对于热点数据某些分片键(分片键是集合中每个文档中存在的索引字段或复合索引字段&a…

qt历史数据管理模块(模块化程序)功能块复制直接使用不冲突

一、前言 qt对历史数据管理部分个人总结的模块化程序,直接按照步骤复制粘贴程序,直接实现历史数据管理功能,无需花费脑筋在理清各个思路,适合快速编写组装程序 二、环境 windows qt5.7 sqlite3 三、正文 建议参照前文&…

【uni-app】uni-app之云开发uniCloud跨全栈开发笔记总结,包括一个 schema自动生成代码小案例(附详细截图)

1- 前言 本文主要讲解如何使用uni-app 和 uniCloud 云开发,实现小案例,不需要后端,来实现全栈开发。 2- 概念 2.1 什么是uni-app uni-app 是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、…

对信息系统生命周期各阶段进行风险评估的要点汇总

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的,但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段,通过风险评估以确定评估对…

pytorch笔记(九)转置卷积、膨胀卷积

Transposed Convolution (转置卷积) 别名:Fractionally Strided Convolution (小数步长的卷积)、Deconvolution(逆/反卷积) 作用:upsampling(上采样) 模拟: PS:不是恢复原始值(因为一般情况下矩阵不可逆,无法等式左右两边同乘矩阵的逆得到原始矩阵) 转置卷积的…

为什么分布式系统这么火?

做Java的升职空间有限,可以说如果不想一辈子做程序员,只能往其他方向进行拓展,比如做到产品经理之类的或者技术总监。 可如果还是想做和技术相关的职业,那么架构师是很好的一步。 可是要如何做一名优秀的架构师呢? …

每天五分钟机器学习:经典的机器学习PCA的核心——特征分解技术

本节重点 本节我们将学习特征分解,特征分解是矩阵分析中非常重要的概念,它也可以应用到PCA算法中,本节先讲解什么是特征分解,然后讲解特征分解在PCA算法中的应用。 数学知识准备 如上所示是方差的定义,方差是度量一组数据的分散程度 如上所示是方差的定义,协方差是…

BSP板机支持包、linux启动分析、ARM裸机编程

文章目录一、BSP二、驱动驱动的基本要素三、启动分析1.uboot2.uboot的作用3.uboot相关命令关键的内容:1)bootargs,启动参数2)启动命令3)修改启动延时时间4)复位开发板5)修改本地IP地址6&#xf…

Matlab群体智能优化算法之大鲹鱼优化算法(GTO)

Giant Trevally Optimizer : A Novel Metaheuristic Algorithm for Global Optimization and Challenging 一、灵感来源二、算法的初始化三、GTO的数学模型  Phase1:广泛搜索  Phase2:选择区域  Phase3:攻击四、流程图五、伪代码六、实…

[附源码]计算机毕业设计四川景区管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

SWT Table列自适应大小

要实现列自适应大小首先需要保证Table根据窗口拖动而改变大小。 Window中提供setShellStyle可以设置外壳样式。 构造一个新的自定义器对话框,在构造函数中添加setShellStyle(getShellStyle() | SWT.RESIZE);即可改变自定义对话框大小,如: ge…

[附源码]Python计算机毕业设计SSM教师教学质量评价系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

数据卷(Data Volumes)dockerfile

目录一、宿主机与容器之间的文件拷贝1、利用MySQL镜像安装MySQL服务2、从容器中拷贝文件到宿主机3、从宿主机拷贝文件到容器二、数据卷三、数据卷容器四、Dockerfile1、自定义centos,具备vim及ifconfig作用2、自定义tomcat8一、宿主机与容器之间的文件拷贝 1、利用…

Linux虚拟化网络之vlan配置

问题描述: Linux主机划分两个vlan,服务器server1的物理网卡的IP地址为1.1.1.1/24,服务器server2的物理网卡的IP地址为1.1.1.2/24。物理网卡下要虚拟化出来两个Vlan子接口,vlan10中主机的IP地址分别为10.10.10.1/24和10.10.10.2/2…

99%的人都把三层架构和SpringMVC的关系搞错了

99%的人都把三层架构和SpringMVC的关系搞错了!!! 先说结论, 三层架构和SpringMVC的关系就是没有关系。 很多人之前把SpringMVC中的M-Model当作三层架构中的servicedao(包括我),这个是一个错误…

前端知识粉碎机

diff算法 Dep的作用是收集观察者以及当数据发生变动时通知观察者去更新。 Dep.notify()通知观察者去更新。 当数据改变时,就会触发setter,然后触发Dep.notify,通知订阅者,比对新旧虚拟节点,判断是否是同类标签&#xf…

Emlog博客文章图片自动加水印插件

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 给Emlog博客的上传图片添加水印可以有效地保护作品版权,有效地打击那些转载文件不留原作者地址的垃圾网站,部分Emlog博主通常都是手动给图片添加水印,…