一种安全UDS诊断在CAN上的实现方法技术

技术编号:20568806 阅读:438 留言:0更新日期:2019-03-14 10:48
本发明专利技术公开了一种安全UDS诊断在CAN上的实现方法,包括:在ECU的报文中增加一个随机数的步骤;客户端获取该随机数并发出带有该随机数信息的诊断请求的步骤;ECU比对最近一条报文中的随机数与诊断请求中的随机数的步骤。本发明专利技术使安全UDS诊断在CAN上得以实现,UDS更安全,不易被破解,降低了UDS被侦听和篡改的风险。

A Method of Implementing Security UDS Diagnosis on CAN

The invention discloses a method for realizing secure UDS diagnosis on CAN, including the steps of adding a random number to the message of ECU, the steps of acquiring the random number by client and issuing a diagnosis request with the information of the random number, and the steps of comparing the random number in the latest message with the random number in the diagnosis request by ECU. The invention realizes safe UDS diagnosis on CAN, makes UDS safer, is not easy to be cracked, and reduces the risk of UDS being intercepted and tampered with.

【技术实现步骤摘要】
一种安全UDS诊断在CAN上的实现方法
本专利技术涉及汽车电子领域,特别是涉及一种UDS诊断在安全CAN上的实现方法。
技术介绍
近年来,针对车载网络进行攻击的新闻事件时有发生,车载网络安全逐渐变成一个热点话题,CAN是一个在汽车上应用超过30年的网络标准,至今也是大多数汽车的骨干网络,针对IVN(In-VehicleNetwork)的安全构架、算法、方法已经开始应用于CAN上。UDS诊断是目前在车载ECU上广泛应用的诊断标准,但在目前还很少有对UDS在安全CAN网络上实现并进行评价的探讨。导致汽车ECU很容易被破解、被攻击,致使ECU瘫痪,从而使ECU失效或响应错误,影响驾驶员的判断,引发更严重的后果。因此本领域技术人员致力于开发一种安全UDS诊断在CAN上的实现方法,采用本方法能有效减小UDS被侦听和破解的风险,也可以作为一种安全诊断网关的实现。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是提供一种安全UDS诊断在CAN上的实现方法,采用本方法能有效减小UDS被侦听和破解的风险,也可以作为一种安全诊断网关的实现。为实现上述目的,本专利技术提供了一种安全UDS诊断在CAN上的实现方法,包括:在ECU的报文中增加一个随机数的步骤;客户端获取该随机数并发出带有该随机数信息的诊断请求的步骤;ECU比对最近一条报文中的随机数与诊断请求中的随机数的步骤。较佳的,还包括以下步骤:ECU启动,ECU首轮广播报文中的第一随机数为ECU随机生成,在ECU的周期性广播报文中,下一轮的广播报文中的随机数为上一轮广播报文中的随机数加1。较佳的,还包括以下步骤:ECU应客户端的诊断请求解析客户端的请求报文,并生成响应报文和一个第二随机数,响应报文中含有该第二随机数,反馈给客户端;同时所述第二随机数替代ECU中即将发出的广播报文中原有的随机数。较佳的,所述ECU的报文的帧格式为:随机数占2字节、ECU的绝对地址占1字节、响应数据按实际需求占响应字节数,剩余为填充位字节数。若ECU的报文为广播报文,广播报文中无响应数据,则不占字节数。较佳的,包括ECU启动的步骤,和以下步骤:S1)判断是否有来自客户端的诊断请求,若是,S2)判断诊断请求是否合法,若是,进入步骤S3);若否,进入步骤S1);S3)ECU判断诊断请求是否为请求自己,若是,进入步骤S4);若否,进入步骤S1);S4)ECU解析请求报文,产生一个新的随机数,对请求报文给予响应,并反馈给客户端,同时所述新的随机数替代ECU中即将发出的广播报文中原有的随机数;S5)再次进入步骤S1)。较佳的,包括客户端启动的步骤,还包括以下步骤:C1:侦听CAN线上的ECU广播报文或响应报文;C2:判断是否收到需诊断ECU的广播报文或响应报文,若是,进入步骤C3,若否,进入步骤C1;C3:解析报文,获取侦听到的需诊断ECU的广播报文或响应报文中的随机数,并在该随机数基础上加1储存为第三随机数,且对需诊断的ECU发起诊断请求,该诊断请求中包括储存的第三随机数;C4:再次进入步骤C1)。较佳的,所述步骤S2中,ECU判断诊断请求是否合法的方法为通过比对储存的最近一条报文中的随机数与第三随机数,若第三随机数为最近一条报文中的随机数加1,该诊断请求合法,否则不合法。较佳的,所述步骤S1中,ECU判断是否有来自客户端的诊断请求的方法为ECU的报文密钥是否与诊断请求的密钥相符,若相符,则是来自客户端的诊断请求,若不相符,则不是;所述密钥采用对称加密技术设置。较佳的,所述步骤C3中诊断请求的帧格式为:第三随机数占2字节、需诊断的ECU绝对地址占1字节、请求数据按实际需求占相应字节数,剩余为填充位字节数。本专利技术的有益效果是:本专利技术使安全UDS诊断在CAN上得以实现,UDS更安全,不易被破解,降低了UDS被侦听和篡改的风险。附图说明图1是本专利技术一具体实施方式ECU的工作流程图。图2是本专利技术一具体实施方式客户端的工作流程图。图3是本专利技术一具体实施ECU与客户端的连接原理图。具体实施方式下面结合附图和实施例对本专利技术作进一步说明术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。本实施例中,ECU的报文若无特别指示,均包括广播报文和响应报文。一种安全UDS诊断在CAN上的实现方法,包括:在ECU的报文中增加一个随机数的步骤,此处报文包括广播报文与响应报文。广播报文的步骤为:如图1所示,ECU启动,ECU首轮广播报文中的第一随机数为ECU随机生成,即ECU随机产生一个随机数,并使该随机数设置在首轮广播报文中。本实施例中,随机数生成可以记录上一次系统关闭的时钟和本次启动的时钟作为种子,然后使用标准C库的srand和rand函数来生成随机数。当然也可以用其他方式来生成随机数。且在ECU的周期性广播报文中,下一轮的广播报文中的随机数为上一轮广播报文中的随机数加1。ECU定时器中断判断广播报文周期是否到了,如果是,随机数加1后开始下一轮广播报文,如果没到,则继续判断广播报文周期是否到了。为使ECU的广播报文中含有该随机数,汽车生产厂商可设置ECU的报文(包括广播报文和响应报文)帧格式为:随机数占2字节、需诊断的ECU绝对地址占1字节、请求数据按实际需求占相应字节数,剩余为填充位字节数。在ECU原报文的基础上增加了随机数和需诊断的ECU的绝对地址,只增加了3个字节,对于诊断报文发送所带来的影响与诊断报文的安全性提高相比可忽略不计。因此不会影响数据传输等。响应报文的步骤为:ECU应客户端的诊断请求解析客户端的请求报文,并生成响应报文和一个第二随机数,反馈给客户端;同时所述第二随机数替代ECU中即将发出的广播报文中原有的随机数。响应报文的帧格式与上述广播报文的帧格式相同。客户端获取该随机数并发出带有该随机数信息的诊断请求的步骤,具体方法见下文详述。本专利技术中客户端即是为诊断仪,是用来对汽车ECU进行诊断的一种工具。ECU比对最近一条报文中的随机数与诊断请求中的随机数的步骤,此处报文包括广播报文与响应报文,具体方法见下文详述。本专利技术中,还包括ECU启动的步骤,和以下步骤:S1)判断是否有来自客户端的诊断请求,若是,S2)判断诊断请求是否合法,若是,进入步骤S3);若否,进入步骤S1);S3)ECU判断该请求是否为请求自己,若是,进入步骤S4);若否,进入步骤S1);S4)ECU解析请求报文,产生一个新的随机数,对请求报文给予响应,并反馈给客户端,同时所述新的随机数替代ECU中即将发出的广播报文中原有的随机数,继续周期性报文;S5)再次进入步骤S1)。如图2所示,本专利技术还包括客户端启动的步骤,和以下步骤:C1:侦听CAN线上的ECU广播报文或响应报文;C2:判断是否收到需诊断ECU的广播报文或响应报文,若是,进入步骤C3,若否,进入步骤C1;C3:解析报文,获取侦听到的需诊断ECU的广播报文或响应报文中的随机数,并在该随机数基础上加1储存为第三随机数,并对需诊断的ECU发起诊断请求,该诊断请求中包括储存的第三随机数;C4:再次进入步骤C1)。结合ECU与客户端的工作流程,在本专利技术中,二者的配合工作步骤如下:ECU启动,ECU启动后产生一个随机数,并开始周期性广播报文,ECU首轮广本文档来自技高网...

