车内网通信安全认证方法及装置

文档序号:25536273发布日期:2021-06-18 20:30阅读:140来源:国知局
车内网通信安全认证方法及装置

本发明涉及车内网通信技术领域,尤其涉及一种车内网通信安全认证方法及装置。



背景技术:

在车辆内网安全通信中,车载部件ecu(electroniccontrolunit,电子控制单元)和网关的身份合法性是安全通信的前提和保障。车内车载部件与网关之间缺少有效认证机制,易受到伪造攻击、重放攻击的问题。

随着车联网进一步高速化、智能化发展,智能网联汽车面临的安全风险不断增加,为提高车载网络的安全性,secoc(securityonboardcommunication板端加密通讯)安全验证机制为车载can(controllerareanetwork)通信提供了行驶时报文安全认证及防重放机制。为保障secoc的防重放机制有效运行,在车辆每次行驶之前,都会由新鲜值管理机制为各车载部件ecu同步新鲜值参数。新鲜度值管理系统作车内网关节点的一个服务,向车载部件ecu节点同步新鲜值,车载部件ecu节点在接受到新鲜值同步报文时,验证其中的新鲜值是否大于当前本地非易失性存储器中存储的新鲜值,大于则认为此新鲜值同步报文合法,反之丢弃此新鲜值同步报文。

但是,由于新鲜值同步发生在汽车启动阶段,此时secoc中的新鲜值机制尚未生效,故当攻击者收集新鲜值周期内全部新鲜值同步报文后,可实现重放攻击,伪造攻击,致使后续的secoc安全通信失败,从而使车辆在行驶过程中由于新鲜度值同步不正确无法正常行驶或发生意外。所以,在汽车启动检查阶段,认证车辆内部各车载部件ecu,尤其是网关节点的身份合法性,是后续安全通信的前提。



技术实现要素:

本发明实施例提供了一种车内网通信安全认证方法及装置,以消除或改善现有技术中存在的一个或更多个缺陷,实现在车辆启动初期对网关和车载部件的双向认证,以防止重放攻击。

本发明的技术方案如下:

一方面,本发明提供一种车内网通信安全认证方法,包括:

基于车辆上电信号在车内网广播第一身份认证请求报文,所述第一身份认证请求报文包括网关身份标识散列值;

接收所述车内网中各车载部件返回的第一挑战报文,每个第一挑战报文包括发送该第一挑战报文的车载部件的第一身份编码信息和第一挑战码,所述第一挑战码由每个车载部件产生第一随机数并采用各车载部件端记载的第一密钥加密得到;

采用网关记载的第一密钥解密各第一挑战码得到对应的第一随机数,采用网关记载的第二密钥对各第一随机数进行加密得到对应的第一响应值;将每个第一响应值分别与其对应的第一身份编码信息打包生成各车载部件对应的第一响应报文,将各第一响应报文在所述车内网进行广播,用于供各车载部件获取对应的第一响应报文并认证;

接收各车载部件返回的认证通过确认报文,获取各认证通过确认报文中记载的发送该认证通过确认报文的车载部件的第二身份编码信息;将各第二身份编码信息与所述网关记载的车载部件身份可信列表中的可信任车载构件的编码信息进行比对,若各第二身份编码信息包含所述车载部件身份可信列表中记载的所有可信任车载构件的标识信息,则生成网关认证成功信息并在所述车内网广播;

接收所述车内网中各车载部件返回的第二身份认证请求报文,所述第二身份认证请求报文包括发送该第二身份认证请求报文的车载部件的第三身份编码信息和ecu身份标识散列值;

将各ecu身份标识散列值与所述车载部件身份可信列表中记载的可信任车载构件的身份标识散列值对比,若各ecu身份标识散列值均在所述车载部件身份可信列表中,生成第二随机数并采用网关记载的第一密钥加密得到第二挑战码,将所述第二挑战码与各第二身份认证请求报文中记载的第三身份编码信息的分别打包生成第二挑战报文,并将各第二挑战报文在所述车内网广播,以供各车载部件获取对应的第二挑战报文并认证;

