一种安全漏洞检测方法、装置、存储介质和智能设备转让专利

申请号 : CN201911011295.1

文献号 : CN110908357B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 万振华张海春

申请人 : 深圳开源互联网安全技术有限公司开源网安物联网技术(武汉)有限公司

摘要 :

本申请适用于安全检测技术领域,提供了一种安全漏洞检测方法、装置、存储介质和智能设备,包括:获取CAN网络中目标电子控制单元ECU的身份信息;根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。本申请可对电子控制单元ECU进行有效的安全漏洞检测以评估其安全性,提高车辆ECU的安全性。

权利要求 :

1.一种安全漏洞检测方法,其特征在于,包括:

安全漏洞检测的客户端获取CAN网络中目标电子控制单元ECU的身份信息,所述身份信息是指车辆制造商分配给ECU的用于唯一标识ECU的用户标识符ID,所述目标电子控制单元ECU是指待进行安全漏洞检测的ECU;

根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;

接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;

基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;

利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。

2.如权利要求1所述的安全漏洞检测方法,其特征在于,所述获取CAN网络中目标电子控制单元ECU的身份信息的步骤,包括:在所述CAN网络中发送ECU搜寻指令,所述ECU搜寻指令用于搜寻CAN网络中带有安全认证标识的目标电子控制单元ECU;

接收所述目标电子控制单元ECU反馈的搜寻响应信息,并根据所述搜寻响应信息,获取所述目标电子控制单元ECU的身份信息。

3.如权利要求1所述的安全漏洞检测方法,其特征在于,当所述目标电子控制单元ECU反馈当前会话模式无法进行请求响应的提示时,在根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令的步骤之前,包括:根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送会话模式切换请求指令,所述会话模式切换请求指令用于更改ECU通信会话模式;

若接收到所述目标电子控制单元ECU的会话模式响应信息,则根据所述会话模式响应信息,切换当前会话模式至目标会话模式,在所述目标会话模式下向所述目标电子控制单元ECU发送帧数据请求指令。

4.如权利要求3所述的安全漏洞检测方法,其特征在于,所述安全漏洞检测方法还包括:若在设定时间内未接收到所述目标电子控制单元ECU基于所述会话模式切换请求的会话模式响应信息,则更新所述会话模式切换请求指令,并向所述目标电子控制单元ECU发送更新后的会话模式切换请求指令。

5.如权利要求1所述的安全漏洞检测方法,其特征在于,所述基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥的步骤,包括:获取所述目标电子控制单元ECU对应的车辆类型;

查找与所述车辆类型对应的密钥计算算法;

根据所述帧数据与所述车辆类型对应的密钥计算算法,计算密钥。

6.如权利要求1所述的安全漏洞检测方法,其特征在于,所述利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞的步骤,具体包括:利用所述密钥对所述目标电子控制单元ECU进行认证;

若接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU存在安全漏洞;

若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU通过安全漏洞检测。

7.一种安全漏洞检测装置,其特征在于,包括:

身份信息获取单元,用于通过安全漏洞检测的客户端获取CAN网络中目标电子控制单元ECU的身份信息,所述身份信息是指车辆制造商分配给ECU的用于唯一标识ECU的用户标识符ID,所述目标电子控制单元ECU是指待进行安全漏洞检测的ECU;

帧数据请求单元,用于根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;

帧数据接收单元,用于接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;

密钥计算单元,用于基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;

安全漏洞检测单元,用于利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。

8.如权利要求7所述的安全漏洞检测装置,其特征在于,所述安全漏洞检测单元包括:密钥验证模块,用于利用所述密钥对所述目标电子控制单元ECU进行认证;

第一检测模块,用于若接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU存在安全漏洞;

第二检测模块,用于若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU通过安全漏洞检测。

9.一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的安全漏洞检测方法。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的安全漏洞检测方法。

说明书 :

一种安全漏洞检测方法、装置、存储介质和智能设备

技术领域

[0001] 本申请属于安全检测技术领域,尤其涉及一种安全漏洞检测方法、装置、存储介质和智能设备。

背景技术

