统一诊断服务(UDS)- 安全等级是怎么回事儿
统一诊断服务(UDS)- 安全等级是怎么回事儿
- 怎么解锁安全等级
- 安全等级如何与功能关联
上一篇《统一诊断服务(UDS)- 什么是安全访问》中介绍了安全访问的机制和应用场合。为了易于理解,文中笼统的描述为通过安全访问后ECU就被解锁了。实际上,ECU内部存在着安全等级(Security Level)。通过安全访问服务(Security Access Service, SID 0x27)解锁的不是ECU,而是对应的安全等级。
怎么解锁安全等级
安全等级的解锁可通过UDS的安全访问服务(SecurityAccess Service, SID 0x27)完成。作为进一步了解的参考,请参阅ISO14229-1:2013(E) 9.4 SecurityAccess(0x27) service章节中的详细信息。
这里需要重点阐述的是安全接入服务的子功能参数设置。根据ISO 14229-1(E)标准规定,在本规范中对安全接入服务的子功能参数项进行了详细描述。
| 子功能参数
| Bits 6-0 | 定义 |
|---|---|
| --- | --- |
发起种子请求(initiate seed request)
分配密钥(assign key)
各子函数的安全等级由整车厂设定
相同子函数的安全等级由整车厂设定
...
| 0x5F | 发令种子(requestSeed) |
在ISO 26021-2标准中规定,在车辆报废时对某些控制器进行在线设置的操作 |
| 0x60 | 传递密钥(sendKey) |
在ISO 26021-2标准中规定,在车辆报废时对某些控制器进行在线设置的操作 |
| 0x61–0x7E | 系统供应商定义 |
这一区间内的代码或参数由系统供应商自行定义 |
在车辆诊断系统中设置子功能参数时需注意以下要点:首先,在函数项配置中,请确保正确配置两个相关联的功能项。例如,在参数配置中,请将函数项标识符设置为奇数值并将其与相邻的偶数值函数项配对使用。这种配对关系通常用于同一安全层级的安全防护机制实现。具体而言,请先配置好用于获取信息的功能项(如请求种子),然后根据其编号顺序依次设置用于响应的安全防护指令(如发令)。每个安全层级所使用的发令项标识符均为偶数值,并且这些发令指令均需按照编号顺序依次执行才能保证系统的正常运行。
安全等级如何与功能关联
ECU内部可能包含多个不同级别的安全等级。
每个安全级别都与一组特定的功能或诊断服务相关联。
当相应级别被解锁时,则其相关的功能和诊断服务得以执行。
无论何时,在同一时间只能有一个级别处于未锁定状态。
举例说明,在一个ECU内部设置了两个安全等级——分别是安全等级1和安全等级2。其中的安全等级1涵盖了子功能编号为^{[①]} ① ^{[②]} ② 的操作流程:首先是请求种子数据(Function ID: 0x01),其次是密钥传输过程(Function ID: 0x02)。而安全性较高的安全等级2则包含了两个更为复杂的子功能流程:同样是请求种子数据(Function ID: 0x05),以及随后的关键密钥传递环节(Function ID: ③)。例如整车厂进行了相应的规则设定。其中安全性较高的层次由以下两个关键操作构成:首先是请求种子数据(Function ID: ④),其次是加密通信机制的应用过程(Function ID: ⑤)。
使用DID进行数据写入操作(WriteDataByIdentifier Service, SID 0x2E)以及通过身份标识进行输入输出管理(InputOutputControlByIdentifier Service, SID 0x2F)均需要解密安全等级1方能执行。
在使用Bootloader进行ECU程序和标定数据更新的过程中,在涉及的请求下载服务(RequestDownload Service, SID 0x34)、数据传输服务(TransferData Service, SID 0x36)以及结束传输服务(RequestTransferExit Service, SID 0x37)均需要先解锁安全等级2方可执行。
在尝试通过DID进行数据写入时,在线诊断仪必须先使用安全访问服务(SID 0x27)以及子功能参数组中的参数号为[PSP: 子功能参数]来进行低权限的安全级[S级]的解锁操作。一旦低权限的安全级[S级]被成功解锁后,则在线诊断仪能够利用[Service ID (SID)]值为[...]的服务来完成高权限的安全级操作。如果未在此阶段完成低权限的安全级操作,则当在线诊断仪试图执行该高权限的数据写入请求时(即调用WriteDataByIdentifier Service, SID 0xx),系统将返回NRC [...] 的否定响应。假设在完成对低权限的安全级操作并获得成功授权之后,在线诊断仪再次使用同样的方法获取了高权限的安全级授权;此时,在这种情况下,则在线诊断仪将无法继续执行之前已经授权的操作序列,并且其所有与低权限相关的状态都将处于锁定状态中无法正常工作