接收各车载部件返回的第二响应报文,所述第二响应报文中包含发送该第二响应报文的车载部件的第四身份编码信息以及经各车载部件记载的第二密钥加密第二随机数得到的第二响应值;采用所述网关记载的第二密钥对所述第二随机数进行加密得期望值,若所述车载部件身份可信列表中记载的车载部件均返回了所述第二响应报文且各第二响应报文中记载的第二响应值与所述期望值相同,则生成车载部件认证成功信息并在所述车内网广播,以触发各车载部件同步和认证新鲜值;

其中,各车载部件对应的所述第一身份编码信息、所述第二身份编码信息、所述第三身份编码信息和所述第四身份编码信息内容相同,各车载部件端记载的第一密钥与所述网关记载的第一秘钥相同,各车载部件端记载的第二密钥与所述网关记载的第二秘钥相同;所述车载部件身份可信列表中记载有各可信任车载构件的身份编码信息及其ecu身份标识散列值。

在一些实施例中,将各第二身份编码信息与所述网关记载的车载部件身份可信列表中的可信任车载构件的编码信息进行比对之后,还包括:若各第二身份编码信息未包含所述车载部件身份可信列表中记载的所有可信任车载构件的身份编码信息,则所述网关生成网关认证故障信息。

在一些实施例中,将各ecu身份标识散列值与所述车载部件身份可信列表中记载的可信任车载构件的身份标识散列值对比之后,还包括:若存在一个或多个车载构件的ecu身份标识散列值未记载在所述车载部件身份可信列表中,则对相应的第二身份认证请求报文不作处理并丢弃。

在一些实施例中,接收各车载部件返回的第二响应报文之后,还包括:获取所述第二响应报文中记载的所述第四身份编码信息,并判断该第四身份编码信息是否在所述车载部件身份可信列表记载的各可信任车载构件的身份编码信息中,若不在则对该第四身份编码信息对应的第二响应报文不做处理并丢弃。

在一些实施例中,所述方法还包括:将各第二挑战报文在所述车内网广播之后进行计时,当计时达到第一设定时长且存在至少一个车载部件未返回所述第二响应报文时,向未返回所述第二响应报文的车载部件重新发送对应的第二挑战报文。

在一些实施例中,所述方法还包括:当计时达到第二设定时长且存在至少一个车载部件未返回所述第二响应报文时,生成车载部件认证失败信息并在所述车内网广播;其中,所述第二设定时长大于所述第一设定时长。

另一方面,本发明还提供一种车内网通信安全认证方法,包括:

基于车辆上电信号接收车内网广播的第一身份认证请求报文,所述第一身份认证请求报文包括网关身份标识散列值;

将所述网关身份标识散列值与车载部件端记载的网关身份本地存储值对比,若一致则生成第一随机数并采用所述车载部件端记载的第一密钥加密得到第一挑战码,将所述第一挑战码与所述车载部件对应的第一身份编码信息打包生成第一挑战报文,并将所述第一挑战报文发送至网关,以供网关进行安全认证;

接收所述网关返回的第一响应报文,所述第一响应报文包括所述车载部件对应的第二身份编码信息以及第一响应值;采用所述车载部件端记载的第二密钥对所述第一随机数进行加密得到期望值,并将所述期望值与所述第一响应值对比,若一致则生成认证通过确认报文并发送至所述网关;

接收所述网关在所述车内网广播的网关认证成功信息,向所述网关发送第二身份认证请求报文,所述第二身份认证请求报文包括所述车载部件的第三身份编码信息和ecu身份标识散列值;

