安全访问(ISO14229系列之27服务)

1、27服务概述

        27服务通过采用种子与**的方式为ECU提供了一种保护机制;通过sub-function划分出不同的安全等级,诊断仪发送请求进入某个安全等级时,通过种子与**的方式进行安全访问,当通过安全访问时,则切换到对应的权限状态。便于进行权限的管理划分。其相关的操作流程如下图:
安全访问(ISO14229系列之27服务)
        如上图,假设诊断仪是请求进入01安全等级;即Tester发送27 01请求种子,ECU接收请求后生成随机种子发送给到Tester;并且将刚刚生成的种子按照安全算法计算出Key。Tester这边收到种子后,也按照安全算法计算出Key,此时再通过27 02服务将计算好的Key发送到ECU,ECU这边将收到发送过来的Key和自己计算的Key进行比对,若结果一致,则切换到对应请求的权限状态。可以总结为如下过程:

  • 诊断仪请求种子
  • ECU发送种子,并根据安全算法计算**
  • 诊断仪根据接收到的种子也进行**计算,并进行发送
  • ECU接收到**,与自身计算的**进行比较
  • ECU根据比较结果决定自身是否解锁,并返回响应(肯定/否定响应)信息

2、请求种子

        以请求进入01安全等级为例(请求Seed的"Sub-function"不一定要是01,也可以是03、05,或者07-7D之间的任意奇数值,代表不同的安全等级。这里只是以01为例),则此时请求种子的格式如下
安全访问(ISO14229系列之27服务)

        ECU收到请求后,应当生成随机的种子,并通过响应报文返回种子。响应报文格式如下:
安全访问(ISO14229系列之27服务)
        

3、发送**

        我们依旧以请求进入01安全等级为例,在接收到前面一小节生成的种子后,诊断仪将根据车产定义的安全算法进行**的计算。并进行**的发送。此时**的发送格式如下
安全访问(ISO14229系列之27服务)

        ECU收到**后,会将接收到的**与自身计算的**进行比对;若结果一致,则切换到对应请求的权限等级,并返回肯定响应。响应报文格式如下:
安全访问(ISO14229系列之27服务)

        
        Ps:在请求种子、发送**的介绍中,我们只是以请求进入01这个安全等级(sub-function)为例来进行介绍的。但要注意请求种子的"Sub-function"不一定要是01,也可以是03、05,或者07-7D之间的任意奇数值,通过该参数划分不同的安全等级。同样,发送**时的第二个字节值不一定就是02(01+1),可以是04、06,或者08-7E间的任意偶数值;不过注意要是之前请求Seed的"Sub-function"+1,即像01对应02,03对应04,07对应08这样对应起来。具体安全等级的划分、**算法、种子、**的长度等信息会由车产规定好释放的。

相关文章:

  • 2021-04-02
  • 2021-05-22
  • 2022-12-23
  • 2022-01-10
  • 2022-02-03
  • 2021-12-28
  • 2021-12-02
  • 2021-10-29
猜你喜欢
  • 2021-12-03
  • 2022-12-23
  • 2022-01-27
  • 2021-09-27
  • 2022-02-22
  • 2022-02-08
  • 2021-09-28
相关资源
相似解决方案