UDS统一诊断服务【三】安全访问0X27服务
创始人
2025-05-31 01:30:10
0

文章目录

  • 前言
  • 一、安全访问简介
    • 1.1 什么是安全访问
    • 1.2 常用的应用场景:
    • 1.3 安全访问流程
  • 二、数据格式
    • 2.1 请求种子格式
    • 2.2 发送秘钥格式
    • 2.3 子功能
    • 2.4 肯定响应
    • 2.5 否定响应
  • 三、举个例子


前言

今天分享的是UDS的安全访问服务,希望能对你有所帮助


一、安全访问简介

1.1 什么是安全访问

SecurityAccess 安全访问,27服务,用来保护某些诊断服务的,提供一种保护机制。例如对于重要数据的上传或者下载过程不做任何限制,可能会对整车的安全造成极大的威胁,尤其是针对底盘域的控制器更是要在这方面做好全方位的安全防保护措施。

1.2 常用的应用场景:

  • 操控类,输入输出的控制,例程控制服务等,
  • 写入类,如烧录程序;产线写入重要的数据,如版本或标定信息,需要过27安全访问后,才进行数据的写入
  • 读取数据,在读取重要的数据时也需要过安全访问

1.3 安全访问流程

我们来看看官方文档ISO14299-1是如何介绍的
在这里插入图片描述

  • 客户端向服务端请求种子;
  • 服务端向客户端发送随机种子;
  • Client基于接收到来自Server的随机种子计算出对应的Key并发送给到Server;
  • Server接受来自Client算出来的Key并与内部算出的Key比较,如果一致则解锁成功,否则解锁不成功;

安全访问的流程

二、数据格式

2.1 请求种子格式

[SID] + [sub-function] + [data]
第一个字节是服务ID:0x27,第二个字节是子功能,请求种子的子功能为1,3,5等奇数。后面的securityAccessDataRecord是可选的数据,标准里给的示例是用来标识客户端的ID,实际应用中一般不会用到,可先不管。
在这里插入图片描述

2.2 发送秘钥格式

[SID] + [sub-function] + [securityKey]

这里的子功能就是2,4,6等偶数值了,而且两者Subfuntion还必须存在一个确定的定量关系:即Subfuntion(Request Seed) + 1 = SubFunction(Send Key)
在这里插入图片描述

2.3 子功能

请求种子和发送秘钥的子功能被分成了一对对的组,每一组是一个安全等级,不同的安全等级可以用来验证不同的设备,或者执行不同安全等级要求的操作,数字大小并不代表其等级的高低。

注意:同一时刻最多只能有一个安全等级是解锁的状态。因此从一个安全等级接收到另外一个等级的请求并且解锁成功后,之前的安全等级将被重新锁定,而由于切换安全等级致使先前解锁的状态被锁定后,其依赖于被锁定的等级的服务和功能也一并被关闭。
在这里插入图片描述
0X01:主机厂定义的安全级别的请求种子

0X02:主机厂定义的安全级别的发送秘钥

0X03、05、07~0X41:主机厂定义的不同安全等级的请求种子

0X04、06、08~0X42:主机厂定义的不同安全等级的发送秘钥

2.4 肯定响应

[SID + 0X40] + [sub-function] + [securitySeed]

肯定响应的SID:0x67(0x27+0x40),以及被请求的子功能。后面的种子是收到请求种子的时候,要在肯定响应里给出具体的种子,而如果收到的请求是发送密钥,则只是校验是否解锁成功,不需要后面的字节了。
在这里插入图片描述

2.5 否定响应

[0X7F] + [SID] + [NRC]

如果解锁失败,则可通过收到的NRC判断失败的原因,27服务常用的NRC如下:
在这里插入图片描述

三、举个例子

标准文档里给的例子
在这里插入图片描述
下图是实际项目中录取的CAN报文
在这里插入图片描述
UDS这东西呢,难倒是不难,就是细节太多,没啥别的技巧,就是多实践,多翻一翻官方文档,用得多了就会了,现在我还停留在翻文档的阶段,只记得常用的几个。继续学习,多实践。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...