接收所述网关返回的第二挑战报文,所述第二挑战报文包括所述车载部件对应的第四身份编码信息和第二挑战码,采用所述车载部件端记载的第一密钥对所述第二挑战码进行解密得到第二随机数,采用所述车载部件端记载的第二密钥对所述第二随机数进行加密组作为第二响应值,将所述第二响应值和所述车载部件对应的第四身份编码信息打包生成第二响应报文,将所述第二响应报文发送至所述网关,以供网关进行安全认证;

接收所述网关在所述车内网广播的车载部件认证成功信息,以触发各车载部件同步和认证新鲜值。

在一些实施例中,将所述网关身份标识散列值与车载部件端记载的网关身份本地存储值对比之后,还包括:若不一致则对所述第一身份认证请求报文不做处理并丢弃。

另一方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述方法的步骤。

另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。

本发明的有益效果是:

本发明所述车内网通信安全认证方法及装置中,所述方法在车辆启动初期基于车内网由网关和车载部件ecu进行双向身份认证,以验证双方身份的合法性,能够有效抵御重放、伪造攻击。在每次认证过程中都产生一个新的随机数用于双向认证,使每一次认证都具有随机性,不会受到重放攻击的影响。同时,第一密钥和第二密钥分别被预先记载在车载部件段和网关端,能够有效抵御外部伪造攻击。

本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获得。

本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1为本发明一实施例所述车内网通信安全认证方法的时序图;

图2为本发明一实施例所述车内网通信安全认证方法中车载部件认证网关身份步骤时序图;

图3为本发明另一实施例所述车内网通信安全认证方法中网关认证车载部件身份步骤时序图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。

车内网依靠can总线进行通信,通信过程中通产采用secoc安全验证机制为通信报文提供安全认证以及防重放机制,具体由新鲜度值管理系统为各车载部件提供新鲜值进行验证,但是在车辆启动储器,新鲜值机制尚未生效,如果攻击者收集新鲜值周期内全部新鲜值同步报文,则可实现重放攻击和伪造攻击。本发明在车辆启动初期,新鲜值机制运行前,优先进行网关和车载部件ecu的双向认证,以保证车内网各部件身份的合法性,防止重放攻击。

本发明提供一种车内网通信安全认证方法,适用于在车内网中的网关节点运行,参照图1,包括步骤s101~s107:

步骤s101:基于车辆上电信号在车内网广播第一身份认证请求报文,第一身份认证请求报文包括网关身份标识散列值。

步骤s102:接收车内网中各车载部件返回的第一挑战报文,每个第一挑战报文包括发送该第一挑战报文的车载部件的第一身份编码信息和第一挑战码,第一挑战码由每个车载部件产生第一随机数并采用各车载部件端记载的第一密钥加密得到。

步骤s103:采用网关记载的第一密钥解密各第一挑战码得到对应的第一随机数,采用网关记载的第二密钥对各第一随机数进行加密得到对应的第一响应值;将每个第一响应值分别与其对应的第一身份编码信息打包生成各车载部件对应的第一响应报文,将各第一响应报文在车内网进行广播,用于供各车载部件获取对应的第一响应报文并认证。

步骤s104:接收各车载部件返回的认证通过确认报文,获取各认证通过确认报文中记载的发送该认证通过确认报文的车载部件的第二身份编码信息;将各第二身份编码信息与网关记载的车载部件身份可信列表中的可信任车载构件的编码信息进行比对,若各第二身份编码信息包含车载部件身份可信列表中记载的所有可信任车载构件的标识信息,则生成网关认证成功信息并在车内网广播。

步骤s105:接收车内网中各车载部件返回的第二身份认证请求报文,第二身份认证请求报文包括发送该第二身份认证请求报文的车载部件的第三身份编码信息和ecu身份标识散列值。

步骤s106:将各ecu身份标识散列值与车载部件身份可信列表中记载的可信任车载构件的身份标识散列值对比,若各ecu身份标识散列值均在车载部件身份可信列表中,生成第二随机数并采用网关记载的第一密钥加密得到第二挑战码,将第二挑战码与各第二身份认证请求报文中记载的第三身份编码信息的分别打包生成多个第二挑战报文,并将各第二挑战报文在车内网广播,以供各车载部件获取对应的第二挑战报文并认证。