[0002] 现代车辆包含更多的软件,并提供比以前更先进的功能和连接,这也意味着攻击面越来越大。也就是说,车辆正在成为网络安全攻击的目标,因此,在车辆投放市场之前找到并修复安全漏洞势在必行。
[0003] 近几年来针对汽车的信息安全事件频发,在多种车载总线中,CAN总线是使用最为广泛的一种,黑客可以通过汽车的多种对外接口渗透到车内CAN总线。在许多汽车中,诊断通信发生在OBD-II端口上的CAN总线上,自2004年以来欧盟委托的每辆车都必须配备该端口。但是,由于电子控制单元ECU无法区分诊断消息是来自诊断客户端还是来自攻击者的消息,ECU存在漏洞并被攻击时的风险较高。

发明内容

[0004] 本申请实施例提供了一种安全漏洞检测方法、装置、存储介质和智能设备,可以对电子控制单元ECU进行安全漏洞检测以评估其安全性,提高车辆ECU的安全性。
[0005] 第一方面,本申请实施例提供了一种安全漏洞检测方法,包括:
[0006] 获取CAN网络中目标电子控制单元ECU的身份信息;
[0007] 根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;
[0008] 接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;
[0009] 基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;
[0010] 利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。
[0011] 在第一方面的一种可能的实现方式中,所述获取CAN网络中目标电子控制单元ECU的身份信息的步骤,包括:
[0012] 在所述CAN网络中发送ECU搜寻指令,所述ECU搜寻指令用于搜寻CAN网络中带有安全认证标识的目标电子控制单元ECU;
[0013] 接收所述目标电子控制单元ECU反馈的搜寻响应信息,并根据所述搜寻响应信息,获取所述目标电子控制单元ECU的身份信息。
[0014] 在第一方面的一种可能的实现方式中,当所述目标电子控制单元ECU反馈当前会话模式无法进行请求响应的提示时,在所述在根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令的步骤之前,包括:
[0015] 根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送会话模式切换请求指令,所述会话模式切换请求指令用于更改ECU通信会话模式;
[0016] 若接收到所述目标电子控制单元ECU的会话模式响应信息,则根据所述会话模式响应信息,切换当前会话模式至目标会话模式,在所述目标会话模式下向所述目标电子控制单元ECU发送帧数据请求指令。
[0017] 可选地,所述安全漏洞检测方法还包括:
[0018] 若在设定时间内未接收到所述目标电子控制单元ECU基于所述会话模式切换请求的会话模式响应信息,则更新所述会话模式切换请求指令,并向所述目标电子控制单元ECU发送更新后的会话模式切换请求指令。
[0019] 在第一方面的一种可能的实现方式中,所述基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥的步骤,包括:
[0020] 获取所述目标电子控制单元ECU对应的车辆类型;
[0021] 查找与所述车辆类型对应的密钥计算算法;
[0022] 根据所述帧数据与所述车辆类型对应的密钥计算算法,计算密钥。
[0023] 在第一方面的一种可能的实现方式中,所述利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞的步骤,具体包括:
[0024] 利用所述密钥对所述目标电子控制单元ECU进行认证;
[0025] 若接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU存在安全漏洞;
[0026] 若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU通过安全漏洞检测。
[0027] 第二方面,本申请实施例提供了一种安全漏洞检测装置,包括:
[0028] 身份信息获取单元,用于获取CAN网络中目标电子控制单元ECU的身份信息;
[0029] 帧数据请求单元,用于根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;
[0030] 帧数据接收单元,用于接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;
[0031] 密钥计算单元,用于基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;
[0032] 安全漏洞检测单元,用于利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。
[0033] 第三方面,本申请实施例提供了一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的安全漏洞检测方法。
[0034] 第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的安全漏洞检测方法。
[0035] 第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在智能设备上运行时,使得智能设备执行如上述第一方面所述的安全漏洞检测方法。
[0036] 本申请实施例中,通过获取CAN网络中目标电子控制单元ECU的身份信息,然后根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令,接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据,再基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥,利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞,从而对电子控制单元ECU进行有效的安全漏洞检测以评估其安全性,提高车辆ECU的安全性。
[0037] 可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