【技术保护点】
1.一种安全UDS诊断在CAN上的实现方法,其特征是,包括:在ECU的报文中增加一个随机数的步骤;客户端获取该随机数并发出带有该随机数信息的诊断请求的步骤;ECU比对最近一条报文中的随机数与诊断请求中的随机数的步骤。

【技术特征摘要】
1.一种安全UDS诊断在CAN上的实现方法,其特征是,包括:在ECU的报文中增加一个随机数的步骤;客户端获取该随机数并发出带有该随机数信息的诊断请求的步骤;ECU比对最近一条报文中的随机数与诊断请求中的随机数的步骤。2.如权利要求1所述的安全UDS诊断在CAN上的实现方法,其特征是:还包括以下步骤:ECU启动,ECU首轮广播报文中的第一随机数为ECU随机生成,在ECU的周期性广播报文中,下一轮的广播报文中的随机数为上一轮广播报文中的随机数加1。3.如权利要求1所述的安全UDS诊断在CAN上的实现方法,其特征是:还包括以下步骤:ECU应客户端的诊断请求解析客户端的请求报文,并生成响应报文和一个第二随机数,响应报文中含有该第二随机数,反馈给客户端;同时所述第二随机数替代ECU中即将发出的广播报文中原有的随机数。4.如权利要求1所述的安全UDS诊断在CAN上的实现方法,其特征是:所述ECU的报文的帧格式为:随机数占2字节、ECU的绝对地址占1字节、响应数据按实际需求占响应字节数,剩余为填充位字节数。5.如权利要求1所述的安全UDS诊断在CAN上的实现方法,其特征是:包括ECU启动的步骤,和以下步骤:S1)判断是否有来自客户端的诊断请求,若是,S2)判断诊断请求是否合法,若是,进入步骤S3);若否,进入步骤S1);S3)ECU判断诊断请求是否为请求自己,若是,进入步骤S4);若否,进入步骤S1);S4)ECU解析请求报文,产生一个新的随机数,对请求报...

【专利技术属性】
技术研发人员:王云柯贺云龙
申请(专利权)人:重庆圣眸科技开发有限公司
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1