步骤s107:接收各车载部件返回的第二响应报文,第二响应报文中包含发送该第二响应报文的车载部件的第四身份编码信息以及经各车载部件记载的第二密钥加密第二随机数得到的第二响应值;采用网关记载的第二密钥对第二随机数进行加密得期望值,若车载部件身份可信列表中记载的车载部件均返回了第二响应报文且各第二响应报文中记载的第二响应值与期望值相同,则生成车载部件认证成功信息并在车内网广播,以触发各车载部件同步和认证新鲜值。

其中,各车载部件对应的所述第一身份编码信息、所述第二身份编码信息、所述第三身份编码信息和所述第四身份编码信息内容相同,各车载部件端记载的第一密钥与所述网关记载的第一秘钥相同,各车载部件端记载的第二密钥与所述网关记载的第二秘钥相同;所述车载部件身份可信列表中记载有各可信任车载构件的身份编码信息及其ecu身份标识散列值。

步骤s101~s104是用于车载部件对网关身份进行认证的过程,由各车载部件分别生成随机数并基于设定的认证方法完成每个车载部件对网关的认证过程。步骤s105~s107是用于网关对各车载部件身份进行认证的过程。

需要预先说明的是,在执行步骤s101~s107之前,网关及车载部件装载初期,可以由厂家分别在网关和各车载部件内写入第一密钥和第二密钥,同时在网关内写入网关身份标识散列值,在各车载部件中写入身份编码信息以及ecu身份标识散列值。第一密钥和第二密钥可以用于加密和解密信息,第一密钥和第二密钥仅保存在合法的网关和车载部件内,不进行传播,所以不会被入侵者截取。网关身份标识散列值以及ecu身份标识散列值可以基于散列函数产生,也可以根据实际应用过程中的需要按照设定格式设置网关和各车载部件的身份标识信息,各设备之间的身份标识相互区分。

在步骤s101中,在车辆启动初期,新鲜度值管理系统还没有运行,在各设备上电后网关基于车辆上电信号在车内网广播第一身份认证请求报文,以发起认证流程。

相应的,在车载部件端,在收到第一身份认证请求报文后,首先验证第一身份认证请求报文中记载的网关身份标识散列值是否与本地存储值相同,若不同则不合法,可以对第一身份认证请求报文不做操作并丢弃;若相同,则由车载部件ecu生成随机数,并用记载在该车载部件端的第一密钥进行加密得到第一挑战码,将第一挑战码与生成该第一挑战码的车载部件的身份编码信息打包生成第一挑战报文并发送回网关。

具体的,由于车内网包含有多个车载部件,每个车载部件都会对网关进行认证,也即各车载部件会分别产生相应的随机数并加密生成第一挑战码,与各自的身份编码信息打包产生各自的第一挑战报文。每个车载部件产生的第一挑战报文均会被发送至网关用于认证网关身份。为了区别后续报文或信息中的身份编码信息,本步骤中可以标记为第一身份标识信息。

在步骤s102和s103中,当网关接收到一个车载部件的第一挑战报文之后,首先利用记载在网关端的第一密钥对该第一挑战报文中的第一挑战码进行解密,得到发送该报文的车载部件产生的第一随机数。利用网关端记载的第二密钥加密该第一随机数得到第一响应报文,并与对应车载部件的第一身份编码信息打包生成第一响应报文。进一步的,对于车内网中各车载部件返回的第一挑战报文,网关分别处理产生对应的第一响应报文,并在车内网广播。

