法律状态公告日
法律状态信息
法律状态
2010-02-24
授权
授权
2008-06-18
实质审查的生效
实质审查的生效
2008-04-23
公开
公开
技术领域
本发明涉及汽车诊断通讯领域,特别涉及一种用于汽车诊断通讯中的安全验证方法。
背景技术
随着汽车工业的发展,汽车诊断通讯系统的应用也越来越广泛。其中普遍使用的汽车诊断通讯协议是ISO 14230协议和ISO 15765协议。为了对汽车诊断操作进行权限控制,这两种汽车诊断通讯协议都规定了安全验证服务。诊断仪必须发出安全验证服务请求,并通过安全验证,才能对汽车控制器进行受安全验证保护的诊断操作。
这种安全验证服务的操作如图1所示,第1步,诊断仪向汽车控制器发出请求种子的要求;第2步,汽车控制器计算出一个种子;第3步,汽车控制器将该种子的值放在响应消息中,返回给诊断仪;第4步,诊断仪将收到的种子的值按一种安全验证算法,计算出一个密钥;第5步,诊断仪将计算出的密钥放在请求验证服务的消息中,发送给汽车控制器;第6步,汽车控制器同样用第2步中生成的种子,通过使用和诊断仪相同的算法,也计算出一个密钥,与诊断仪发来的密钥对比。如果两个密钥相同,则安全验证通过;如果不同,则安全验证被拒绝,诊断仪将不能对汽车控制器进行受安全验证保护的诊断操作;第7步,汽车控制器将安全验证结果返回给诊断仪。
因此这种安全验证有效性的关键在于诊断仪计算密钥的算法必须和汽车控制器的计算密钥的算法一致。该算法一般由整车制造厂掌握且不对外公开,以防止汽车控制器被进行非授权的诊断操作。一旦该计算密钥的算法被泄漏给公众,整车制造厂就要重新设计一套密钥算法。
发明内容
有鉴于此,本发明的目的在于,提出一种汽车诊断通讯中的安全验证方法,该方法具有足够的安全性,能够抵抗暴力破解,且具有足够的灵活性,在由于某些原因造成泄密的情况下,也可以很容易地生成新的密钥算法,从而更加有效的确保汽车诊断通讯中的安全验证的安全性,同时使密钥算法的开发和维护更加容易和简便。
本发明的用于汽车诊断通讯中的安全验证方法,包括如下步骤:
a、诊断仪向汽车控制器发出请求种子的要求;
b、汽车控制器结合计算因子,计算出一个伪随机数作为种子;
c、汽车控制器将步骤b中所述伪随机数种子的值放在响应消息中,返回给诊断仪;
d、诊断仪将收到的步骤b中所述伪随机数种子的值加上一个关键字节串,组成一个新的字节串,通过MD5算法对此新字节串进行加密,将加密的结果作为密钥输出;
e、诊断仪将步骤d计算出的密钥发送给汽车控制器;
f、汽车控制器用步骤b中算出的所述伪随机数种子,加上步骤d中采用的所述关键字节串,组成一个新的字节串,通过MD5算法对此新字节串进行加密,将加密的结果作为密钥输出,将此密钥和诊断仪发来的密钥对比;如果两个密钥相同,则安全验证通过;如果不同,则安全验证被拒绝,诊断仪将不能对汽车控制器进行受安全验证保护的诊断操作;
g、汽车控制器将安全验证的结果返回给诊断仪。
在步骤b中,以汽车控制器复位后的运行时间作为所述计算因子;步骤d和f中的加密结果都是128位的大整数。所述关键字节串是除0之外的任意长度,可以取任意值。
加密算法MD5(Message Digest Algorithm 5)是一种被广泛采用的加密算法。该算法对字节串(Message)进行杂凑变换,可以把任意长度的字节串变换成128位的大整数。该算法具有两个特点:其一是寻找两个输入得到相同的输出值在计算上是不可行的,即具有抗碰撞性;其二是找一个输入,能得到给定的输出在计算上是不可行的,即具有不可回溯性。因此MD5算法在诸如数字签名、密码保护等数据安全领域被广泛采用。
本发明方案引入MD5算法,主要利用了这两个特性。由于本方案在进行汽车诊断通讯的安全验证时,生成的种子数为一个伪随机数,且MD5算法的抗碰撞性保证了不可能通过计算来使得有两个不同的种子得到相同的密钥,因此密钥具有唯一性;MD5算法的不可回溯性则保证了破解者即使截获了正确的种子和对应的密钥,也无法计算推断出在计算密钥时加入的关键字。安全可靠性高,这是本发明方案的优点之一。
本发明方案的另一个优点是,实现方式简单,密钥算法的开发和维护方便。发明中所述的MD5算法应用很普及,在很多设备中都有现成的MD5算法模块,因此只需要对现有设备略做改造就可以实现本发明方案。对于种子的长度也没有要求,如果系统升级或其他设计原因,导致种子长度发生变化时,本发明方案的密钥算法不需要做改动,可扩展性强。本发明方案所述密钥算法中的关键字节串可以是除0之外的任意长度,可以取任意值。整车制造厂需要保密的只有关键字节串而已,算法是公开的。即使在关键字节串被人为泄露的情况下,整车制造厂只需要简单地修改关键字节串即可。
附图说明
图1为现有技术进行汽车诊断通讯中安全验证方法的示意图;
图2为本发明进行汽车诊断通讯中安全验证方法的示意图;
图3为本发明进行汽车诊断通讯中安全验证的工作流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明作进一步的详细描述。
如图2、3示出了进行汽车诊断通讯中安全验证的工作流程:
步骤1:诊断仪通过安全验证请求#1(SecurityAccess Request#1)向汽车控制器发出消息,请求种子。安全验证服务(SecurityAccess)是汽车诊断通讯协议ISO 14230和ISO 15765中规定的专门用于安全验证的服务,该服务中的安全验证请求#1(SecurityAccess Request#1)用于诊断仪向汽车控制器请求种子。
步骤2:汽车控制器以控制器复位后的运行时间为计算因子,计算出一个伪随机数作为种子。
步骤3:汽车控制器通过安全验证响应#1(SecurityAccessResponse#1),向诊断仪发出响应消息,将步骤2中计算出的种子返回给诊断仪。安全验证服务中的安全验证响应#1是汽车诊断通讯协议ISO14230和ISO 15765中规定的用于安全验证服务中将种子返回的响应消息。
步骤4:诊断仪将收到的种子加上关键字节串“12345”成为一个新字节串,然后通过MD5算法计算出一个128位的密钥。本范例的关键字节串“12345”指的是连续的5个字节,每个字节的值分别为1、2、3、4、5。
步骤5:诊断仪通过安全验证请求#2(SecurityAccess Request#2),将密钥发送给汽车控制器,请求验证密钥。安全验证服务中的安全验证请求#2是汽车诊断通讯协议ISO 14230和ISO 15765中规定的用于安全验证服务中诊断仪向汽车控制器发送密钥并请求验证的请求消息。
步骤6:汽车控制器将用同样在步骤2中计算出的种子加上关键字节串“12345”成为一个新字节串,然后也通过MD5算法计算出一个128位的密钥,并和收到的诊断仪发送过来的密钥进行比较。如果两个密钥相同,则验证通过,汽车控制器可以进行受安全验证保护的诊断操作;如果两个密钥不同,则验证被拒绝,受安全验证保护的诊断操作将被汽车控制器拒绝。这里的关键字节串“12345”与步骤4中用于诊断仪计算的关键字节串完全一样。
步骤7:汽车控制器通过安全验证响应#2(SecurityAccessResponse#2),向诊断仪发出响应消息,将密钥验证结果返回给诊断仪。安全验证服务中的安全验证响应#2是汽车诊断通讯协议ISO 14230和ISO 15765中规定的用于安全验证服务中汽车控制器将安全验证结果返回给诊断仪的响应消息。
以上所述仅为本发明的一个较佳实施范例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: 一种用于在线银行的PIN-TAN身份验证方法,其中交易号的生成是通过用户与其银行之间的安全连接在应用程序中基于自我的授权步骤中发生的
机译: 本地数据介质智能卡,一种安全验证方法,涉及在介质中实现指令集,并通过使用功能集验证数据介质是否满足预定的安全要求
机译: 一种用于汽车中的安全气囊装置,用于在事故发生前保护乘员的身体免受伤害,具有相对于安全气囊壳体形成的固定器,以及将固定带或安全气囊部分从固定器上移开的释放单元