[0038] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039] 图1是本申请实施例提供的安全漏洞检测方法的实现流程图;
[0040] 图2是本申请实施例提供的安全漏洞检测方法步骤S101的具体实现流程图;
[0041] 图3是本申请实施例提供的会话模式切换的实现流程图;
[0042] 图4是本申请实施例提供的安全漏洞检测方法步骤S104的具体实现流程图;
[0043] 图5是本申请实施例提供的安全漏洞检测装置的结构框图;
[0044] 图6是本申请实施例提供的智能设备的示意图。

具体实施方式

[0045] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
[0046] 应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0047] 还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0048] 如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0049] 另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0050] 在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0051] 本申请实施例提供的安全漏洞检测方法可以应用于车载设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等智能设备上,本申请实施例对智能设备的具体类型不作任何限制。
[0052] 图1示出了本申请实施例提供的安全漏洞检测方法的实现流程,该方法流程包括步骤S101至S105。各步骤的具体实现原理如下:
[0053] S101:获取CAN网络中目标电子控制单元ECU的身份信息。
[0054] 本申请实施例中的执行主体为用于进行安全漏洞检测的客户端。具体地,所述CAN网络为电子控制单元ECU进行通信的通信网络,所述目标电子控制单元ECU(下文简称为目标ECU)是指待进行安全漏洞检测的ECU。所述目标电子控制单元ECU的身份信息是指车辆制造商分配给ECU的用于唯一标识ECU的用户标识符ID。
[0055] 由于CAN网络中通信的ECU有很多,作为本申请的一个实施例,将带有安全认证服务的ECU确定为目标ECU,图2示出了本申请实施例提供的安全漏洞检测方法步骤S101的具体实现流程,详述如下:
[0056] A1:在所述CAN网络中发送ECU搜寻指令,所述ECU搜寻指令用于搜寻CAN网络中带有安全认证标识的目标电子控制单元ECU。客户端广播ECU搜寻指令,将反馈包含安全认证标识的响应信息的ECU确定为目标ECU,也即本实施例中需要进行安全漏洞检测的ECU。
[0057] A2:接收所述目标电子控制单元ECU反馈的搜寻响应信息,并根据所述搜寻响应信息,获取所述目标电子控制单元ECU的身份信息。所述搜寻响应信息为ECU反馈所述客户端发送的ECU搜寻指令,并且包含ECU的安全认证标识。通过解析所述目标ECU反馈的搜寻响应信息获取所述目标ECU的身份信息。
[0058] 在本申请实施例中,通过在CAN网络中发送ECU搜寻指令,搜寻CAN网络中带有安全认证标识的目标ECU,根据目标ECU反馈的搜索响应信息,获取待进行安全漏洞检测的目标ECU的身份信息。示例性地,向CAN网络中所有ECU发送请求安全认证服务的CAN帧,并接受ECU的响应,根据响应内容来判断具有安全认证服务的目标ECU,并获取该目标ECU的ID。进一步地,如果所有的ECU都回应否定响应,即不存在安全认证服务,则可判断该车辆不存在安全访问机制,外部可任意访问ECU内的任何内容,存在信息泄露安全威胁。
[0059] S102:根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令。
[0060] 具体地,所述帧数据请求用于向所述目标ECU获取帧数据,所述帧数据用于计算所述目标ECU的密钥。例如,所述帧数据可以是密码函数。
[0061] 可选地,作为本申请的一个实施例,当所述目标ECU反馈当前会话模式无法进行请求响应的提示时,如图3所示,在上述步骤S102之前,还包括:
[0062] B1:根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送会话模式切换请求指令,所述会话模式切换请求指令用于更改ECU通信会话模式。当步骤S101中目标ECU反馈的搜寻响应信息提示安全认证服务要在非常规会话模式中进行时,根据所述目标ECU的身份信息,向所述目标ECU发送会话模式切换请求指令。具体地,所述会话模式包括但不限于默认会话模式、编程会话模式以及扩展诊断会话模式。
[0063] B2:若接收到所述目标电子控制单元ECU的会话模式响应信息,则根据所述会话模式响应信息,切换当前会话模式至目标会话模式,在所述目标会话模式下向所述目标电子控制单元ECU发送帧数据请求指令。具体地,各个会话模式下的可用功能由制造商自行设定,本实施例中,需要在特定的会话模式下向目标ECU发送帧数据请求指令,因此,当所述目标ECU反馈当前会话模式无法进行请求响应的提示时,切换当前的会话模式至目标会话模式。所述目标会话模式是指所述目标ECU设定的可用于响应所述帧数据请求指令的会话模式,例如编程会话模式或者扩展诊断会话模式。
[0064] 示例性地,所述客户端向ID为730目标ECU发送会话模式切换请求指令,所述会话模式切换请求指令中包括can帧数据:730 02 10 03 00 00 00 00 00;所述ID为730的目标ECU接收到该会话模式切换请求指令,反馈包含肯定响应帧的会话模式响应信息,所述肯定响应帧的格式为:730 02 50 03 00 00 00 00 00。02为有效字节数,50为肯定响应码,该can帧表示切换会话模式成功。在切换会话模式成功之后,客户端向车辆发送帧数据请求指令,所述帧数据请求指令包含can帧数据:730 02 27 01 00 00 00 00 00。
[0065] 可选地,所述安全漏洞检测方法还包括:
[0066] B3:若在设定时间内未接收到所述目标电子控制单元ECU基于所述会话模式切换请求的会话模式响应信息,则更新所述会话模式切换请求指令,并向所述目标电子控制单元ECU发送更新后的会话模式切换请求指令。
[0067] ECU通常要在特定的会话模式下进行安全认证服务。UDS(一种诊断服务协议,规定了对车辆进行诊断时需要遵守的规则)标准定义了几个诊断会话:在默认会话中,ECU在内部车辆网络中执行其正常功能。客户端可以使用DiagnosticSessionControl服务(0x10)将活动会话更改为编程会话或扩展诊断会话,但这些会话中的可用功能由制造商自行决定。DiagnosticSessionControl服务的服务ID为0x10,不同的诊断会话模式具有不同的子功能ID。UDS规定,默认会话、编程会话和扩展会话的子功能ID分别为0x01,0x02,0x03。示例性地,以下是两帧数据便是建立扩展会话的过程:
[0068] 客户端:0x7e0 02 10 03 00 00 00 00 00;
[0069] ECU:0x7e8 06 50 03 00 32 01 F4 00;
[0070] 如若该ECU不支持扩展会话ECU将会回应如下数据:
[0071] ECU:0x7e8 06 7F 50 11 00 00 00 00。
[0072] S103:接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据。
[0073] 作为本申请的一种可能的实现方式,所述帧数据是所述目标ECU基于客户端发送的所述帧数据请求指令随机生成的随机数。具体地,所述目标ECU根据随机数生成算法,任意生成一个随机数,所述随机数可由车辆的车速、时间和ECU的ID动态生成。
[0074] S104:基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥。
[0075] 具体地,所述预设密钥计算算法可以为暴力破解算法。通过目标ECU随机生成的随机数与暴力破解算法进行密钥计算,得到密钥。
[0076] 示例性地,客户端向车辆发送can帧数据:730 02 27 01 00 00 00 00 00为请求种子can帧,收到种子后将计算密钥,并将密钥发送给ECU,算法中有24位未知数,因此最多要进行2^24次暴力破解。
[0077] 作为本申请的一种可能的实现方式,图4示出了本申请实施例提供的安全漏洞检测方法步骤S104的具体实现流程,详述如下:
[0078] C1:获取所述目标电子控制单元ECU对应的车辆类型。所述车辆类型是指某一车辆品牌的车型。
[0079] C2:查找与所述车辆类型对应的密钥计算算法。具体地,不同车辆类型生成密钥的算法可能不相同,不同车辆类型对应的密钥的字段可能不同。通过建立车辆类型与密钥计算算法的对应关系,查找与所述车辆类型对应的密钥计算算法。需说明的是,同一车辆类型对应的密钥计算算法可以不止一种。
[0080] C3:根据所述帧数据与所述车辆类型对应的密钥计算算法,计算密钥。所述车辆类型对应的密钥计算算法,根据车辆类型对应的密钥的字段,利用暴力破解算法计算密钥。
[0081] 本申请实施例中,通过查找车辆类型快速查找所述目标ECU对应的密钥计算算法,可进一步提升密钥计算的速度,进而加快破解效率。
[0082] S105:利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。
[0083] 在本申请实施例中,通过计算得到密钥对目标ECU进行认证,通过认证密钥的真假来验证所述目标ECU是否存在安全漏洞。具体地,上述步骤S105具体包括:
[0084] D1:利用所述密钥对所述目标电子控制单元ECU进行认证。即将计算的所述密钥发送至所述目标ECU,由所述目标ECU认证所述密钥的真伪。
[0085] D2:若接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU存在安全漏洞。具体地,若所述目标ECU认证所述密钥为真,则向客户端反馈认证通过信息,换言之,若所述目标ECU认证所述密钥为真,则说明根据随机数与暴力破解算法可得到通过所述目标ECU安全认证的密钥,所述目标ECU的安全认证服务存在漏洞。通过所述目标ECU安全认证的客户端可以对所述目标ECU进行诊断数据读写、固件读取以及程序烧录。
[0086] D3:若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU通过安全漏洞检测。具体地,所述目标ECU验证所述密钥的真伪需要一定时间,当客户端长时间未收到所述目标ECU反馈的认证通过信息时,则判定所述目标ECU验证所述密钥为伪,所述目标ECU通过安全漏洞检测。示例性地,一次密钥发送,客户端进行3秒的响应接收等待,3秒内无任何响应,则判定发送失败,继续发送同样密钥。若多次接收无响应,则可判断ECU因多次收到无效密钥,已触发安全保护机制,拒绝外部一切访问尝试。
[0087] 可选地,上述步骤S105还包括:
[0088] D4:若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,或者,接收到所述目标电子控制单元ECU反馈的密钥错误提示信息,则重新计算密钥得到新的密钥,利用所述新的密钥对所述目标电子控制单元ECU进行认证。具体地,获取新的密钥计算算法,即新的暴力破解算法,根据新的密钥计算算法重新密钥计算得到新的密钥。当经过多次密钥计算得到的密钥无法得到所述目标ECU反馈的认证通过信息,则可暂时确定所述目标ECU通过安全漏洞检测。
[0089] 可选地,在本申请实施例中,当目标ECU在接收到错误的密钥后,将触发所述目标ECU进入延时响应,例如延时响应10秒左右,在该延响应时期间,所述目标ECU不对外部请求做出任何响应,通过延时响应来极大的延长暴力破解所须花费的时间,进一步地,增加密钥长度,使暴力破解手段变得不再实用。
[0090] 本申请实施例中,通过获取CAN网络中目标电子控制单元ECU的身份信息,然后根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令,接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据,再基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥,利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞,从而对电子控制单元ECU进行有效的安全漏洞检测以评估其安全性,提高车辆ECU的安全性。
[0091] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0092] 对应于上文实施例所述的安全漏洞检测方法,图5示出了本申请实施例提供的安全漏洞检测装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
[0093] 参照图5,该安全漏洞检测装置包括:身份信息获取单元51、帧数据请求单元52、帧数据接收单元53、密钥计算单元54,安全漏洞检测单元55,其中:
[0094] 身份信息获取单元51,用于获取CAN网络中目标电子控制单元ECU的身份信息;
[0095] 帧数据请求单元52,用于根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令;
[0096] 帧数据接收单元53,用于接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据;
[0097] 密钥计算单元54,用于基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥;
[0098] 安全漏洞检测单元55,用于利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞。
[0099] 可选地,所述身份信息获取单元51包括:
[0100] 目标电子控制单元ECU搜寻模块,用于在所述CAN网络中发送ECU搜寻指令,所述ECU搜寻指令用于搜寻CAN网络中带有安全认证标识的目标电子控制单元ECU;
[0101] 身份信息获取模块,用于接收所述目标电子控制单元ECU反馈的搜寻响应信息,并根据所述搜寻响应信息,获取所述目标电子控制单元ECU的身份信息。
[0102] 可选地,当所述目标电子控制单元ECU反馈当前会话模式无法进行请求响应的提示时,所述安全漏洞检测装置还包括:
[0103] 第一模式切换请求单元,用于根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送会话模式切换请求指令,所述会话模式切换请求指令用于更改ECU通信会话模式;
[0104] 模式切换单元,用于若接收到所述目标电子控制单元ECU的会话模式响应信息,则根据所述会话模式响应信息,切换当前会话模式至目标会话模式,在所述目标会话模式下向所述目标电子控制单元ECU发送帧数据请求指令。
[0105] 可选地,所述安全漏洞检测装置还包括:
[0106] 第二模式切换请求单元,用于若在设定时间内未接收到所述目标电子控制单元ECU基于所述会话模式切换请求的会话模式响应信息,则更新所述会话模式切换请求指令,并向所述目标电子控制单元ECU发送更新后的会话模式切换请求指令。
[0107] 可选地,所述密钥计算单元54包括:
[0108] 车辆类型获取模块,用于获取所述目标电子控制单元ECU对应的车辆类型;
[0109] 密钥算法确定模块,用于查找与所述车辆类型对应的密钥计算算法;
[0110] 密钥计算模块,用于根据所述帧数据与所述车辆类型对应的密钥计算算法,计算密钥。
[0111] 可选地,所述安全漏洞检测单元55包括:
[0112] 密钥验证模块,用于利用所述密钥对所述目标电子控制单元ECU进行认证;
[0113] 第一检测模块,用于若接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU存在安全漏洞;
[0114] 第二检测模块,用于若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,则确定所述目标电子控制单元ECU通过安全漏洞检测。
[0115] 可选地,所述安全漏洞检测单元55还包括:
[0116] 第三检测模块,用于若在预设时间内未接收到所述目标电子控制单元ECU反馈的认证通过信息,或者,接收到所述目标电子控制单元ECU反馈的密钥错误提示信息,则重新计算密钥得到新的密钥,利用所述新的密钥对所述目标电子控制单元ECU进行认证。
[0117] 本申请实施例中,通过获取CAN网络中目标电子控制单元ECU的身份信息,然后根据所述目标电子控制单元ECU的身份信息,向所述目标电子控制单元ECU发送帧数据请求指令,接收所述目标电子控制单元ECU基于所述帧数据请求指令反馈的帧数据,再基于所述帧数据与预设密钥计算算法进行密钥计算,得到密钥,利用所述密钥对所述目标电子控制单元ECU进行认证,并根据所述目标电子控制单元ECU反馈的认证结果确定所述目标电子控制单元ECU是否存在安全漏洞,从而对电子控制单元ECU进行有效的安全漏洞检测以评估其安全性,提高车辆ECU的安全性。
[0118] 需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0119] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0120] 本申请实施例提供了一种计算机可读指令产品,当计算机可读指令产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
[0121] 本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1至图4表示的任意一种安全漏洞检测方法的步骤。
[0122] 本申请实施例还提供一种智能设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1至图4表示的任意一种安全漏洞检测方法的步骤。
[0123] 本申请实施例还提供一种计算机程序产品,当该计算机程序产品在智能设备上运行时,使得智能设备执行实现如图1至图4表示的任意一种安全漏洞检测方法的步骤。
[0124] 图6是本申请一实施例提供的智能设备的示意图。如图6所示,该实施例的智能设备6包括:处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机可读指令62。所述处理器60执行所述计算机可读指令62时实现上述各个安全漏洞检测方法实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器60执行所述计算机可读指令62时实现上述各装置实施例中各模块/单元的功能,例如图5所示单元51至55的功能。
[0125] 示例性的,所述计算机可读指令62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令62在所述智能设备6中的执行过程。
[0126] 所述智能设备6可以是车载终端、车载设备等计算设备。所述智能设备6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是智能设备6的示例,并不构成对智能设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述智能设备6还可以包括输入输出设备、网络接入设备、总线等。
[0127] 所述处理器60可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitaLSignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieLd-ProgrammabLe Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0128] 所述存储器61可以是所述智能设备6的内部存储单元,例如智能设备6的硬盘或内存。所述存储器61也可以是所述智能设备6的外部存储设备,例如所述智能设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure DigitaL,SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器61还可以既包括所述智能设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机可读指令以及所述智能设备所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
[0129] 需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0130] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0131] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0132] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0133] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。