各车载部件根据各第一响应报文中记载的第一身份编码信息获取对应的第一响应报文。具体的,车载部件获取车内网广播的各第一响应报文,核验各第一响应报文中的第一身份编码信息是否与本车载部件的身份编码信息一致,若不一致则舍弃,一致则进一步处理。对于其中一个车载部件而言,利用车载部件端记载的第二密钥对该车载部件产生的第一随机数进行加密得到其期望值,将该期望值与第一响应报文中的第一响应值进行对比,若一致,则该车载部件对网关身份校验成功,并生成认证通过确认报文,认证通过确认报文中包含完成网关身份校验的车载部件的第二身份编码信息;若不一致则该车载部件对网关身份校验失败,可以不做操作,也可以生成告警信息并在车内网广播。

步骤s104中,由网关接收各车载部件返回的认证通过确认报文,并获取其中记载的第二身份编码信息,当网关判断车载部件身份可信列表中记载的所有可信任的车载部件均已返回认证通过确认报文时,产生网关认证成功信息并广播,以提示开始由网关验证各车载部件身份。

在一些实施例中,步骤s104中,将各第二身份编码信息与网关记载的车载部件身份可信列表中的可信任车载构件的编码信息进行比对之后,还包括:若各第二身份编码信息未包含车载部件身份可信列表中记载的所有可信任车载构件的身份编码信息,则网关生成网关认证故障信息。

进一步的,步骤s101~s104中各车载部件产生的第一随机数在步骤s104之后可以删除,以减少内存。

在步骤s105中,车载部件在接收到网关认证成功信息后生成生成第二身份认证请求报文,其中附带生成该第二身份请求报文的车载部件的第三身份编码信息和ecu身份标识散列值。在一些实施例中,第三身份编码信息可以用于标记已返回第二身份认证请求报文的车载构件,用于核验是否有车载构件未返回第二身份认证请求报文。同时,ecu身份标识散列值仅用于比对车载部件身份可信列表核实车载构件的安全性。

具体的,步骤s105中,将各ecu身份标识散列值与车载部件身份可信列表中记载的可信任车载构件的身份标识散列值对比之后,还包括:若存在一个或多个车载构件的ecu身份标识散列值未记载在车载部件身份可信列表中,则对相应的第二身份认证请求报文不作处理并丢弃。

在步骤s106中,由网关生成唯一的一个第二随机数,并由第一密钥加密得到第二挑战码,将第二挑战码与接收到的所有第二身份请求报文中记载的第三身份标识分别打包生成多个第二挑战报文,用于满足发出第二身份请求报文的各车载部件的认证需求。

各车载部件在接收到第二挑战报文后,先判断第二挑战报文中记载的第三身份信息是否与自身的身份编码信息一致,若不一致则不做处理并丢弃;若一致,则利用车载部件端记载的第一密钥对第二挑战报文中的第二挑战值进行解密得到相应的第二随机数,再利用车载部件端记载的第二密钥对该第二随机数加密得到第二响应值。各车载部件将生成的第二响应值与自身的身份编码信息打包生成第二响应报文,并发送至网关。

在步骤s107中,网关接收到各第二响应报文后,采用网关记载的第二密钥对第二随机数进行加密得期望值,只有当车载部件身份可信列表中记载的全部车载部件均返回了第二响应报文且各第二响应报文中记载的第二响应值与期望值相同时,认证成功。否则认证失败。

在一些实施例中,步骤s107中,接收各车载部件返回的第二响应报文之后,还包括:获取第二响应报文中记载的第四身份编码信息,并判断该第四身份编码信息是否在车载部件身份可信列表记载的各可信任车载构件的身份编码信息中,若不在则对该第四身份编码信息对应的第二响应报文不做处理并丢弃。本实施例中,首先对第二响应报文中记载的第四身份编码信息进行初步认证,只有当车载部件身份可信列表中记载有该第四身份编码信息时,才判定合法并进行下一步认证;否则不做操作并丢弃不合法的第二响应报文。

在一些实施例的步骤s106和s107中,网关对每个发出第二身份认证请求报文的车载部件分别生成相应的随机数,在利用网关端记载的第一密钥加密得到相应的第二挑战码之后,分别与对应车载部件的第三身份编码信息打包构成多个第二挑战报文,以实现对各车载部件的区别认证,提升安全级别。相应的,各车载部件在接收到第二挑战报文后,先判断第二挑战报文中记载的第三身份编码信息是否与自身的身份编码信息一致,若不一致则不做处理并丢弃;若一致则利用车载部件端记载的第一密钥对第二挑战报文中的第二挑战值进行解密得到相应的第二随机数,再利用车载部件端记载的第二密钥对该第二随机数加密得到第二响应值。各车载部件将生成的第二响应值与自身的身份编码信息打包生成第二响应报文,并发送至网关。

在一些实施例中,在步骤s106之后,所述方法还包括:将各第二挑战报文在车内网广播之后进行计时,当计时达到第一设定时长且存在至少一个车载部件未返回第二响应报文时,向未返回第二响应报文的车载部件重新发送对应的第二挑战报文。

进一步的,当计时达到第二设定时长且存在至少一个车载部件未返回第二响应报文时,生成车载部件认证失败信息并在车内网广播;其中,第二设定时长大于第一设定时长。

本实施例通过设置第二挑战报文的重报机制,在发出第二挑战报文后,若第一设定时长内未接收到一车载部件的第二响应报文,则重新发送一次该第二挑战报文,而不是直接报错,以防止由于通信问题导致的认证失败。当等待期持续到第二时长,依旧没有收到该车载部件返回第二响应报文时才判断认证失败。

另一方面,本发明还提供一种车内网通信安全认证方法,用于在车内网中的车载构件端运行,参照图1,包括步骤s201~s206:

步骤s201:基于车辆上电信号接收车内网广播的第一身份认证请求报文,所述第一身份认证请求报文包括网关身份标识散列值;

步骤s202:将网关身份标识散列值与车载部件端记载的网关身份本地存储值对比,若一致则生成第一随机数并采用车载部件端记载的第一密钥加密得到第一挑战码,将第一挑战码与车载部件对应的第一身份编码信息打包生成第一挑战报文,并将第一挑战报文发送至网关,以供网关进行安全认证。

步骤s203:接收网关返回的第一响应报文,第一响应报文包括车载部件对应的第二身份编码信息以及第一响应值;采用车载部件端记载的第二密钥对第一随机数进行加密得到期望值,并将期望值与第一响应值对比,若一致则生成认证通过确认报文并发送至网关。

步骤s204:接收网关在车内网广播的网关认证成功信息,向网关发送第二身份认证请求报文,第二身份认证请求报文包括车载部件的第三身份编码信息和ecu身份标识散列值。

步骤s205:接收网关返回的第二挑战报文,第二挑战报文包括车载部件对应的第四身份编码信息和第二挑战码,采用车载部件端记载的第一密钥对第二挑战码进行解密得到第二随机数,采用车载部件端记载的第二密钥对第二随机数进行加密组作为第二响应值,将第二响应值和车载部件对应的第四身份编码信息打包生成第二响应报文,将第二响应报文发送至网关,以供网关进行安全认证。

步骤s206:接收网关在车内网广播的车载部件认证成功信息,以触发各车载部件同步和认证新鲜值。

参照对步骤s101~s107中流程的说明,步骤s201~s206是由车内网中一车载构件完成的与网关相对应的认证流程。

在一些实施例中,步骤s202中,将网关身份标识散列值与车载部件端记载的网关身份本地存储值对比之后,还包括:若不一致则对第一身份认证请求报文不做处理并丢弃。

车载构件在接收到网关返回的第一响应报文和第二挑战报文时,需要对第一响应报文中记载的第二身份编码信息和第二挑战报文中记载的第四身份编码信息进行初步判断,若第二身份编码信息或第四身份编码信息与自身身份编码信息一致则进行下一步操作,否则不做操作并丢弃第二身份编码信息或第二挑战报文。

另一方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述方法的步骤。

另一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述方法的步骤。

下面结合一个具体的实施例对本发明进行说明:

本实施例中,各车载构件(下文表述为ecu节点)及网关需在汽车出厂时内置如下密钥、固定参数:

网关节点标记网关身份标识码散列值,该网关身份标识码散列值根据网关节点的固件身份标识码,通过散列函数生成;各ecu标记ecu身份标识码散列值,ecu身份标识码散列值由各ecu固件身份标识码经过散列函数计算生成。

网关节点和各ecu分别设置对称加密密钥key1,用于加密计算挑战码。网关节点和各ecu还分别设置对称加密密钥key2,用于计算响应值。

另网关节点需额外内置各ecu身份标识散列值可信列表,该可信列表记载由车内网中所有ecu的ecuid以及ecu身份标识码散列值,用于后续网关对ecu节点的身份认证。各ecu中还额外内置对应的网关身份标识码的本地存储值,用于后续对网关节点的身份认证。

本实施例中认证过程分为两个阶段:1)ecu节点认证网关身份的合法性。这个阶段保障网关的可信任性。2)网关对ecu身份的合法性的认证。这个阶段保障车内所有参与通信的ecu的可信任性。

下面分别说明两个阶段的认证过程。

第一阶段:ecu节点认证网关身份

在汽车启动时,ecu节点对网关节点进行身份认证,如图2所示,步骤如下:

1.网关节点发送广播身份认证请求报文am1,其中包含网关身份标识散列值。

2.各ecu节点收到am1报文后,比对am1报文中的网关身份标识散列值与本地存储值是否一致;若一致,ecui生成并暂存随机数ri,并使用key1加密得到si作为挑战码,构造挑战报文cm1,发送挑战报文cm1至网关节点,挑战报文cm1内容包含ecuiid|si,其中ecuiid为ecu身份标识码散列值,可唯一标识ecui;若不一致,则丢弃该am1报文,不做处理。

3.网关节点收到各ecu节点发来的挑战报文cm1,解析报文,得到ecui发来的si,使用key1解密得到随机数ri,暂存ri并使用key2加密ri得到s2i作为该挑战码的响应值,构造响应报文rm1发送给ecui,响应报文rm1数据部分由目标ecuiid|s2i组成,其中目标ecuiid为ecu身份标识码散列值,能唯一标识一个ecu。由于车载can总线中节点以广播形式通信,各ecui接受到网关广播的响应报文后,判断目标ecuiid是否与自身匹配,只对匹配的响应报文做后续处理。

4.各ecu节点使用key2对自己生成的随机数ri加密,得到自己期望的响应值,并与接收到响应报文rm1中响应值s2i进行比对,若比对一致,则对网关身份校验成功。并向网关发送认证通过确认报文pm1。

5.网关节点收到的pm1报文,与本地ecu身份标识散列值可信列表中的ecu进行比对,如果全部ecu均发回了pm1报文,则该步骤验证成功,网关广播网关认证成功消息asm1。如果经过第一等待时长,尚有未反馈确认报文的ecu,网关节点会向该ecu重发对应的响应报文rm1,直到全部ecu验证成功;如果在第二等待时长内没有完成全局ecu的认证,则网关报告认证故障。

6.认证成功后,该过程中产生的随机数ri可以从ecu和网关中清除,后续不需要再使用该随机数。

第二阶段:网关认证ecu节点身份

在安全行驶前,需要确保车辆内全部ecu都是身份可信的ecu节点,在各ecu对网关的身份完成认证后,网关需对各ecu节点进行身份认证,具体流程如图3所示,具体步骤如下:

1.ecui收到asm1消息后,ecui节点发送身份认证请求报文am2,其中包含ecui身份标识散列值。

2.网关节点收到am2后,比对请求报文am2中的ecui身份标识散列值是否包含在本地ecu身份标识散列值可信列表中;若在列表中,说明该ecui是合法的,网关节点生成随机数r_gi,并使用key1加密得到s_gi作为挑战码,取出身份标识散列值对应ecuiid,构造挑战报文cm2。挑战报文cm2由目标ecuiid|s_gi组成,其中ecuiid为ecui身份标识码散列值,能唯一标识一个ecu,发送至ecui节点;若不在列表,则丢弃该报文不做处理。

3.ecui收到挑战报文cm2后,判断cm2中记载的ecuiid与自身id是否一致。若一致,对网关节点发来的s_gi使用key1解密得到并暂存随机数r_gi,并使用key2加密r_gi得到s_g2i作为该挑战码的响应值,构造响应报文rm2发送给网关节点,响应报文rm2数据部分由ecuiid|s_g2i组成,其中ecuiid字段能唯一标识本ecu;若不一致,则不做任何处理。网关节点接收到响应报文rm2后,判断ecuiid是否在本地ecu身份标识散列值可信列表中,若在,则进行后续操作;否则丢弃该报文不做处理。

4.网关节点收到响应报文rm2后,根据响应报文rm2中取出响应值s_g2i,使用key2对r_gi进行加密,并将加密结果与响应报文中的s_g2i进行对比,若一致,则将该ecui标记为认证通过;若不一致,则记录该ecu认证失败。

5.网关节点检查是否全部ecu都认证成功,如果经过第一等待时长,尚有未反馈响应报文的ecu,网关会向该ecu重发挑战报文rm2,直到全部ecu验证成功。如果在第二等待时长内无法完成全局ecu的认证,则网关报告认证故障。如果验证成功,网关向全局广播ecu认证成功消息asm2。

6.各ecu收到asm2消息后,可进行新鲜度值同步等后续工作步骤。本次认证产生的随机数r_gi需要在网关和ecu中进行存储,为本次行驶提供后续的安全处理服务。

车内网关节点与ecui节点之间后续的通信是基于本次双向认证的产生随机数r_gi进行的。网关节点和ecui节点在汽车出厂时均内置有包含n对对称密钥的密钥列表,根据随机数r_gi对n取余的结果,得到r_gi对应下标的对称密钥,即为本次行驶间ecui与网关进行安全通信所需的对称密钥。之后新鲜值同步时,同步报文中的mac值由该对称密钥生成,从而抵御重放攻击、伪造攻击和数据篡改。

通过前面的描述可知,在该体系中,网关节点和ecu需要在上车前设置一些支持该机制运行的参数,包括网关身份标识码散列值、各ecu身份标识码散列值,用户挑战和相应的key1、key2,对称密钥列表等,那么在车辆使用过程中,如果车载部件发生了损坏,也需要对新上车的部件进行相应配置后,固件更换后,车辆才能够正常运行。

当车辆需更换固件时,分为如下两种情况:

1.更换网关时,由于每个ecu中均内置有旧网关身份标识散列值,新网关可沿用原网关身份标识散列值,可以减少大面积数据更新刷写。同样新网关在上车使用之前,需拷贝旧网关中的固定参数,如ecu身份标识散列值信任列表、key1、key2、网关身份标识散列值、对称密钥列表等。

2.更换ecu时,新的ecu在上车之前同样需要内置网关身份标识散列值、自身的ecu身份标识码散列值、key1和key2、对称密钥列表,用于上车后的双向身份认证;另需将该ecu的身份标识散列值刷写至网关的ecu身份标识散列值可信列表中,以便网关认证该ecu身份使用。

以上步骤需要在专有设备的配合采用离线方式进行数据的刷写,以最大程度的保证数据安全性。

综上所述,本发明所述车内网通信安全认证方法及装置中,所述方法在车辆启动初期基于车内网由网关和车载部件ecu进行双向身份认证,以验证双方身份的合法性,能够有效抵御重放、伪造攻击。在每次认证过程中都产生一个新的随机数用于双向认证,使每一次认证都具有随机性,不会受到重放攻击的影响。同时,第一密钥和第二密钥分别被预先记载在车载部件段和网关端,能够有效抵御外部伪造攻击。

本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1