CN114257986A - 车辆can网络攻击的识别方法及装置 - Google Patents
车辆can网络攻击的识别方法及装置 Download PDFInfo
- Publication number
- CN114257986A CN114257986A CN202210105796.1A CN202210105796A CN114257986A CN 114257986 A CN114257986 A CN 114257986A CN 202210105796 A CN202210105796 A CN 202210105796A CN 114257986 A CN114257986 A CN 114257986A
- Authority
- CN
- China
- Prior art keywords
- network management
- network
- message
- management message
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开一种车辆CAN网络攻击的识别方法及装置,方法包括:响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将安全认证信息填充至网络管理报文的预留字节中;在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用安全认证信息对总线发送的网络管理报文进行多重合法性验证;在多重合法性验证均通过的情况下,将网络管理报文作为合法报文传输至网络管理系统。通过上述方法可以实现车辆CAN网络攻击的识别,解决了现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击的问题。
Description
技术领域
本发明涉及网络安全技术领域,具体而言,涉及一种车辆CAN网络攻击的识别方法及装置。
背景技术
随着汽车网络通信技术的发展,车联网技术以被引入汽车,并广泛应用于汽车网络通信中,服务于车辆联网和互联的需求。网络管理系统OSEKNM作为车辆CAN网络中最早使用的一种网络管理规范,至今仍在车辆CAN网络中被普遍使用,用于实现车辆CAN网络中各个节点同步休眠和唤醒的功能。
相关技术中,基于OSEKNM的CAN网络在通信过程中具体包括如下步骤:首先,网络中节点通过CAN总线进行通信;网络中节点通过CAN总线发送和接收OSEKNM的网络管理报文;网络中节点根据接收的网络管理报文,判断CAN总线当前的网络状态;网络中节点根据自身的通信需求和当前的网络状态,决定发送某种状态的OSEKNM的网络管理报文,并根据发送结果,设置本节点当前的网络状态;网络中的节点,根据本节点当前的网络状态,发送和接收其他报文。
然而,上述车辆CAN网络在为用户提供良好用车体验和高附加值服务的同时,也引入了网络被攻击的风险。针对于使用OSEKNM的CAN网络,由于其产于封闭的车辆网络阶段,缺乏防御攻击的能力,且伴随客户对车联网需求日益增加,车辆网络面临攻击的挑战越来越大,特别是本身抵抗攻击能力较弱的CAN总线,OSEKNM是很容易被攻击的一个入口点,当OSEKNM被实施攻击时,现有的网络通信方式很难准确识别出车辆网络的攻击行为,使得车辆网络通信异常,影响车辆的正常使用。因此,整车对OSEKNM的CAN总线具备抵抗网络攻击的需求日趋凸显。
发明内容
本发明提供了一种车辆CAN网络攻击的识别方法及装置,能够在网络管理报文的预留义字节中增加安全认证信息来实现车辆CAN网络攻击的识别,从而解决了现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击的问题。具体的技术方案如下:
第一方面,本发明实施例提供了一种车辆CAN网络攻击的识别方法,所述方法包括:
响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中,所述计数值的初始值由节点随机生成;
在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证;
在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统;
在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
在一种实施方式中,在所述响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至所述网络管理报文的预留字节中之前,所述方法还包括:
接收节点识别到唤醒源所发起的主动唤醒请求,并利用所述主动唤醒请求携带的主动唤醒报文触发CAN网络中节点被唤醒;或
接收由其他节点发出且经过总线过滤的被动唤醒报文,并根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述经过总线过滤的被动唤醒报文由总线上设置的硬件滤波功能根据配置的安全认证信息与接收到的网络管理报文中安全认证信息进行比对后得到,所述硬件滤波功能通过在总线上增加具有硬件滤波功能的CAN收发器实现;
在所述配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致的情况下,将接收到的网络管理报文作为被动唤醒报文;
在所述配置的安全认证信息与接收到的网络管理报文中安全认证信息对比不一致的情况下,丢弃接收到的网络管理报文。
在一种实施方式中,所述根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒,包括:
根据休眠攻击监控逻辑检查其他节点是否满足休眠条件;
在所述其他节点满足休眠条件,且保持唤醒定时器的值超过第一预设阈值的情况下,识别CAN网络受到休眠攻击,并丢弃所述被动唤醒报文;
在所述其他节点不满足休眠条件,或保持唤醒定时器的值未超过第一预设阈值的情况下,识别CAN网络未受到休眠攻击,并利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述保持唤醒定时器用于记录从节点不存在本地网络唤醒源开始至CAN网络仍处于唤醒状态的时间长度。
在一种实施方式中,所述根据休眠攻击监控逻辑检查其他节点是否满足休眠条件,包括:
提取其它节点发出且经过总线过滤的被动唤醒报文的休眠指示位;
在所述休眠指示位为预设数值的情况下,判定其他节点不存在本地网络唤醒源,满足休眠条件;
在所述休眠指示位不是预设数值的情况下,判定其他节点存在本地网络唤醒源,不满足休眠条件。
在一种实施方式中,所述方法还包括:
在CAN网络中各节点满足休眠条件的情况下,接收休眠指示位为预设数值的网络管理报文;
在所述休眠指示位为预设数值的网络管理报文通过多重合法性验证的情况下,提取所述休眠指示位为预设数值的网络管理报文中的计数值,利用所述计数值计算得到安全认证信息,并将所述安全认证信息作为总线上硬件滤波配置后,执行CAN网络休眠。
在一种实施方式中,所述利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,包括:
根据所述网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值相结合,计算循环冗余校验码;
将所述网络管理报文中源节点地址、目标节点地址、控制信息、节点休眠前存储的计数值与循环冗余校验码相结合,配合秘钥作为加密算法的输入,计算原始安全字节;
提取所述原始安全字节中最低有效的预设数量字节作为安全字节,结合所述节点休眠前存储的计数值,生成用于验证网络管理报文的安全认证信息。
在一种实施方式中,所述利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证,包括:
针对所述总线发送的网络管理报文中安全字节进行合法性验证;
在所述安全字节通过合法性验证的情况下,针对所述总线发送的网络管理报文中存储的计数值进行合法性验证;
在所述安全字节没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;
在所述计数值通过合法性验证的情况下,针对所述总线发送的网络管理报文的报文类型进行合法性验证;
在所述计数值没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;
在所述报文类型通过合法性验证的情况下,将所述总线发送的网络管理报文为合法报文传输至网络管理系统;
在所述报文类型没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息。
在一种实施方式中,所述针对所述总线发送的网络管理报文中安全字节进行合法性验证,包括:
提取所述总线发送的网络管理报文中安全字节作为参考安全字节;
利用所述总线发送的网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值,计算目标安全字节;
在所述参考安全字节与所述目标安全字节进行比对相同的情况下,判定所述安全字节通过合法性验证;
所述针对所述总线发送的网络管理报文中存储的计数值进行合法性验证,包括:
获取最近一次接收合法性的网络管理报文中存储的计数值作为参考计数值;
提取所述总线发送的网络管理报文中存储的计数值作为目标计数值;
在所述目标计数值大于所述参考计数值,且不超过第二预设阈值的情况下,判定所述计数值通过合法性验证;
所述针对所述总线发送的网络管理报文的报文类型进行合法性验证,包括:
当所述总线发送的网络管理报文的报文类型为预设类型时,读取接收网络管理系统发送网络管理报文的时间,并与上一次接收网络管理系统发送/接收网络管理报文的时间形成时间差;
在所述时间差满足预设条件的情况下,判定所述报文类型通过合法性验证。
在一种实施方式中,所述预设条件为时间差大于第一时间且小于第二时间,所述第一时间为网络管理系统针对预设类型的网络管理报文设置的发送周期,所述第二时间为网络管理系统针对预设类型的网络管理报文设置的接收超时时间。
第二方面,本发明实施例提供了一种车辆CAN网络攻击的识别装置,所述装置包括:
生成单元,用于响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中,所述计数值的初始值由节点随机生成;
验证单元,用于在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证;
传输单元,用于在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统,在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
在一种实施方式中,所述装置还包括:
唤醒单元,用于在所述响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至所述网络管理报文的预留字节中之前,接收节点识别到唤醒源所发起的主动唤醒请求,并利用所述主动唤醒请求携带的主动唤醒报文触发CAN网络中节点被唤醒;或
接收由其他节点发出且经过总线过滤的被动唤醒报文,并根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述经过总线过滤的被动唤醒报文由总线上设置的硬件滤波功能根据配置的安全认证信息与接收到的网络管理报文中安全认证信息进行比对后得到,所述硬件滤波功能通过在总线上增加具有硬件滤波功能的CAN收发器实现;
在所述配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致的情况下,将接收到的网络管理报文作为被动唤醒报文,
在所述配置的安全认证信息与接收到的网络管理报文中安全认证信息对比不一致的情况下,丢弃接收到的网络管理报文。
在一种实施方式中,所述唤醒单元,具体用于根据休眠攻击监控逻辑检查其他节点是否满足休眠条件;
在所述其他节点满足休眠条件,且保持唤醒定时器的值超过第一预设阈值的情况下,识别CAN网络受到休眠攻击,并丢弃所述被动唤醒报文;
在所述其他节点不满足休眠条件,或保持唤醒定时器的值未超过第一预设阈值的情况下,识别CAN网络未受到休眠攻击,并利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述保持唤醒定时器用于记录从节点不存在本地网络唤醒源开始至CAN网络仍处于唤醒状态的时间长度。
在一种实施方式中,所述唤醒单元,具体还用于提取其它节点发出且经过总线过滤的被动唤醒报文的休眠指示位;
在所述休眠指示位为预设数值的情况下,判定其他节点不存在本地网络唤醒源,满足休眠条件;
在所述休眠指示位不是预设数值的情况下,判定其他节点存在本地网络唤醒源,不满足休眠条件。
在一种实施方式中,所述装置还包括:
接收单元,用于在CAN网络中各节点满足休眠条件的情况下,接收休眠指示位为预设数值的网络管理报文;
休眠单元,用于在所述休眠指示位为预设数值的网络管理报文通过多重合法性验证的情况下,提取所述休眠指示位为预设数值的网络管理报文中的计数值,利用所述计数值计算得到安全认证信息,并将所述安全认证信息作为总线上硬件滤波配置后,执行CAN网络休眠。
在一种实施方式中,所述生成单元包括:
第一计算模块,用于根据所述网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值相结合,计算循环冗余校验码;
第二计算模块,用于将所述网络管理报文中源节点地址、目标节点地址、控制信息、节点休眠前存储的计数值与循环冗余校验码相结合,配合秘钥作为加密算法的输入,计算原始安全字节;
生成模块,用于提取所述原始安全字节中最低有效的预设数量字节作为安全字节,结合所述节点休眠前存储的计数值,生成用于验证网络管理报文的安全认证信息。
在一种实施方式中,所述验证单元,具体用于针对所述总线发送的网络管理报文中安全字节进行合法性验证;在所述安全字节通过合法性验证的情况下,针对所述总线发送的网络管理报文中存储的计数值进行合法性验证,在所述安全字节没有通过合法性验证的情况下,,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在所述计数值通过合法性验证的情况下,针对所述总线发送的网络管理报文的报文类型进行合法性验证,在所述计数值没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在所述报文类型通过合法性验证的情况下,将所述总线发送的网络管理报文为合法报文传输至网络管理系统,在所述报文类型没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息。
在一种实施方式中,所述验证单元,具体还用于提取所述总线发送的网络管理报文中安全字节作为参考安全字节;利用所述总线发送的网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值,计算目标安全字节;在所述参考安全字节与所述目标安全字节进行比对相同的情况下,判定所述安全字节通过合法性验证;
所述验证单元,具体还用于获取最近一次接收合法性的网络管理报文中存储的计数值作为参考计数值;提取所述总线发送的网络管理报文中存储的计数值作为目标计数值;在所述目标计数值大于所述参考计数值,且不超过第二预设阈值的情况下,判定所述计数值通过合法性验证;
所述验证单元,具体还用于当所述总线发送的网络管理报文的报文类型为预设类型时,读取接收网络管理系统发送网络管理报文的时间,并与上一次接收网络管理系统发送/接收网络管理报文的时间形成时间差;在所述时间差满足预设条件的情况下,判定所述报文类型通过合法性验证。
在一种实施方式中,所述预设条件为时间差大于第一时间且小于第二时间,所述第一时间为网络管理系统针对预设类型的网络管理报文设置的发送周期,所述第二时间为网络管理系统针对预设类型的网络管理报文设置的接收超时时间。
第三方面,本发明实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述的方法。
第四方面,本发明实施例提供了一种车辆,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面所述的方法。
由上述内容可知,本发明实施例提供的车辆CAN网络攻击的识别方法及装置,能够响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将用于验证网络管理报文的安全认证信息填充至网络管理报文的预留字节中,这里计数值的初始值由节点随机生成,进一步在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用安全认证信息对总线发送的网络管理报文进行多重合法性验证,在多重合法性验证均通过的情况下,将总线发送的网络管理报文传输至网络管理系统。由此可知,与现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击相比,本发明实施例能够在网络管理报文的预留义字节中增加安全认证信息来实现车辆CAN网络攻击的识别,从而解决了现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击的问题。
此外,本实施例还可以实现的技术效果包括:
通过使用网络管理报文的预留字节来存储用于验证网络管理报文的安全认证信息,并在CAN网络通信过程中利用安全验证信息对网络管理报文进行多重合法性验证,从而识别正在进行的CAN网络攻击,以最大程度降低CAN网络攻击对整车通信的影响,提高车辆运行过程中的通信安全性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种车辆CAN网络攻击的识别方法的流程示意图;
图2a为本发明实施例提供的一种整车CAN网络的结构框图;
图2b为本发明实施例提供的另一种整车CAN网络的结构框图;
图3a为本发明实施例提供的相关技术中网络管理报文格式和节点跳过算法示意图;
图3b为本发明实施例提供的网络管理报文格式示意图;
图4a为本发明实施例提供的相关技术中CAN网络中节点的软件架构框图;
图4b为本发明实施例提供的CAN网络中节点的软件架构框图;
图5a-5b为本发明实施例提供的相关技术中CAN网络中节点状态流转示意图;
图5c-5d为本发明实施例提供的安全管理模块中节点状态转换和数据流转示意图;
图6a-6b为本发明实施例提供的CAN网络唤醒的流程示意图;
图7为本发明实施例提供的CAN网络休眠的流程示意图;
图8a-8b为本发明实施例提供的CAN网络管理报文发送和接收的流程示意图;
图9为本发明实施例提供的一种车辆CAN网络攻击的识别装置的组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明提供了一种车辆CAN网络攻击的识别方法及装置,能够在网络管理报文的预留义字节中增加安全认证信息来实现车辆CAN网络攻击的识别,从而解决了现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击的问题。本发明实施例的CAN网络可以实现车内各个部件电子控制器之间的通信,如发动机、变速箱控制器、仪表装备、车门控制器等。
相关技术中,当OSEKNM被实施攻击时,现有的网络通信方式很难准确识别出车辆网络的攻击行为主要涉及以下几种情况,1、持续攻击OSEKNM时(比如,发送非预期的RING报文,使得CAN网络中各个节点进入被跳过状态的情况),使得多个节点同时发送网络管理报文,导致CAN网络持续处于高负载状态,影响车辆正常通信和使用;2、持续攻击OSEKNM时(比如,干扰网络管理报文的发送和接收),使得节点的网络状态处于跛行状态,正常应用网络管理报文被禁止发送和接收,使得整车通信瘫痪,影响车辆正常使用;3、攻击OSEKNM时(比如,持续发送休眠指示符为0的报文),在长期停车场景下,使网络长期工作,不能进入休眠,快速耗尽车辆电池,使得车辆不能正常启动。现有CAN网络的通信方式针对以上几种攻击OSEKNM的方式都无法准确识别,也不能及时向客户提供报警信息。
下面对本发明实施例进行详细说明。
图1为本发明实施例提供的一种车辆CAN网络攻击的识别方法的流程示意图。所述方法可以包括如下步骤:
101、响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中。
其中,CAN网络为车辆中各个部件电子控制器之间通信的局域网络,CAN网络中节点为车辆中各个部件电子控制器,针对CAN网络中的各个节点,可通过CAN总线发送/接收网络管理报文实现与其他节点之间的数据交互,从而实现节点休眠和唤醒等控制。这里网络管理系统作为CAN网络中节点管理规范,可在启动后发送/接收网络管理报文,并定义网络管理报文的格式。
具体实际应用场景中,作为整车CAN网络的结构表示,在图2a提供的一种整车CAN网络的结构框图中,车辆中各个部件节点可通过CAN总线进行数据传输,并通过CAN总线接入车联网通信终端T-Box实现整车控制,这里的T-Box可接入互联网,此时网络攻击者可能通过互联网工具入侵T-Box,借由T-Box攻击CAN网络的网络管理系统。进一步的,作为整车CAN网络的另一结构表示,在图2b提供的另一种整车CAN网络的结构框图中,车辆中各个部件节点可通过CAN总线接入联网节点,此时,攻击者可通过操控该联网节点攻击CAN网络的网络管理系统。
在本发明实施例中,CAN网络中节点在被唤醒之前处于休眠状态,这里触发节点唤醒的方式主要涉及两种,一种是主动唤醒方式,具体可以在响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至网络管理报文的预留字节中之前,接收节点识别到唤醒源所发起的主动唤醒请求,并利用主动唤醒请求携带的主动唤醒报文触发CAN网络中节点被唤醒,这里针对不同节点适用有不同的唤醒源,例如,针对车门控制器节点,唤醒源可以为车门打开,有遥控信号等,针对发动机控制器,唤醒源可以为点火钥匙,方向盘启动等;另一种是被动唤醒方式,具体可以在响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至网络管理报文的预留字节中之前,接收由其他节点发出且经过总线过滤的被动唤醒报文,并根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用被动唤醒报文触发CAN网络中节点被唤醒;其中,经过总线过滤的被动唤醒报文由总线上设置的硬件滤波功能根据配置的安全认证信息与接收到的网络管理报文中安全认证信息进行比对后得到,硬件滤波功能通过在总线上增加具有硬件滤波功能的CAN收发器实现,在配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致的情况下,将接收到的网络管理报文作为被动唤醒报文,在配置的安全认证信息与接收到的网络管理报文中安全认证信息对比不一致的情况下,丢弃接收到的网络管理报文。
上述网络管理报文中安全认证信息相当于在网络管理报文原有格式基础上增加的安全字节和计数值,这里计数值会在传输网络管理报文的过程中不断更新,而只有在计数值和安全字节均相同下,才判定配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致。
可以理解的是,主动唤醒方式相当于当节点处于休眠状态的情况,在识别到唤醒源后自动触发主动唤醒报文的传输,触发CAN网络中节点被唤醒,同时启动网络管理系统发送/接收网络管理报文,而被动唤醒相当于节点处于休眠状态的情况,在识别到其他节点发出且经过总线滤波的被动唤醒报文后,并不会直接触发被动唤醒报文的传输,而是对CAN网络是否受到休眠攻击进行判断,在未受到休眠攻击的情况下,触发被动唤醒报文的传输,触发CAN网络中节点被唤醒,同时启动网络管理系统发送/接收网络管理报文。
具体在对CAN网络是否受到休眠攻击进行判断的过程中,可以根据休眠攻击监控逻辑检查其他节点是否满足休眠条件,在其他节点满足休眠条件,且保持唤醒定时器的值超过第一预设阈值的情况下,识别CAN网络受到休眠攻击,并丢弃被动唤醒报文;在其他节点不满足休眠条件,或保持唤醒定时器的值未超过第一预设阈值的情况下,识别CAN网络未受到休眠攻击,并利用被动唤醒报文触发CAN网络中节点被唤醒;其中,保持唤醒定时器用于记录从节点不存在本地网络唤醒源开始至CAN网络仍处于唤醒状态的时间长度。
进一步地,为了提高休眠条件的灵活性,这里第一预设阈值的设置可根据整车功能进行定义,例如,整车功能的灵敏度需求较高,对应第一预设阈值会相应较小。
上述休眠条件指的是节点不存在本地网络唤醒源,当存在本地网络唤醒源时,节点发送网络管理报文的Sleep.Ind和Sleep.Ack必须为0,当节点不存在本地网络唤醒源时,节点发送网络管理报文的Sleep.Ind设置为1,例如,某节点将打火开关作为本地网络唤醒源,当探测到点火开关的状态为非OFF,其主动唤醒CAN网络,并向CAN网络发送唤醒报文,同时网络管理系统发送Sleep.Ind和Sleep.Ack的网络管理报文。具体在根据休眠攻击监控逻辑检查其他节点是否满足休眠条件的过程中,可以提取其它节点发出且经过总线过滤的被动唤醒报文的休眠指示位;在休眠指示位为预设数值的情况下,判定其他节点不存在本地网络唤醒源,满足休眠条件,在休眠指示位不是预设数值的情况下,判定其他节点存在本地网络唤醒源,不满足休眠条件。
进一步地,在CAN网络中节点进行通信的过程中,为了避免被攻击CAN网络无法正常进入休眠状态,本发明实施例还可以在CAN网络中各节点满足休眠条件的情况下,接收休眠指示位为预设数值的网络管理报文;在休眠指示位为预设数值的网络管理报文通过多重合法性验证的情况下,提取休眠指示位为预设数值的网络管理报文中的计数值,利用计数值计算得到安全认证信息,并将安全认证信息作为总线上硬件滤波配置后,执行CAN网络休眠,一方面可以将满足休眠条件的节点不受到CAN网络攻击的干扰,另一方面还可以针对总线上接收的报文进行高效过滤,从而保证CAN网络中处于休眠状态节点的安全性。
具体在利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息的过程中,可以根据网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值相结合,计算循环冗余校验码;并将网络管理报文中源节点地址、目标节点地址、控制信息、节点休眠前存储的计数值与循环冗余校验码相结合,配合秘钥作为加密算法的输入,计算原始安全字节;进一步提取原始安全字节中最低有效的预设数量字节作为安全字节,结合节点休眠前存储的计数值,生成用于验证网络管理报文的安全认证信息。
应说明的是,节点休眠前会传输网络管理报文,此时网络管理报文中会存储有计数值,该计数值的初始值由节点随机生成,通常情况下,在CAN网络唤醒后,节点随机生成的计数器,作为初始计数值,以第一个发送的网络管理报文的计数值作为后续网络管理报文的起始计数值,后续网络管理报文每发送一次,更新一次计数值。
在实际应用场景中,相关技术中网络管理报文格式如图3a所示,包括11个字节的CAN标识和8字节的CAN数据,CAN标识包括网络地址、源节点地址,在CAN数据包括目标节点地址、控制信息和数据(保留未使用),该数据(保留未使用)作为预留字节并未被占用,图3a中网络管理报文中的源节点表示为SA,网络管理报文中的苗木表节点地址表示为DA,接收网络关林报文的节点地址表示为RA,具体在接收节点后,可根据网络管理报文中的地址关系来判断接收节点是否被跳过,如果DA<SA<RA,判定接收节点被跳过,如果RA<DA<SA,判定接收节点被跳过,如果SA<RA<DA,判定接收节点被跳过,其他情况判定接收节点未被跳过。而本发明实施例中网络管理报文格式如图3b所示,相比相关技术中网络管理报文格式,网络管理报文中预留字节处填充了节点休眠前存储的计数值CNT和安全字符MAC_S,MAC_S为初始安全字符MAC的最低3个有效字节。具体安全字符计算过程中,可根据‘源节点地址+目标节点地址+控制信息+CNT’计算,得到一个字节的CRC8,并将‘源节点地址+目标节点地址+控制信息+CNT+CRC8’作为输入,结合秘钥Key,计算出16个字节的原始MAC,将原始MAC的最低3个字符作为MAC_S,其中,网络唤醒后,节点随机生成的16位计数器,作为初始CNT,并以第一个发送的RING报文的CNT作为后续RING报文的起始CNT,RING报文没法送一次,CNT加1,CNT和MAC_S的字节序为摩托罗拉格式。
示例性的,上述网络管理报文中的源节点表示为SA,网络管理报文中的苗木表节点地址表示为DA,具体计算示例如下:假设发送节点的地址SA为0x45;目标节点地址DA为0x43;控制信息为0x80;当前的CNT为-0x1021;AES-128的秘钥为{0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF},AES-128加解密模式为ECB;将0x45,0x43,0x80,0x10,0x21依次输入CRC-8计算,得到CRC值0x3F;将0x45,0x43,0x80,0x10,0x21,0x3F和秘钥输入AES-128,ECB算法中计算得到0xac,0xe7,0x63,0x71,0xf7,0x55,0x35,0xee,0x2b,0x32,0x5c,0xa8,0xa4,0xe2,0x85,0xe6,作为初始MAC,进一步选取MAC的最低3个字符0xe2,0x85,0xe6作为MAC_S;报文内容为:0x43,0x80,0x10,0x21,0x3F,0xe2,0x85,0xe6。
102、在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证。
本发明实施例中,利用安全认证信息对总线发送的网络管理报文进行多重合法性验证的过程需要对网络管理报文执行多次合法性验证,每次合法性验证针对网络管理报文中的不同特征执行,这里不同特征至少包括网络管理报文中存储的安全字节、计数值,以及报文类型,具体地,可以针对总线发送的网络管理报文中安全字节进行合法性验证;在安全字节通过合法性验证的情况下,针对总线发送的网络管理报文中存储的计数值进行合法性验证,在安全字节没有通过合法性验证的情况下,将总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在计数值通过合法性验证的情况下,针对总线发送的网络管理报文的报文类型进行合法性验证,在计数值没有通过合法性验证的情况下,将总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在报文类型通过合法性验证的情况下,将总线发送的网络管理报文为合法报文传输至网络管理系统,在报文类型没有通过合法性验证的情况下,将总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息。
进一步地,上述在针对所述总线发送的网络管理报文中安全字节进行合法性验证过程中,具体可以提取总线发送的网络管理报文中安全字节作为参考安全字节;利用总线发送的网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值,计算目标安全字节;在参考安全字节与所述目标安全字节进行比对相同的情况下,判定安全字节通过合法性验证。
进一步地,上述在针对总线发送的网络管理报文中存储的计数值进行合法性验证的过程中,具体可以获取最近一次接收合法性的网络管理报文中存储的计数值作为参考计数值;提取总线发送的网络管理报文中存储的计数值作为目标计数值;在目标计数值大于参考计数值,且不超过第二预设阈值的情况下,判定计数值通过合法性验证。
进一步地,上述在针对所述总线发送的网络管理报文的报文类型进行合法性验证的过程中,可以当总线发送的网络管理报文的报文类型为预设类型时,读取接收网络管理系统发送网络管理报文的时间,并与上一次接收网络管理系统发送/接收网络管理报文的时间形成时间差;在时间差满足预设条件的情况下,判定报文类型通过合法性验证。这里预设条件为时间差大于第一时间且小于第二时间,第一时间为网络管理系统针对预设类型的网络管理报文设置的发送周期,第二时间为网络管理系统针对预设类型的网络管理报文设置的接收超时时间。
103、在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统,在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
可以理解的是,在多重合法性验证均通过的情况下,说明总线发送的网络管理报文为合法报文,对于合法报文可以在CAN网络中进行正常通信,并不会干扰车辆正常运行,在任一合法性验证未通过的情况下,说明总线发送的网络管理报文为网络攻击报文,对于网络攻击报文可能干扰CAN网络通信的正常运行,例如,只要总线持续发送报文即可干扰CAN网络无法正常休眠,还例如,在总线上干扰网络管理报文发送和接收时,即可使得网络管理系统进入跛行状态,使得节点停止报文发送和接收,影响车辆通信和运行,另外,只要总线上持续发送非法RING报文,使其目标节点源节点地址SA为最小,目标节点地址DA为最大值,就可以使得节点识别被跳过,从事使用全部的节点同时请求发送声明报文,使得网络持续在高负载状态,影响车辆通信和运行,可参照图3a中节点跳过算法,只要有一个节点将自己的SA设置为0,将DA设置为255,其他节点接收时就识别为跳过。进一步对网络攻击报文进行记录和报警,并丢弃网络攻击报文。
在实际应用场景,相关技术中CAN网络中节点的软件架构如图4a所示,主要包括应用层21、交互层22、网络层23、安全管理系统OSEKNM24、数据链路层25、总线通信硬件(CAN收发器)26,具体连接关系包括:应用层21与交互层22连接用于信号报文发送/接收,应用层21与安全管理系统OSEKNM24连接用于网络状态请求/报告,交互层22与安全管理系统OSEKNM24连接用于禁止/开启报文发送/接收,交互层22与网络层23连接,网络层23与数据链路层25连接用于应用报文发送/接收,交互层22与数据链路层25连接,安全管理系统OSEKNM24与数据链路层25连接用于网络管理报文发送/接收,数据链路层25与总线通信硬件(CAN收发器)26连接用于CAN报文发送/接收。而本发明实施例中CAN网络中节点的软件架构如图4b所示,在相关技术中CAN网络中节点的软件架构基础上增加安全管理模块27,节点内部软件之间的通信控制需求,可通过安全管理模块27统一管理,即本发明实施例中对CAN网络攻击的识别过程可通过安全管理模块27来实现,这里CAN网络中节点中各个模块的内部逻辑不变,各个模块之间的交互通过安全管理模块27进行。
可以理解的是,由于相关技术中CAN网络中缺少对网络管理系统攻击的识别机制,本实施例通过在网络管理报文中增加安全认证信息,从而利用安全认证信息对传输的网络管理报文进行多重合法性验证,以保证网络管理报文的安全性,从而在网络管理系统被攻击的第一时间定位到网络攻击报文,并进行丢弃处理。具体实现过程中,可通过在现有网络管理报文格式基础上,利用网络管理报文中预留的5个字节,增加counter(后续使用CNT代替)和MAC信息,用于防止重放攻击和非法节点攻击;通过在安全管理模块中增加报文类型检查和频率监控,用于防止洪水攻击;通过在安全管理模块中增加休眠异常监控功能,防止节点被攻击时,网络不能进入休眠状态;通过增加休眠后的唤醒滤波设置,避免被非法唤醒;通过在硬件上增加硬件滤波功能的CAN收发器,如TJA1145T,配合唤醒滤波过程,实现唤醒硬件滤波,以增强对非法唤醒攻击的防护能力;通过在安全管理模块增加攻击识别记录和报警功能,从而及时向用户提供报警信息。
相关技术中CAN网络中节点状态流转如图5a-5b所示,图5a中涉及到节点各种状态的流转包括正常通信状态到跛行状态的流转和预休眠状态的流转,预休眠状态到等待休眠状态的流转,等待休眠状态到休眠状态的流转,并提供相应状态流转需满足的条件,图5b中涉及到节点各种状态的流转包括正常通信状态到初始化状态以及跛行状态,初始化状态到跛行状态,并提供相应状态流转需满足的条件。
相应的,本发明实施例中安全管理模块中节点状态转换和数据流转如图5c-5d所示,图5c中展示了节点在安全管理模块的控制下,节点状态流转和数据流转过程,具体涉及了CAN网络唤醒流程、CAN网络休眠流程、网络管理报文发送和接收流程。
上述CAN网络唤醒流程如图6a-图6b所示,包括主动唤醒方式和被动唤醒方式,针对主动唤醒方式,如图6a所示,包括如下步骤:301、主动唤醒节点发起网络唤醒;302、获取存储的CNT;303、计算CTC和MAC_S;304、将CTC和MAC_S加入报文;305、发送报文。针对被动唤醒方式,如图6b所示,包括如下步骤:301’、被动唤醒节点接收唤醒报文;302’、硬件滤波验证唤醒报文;303’、唤醒报文传递给安全管理模块;304’、休眠攻击识别;305’、网络唤醒执行。具体地,对于主动唤醒流程,节点识别到唤醒源后,会发起主动唤醒网络请求到安全管理模块,安全管理模块启动安全管理系统OSEKNM,然后安全管理系统OSEKNM请求安全管理模块发送唤醒报文;安全管理模块获取存储的CNT;利用CNT计算CRC(CRC是一种校验算法),将CNT和CRC,配合秘钥,作为AES128算法(AES-128是一种国际标准的对称加解密算法,该秘钥为产品下线前分配好的,具体设置成需要根据整车厂的需求)的输入,计算得到原始的MAC,将MAC的最低有效的3字节作为MAC_S;并将CNT和MAC_S填充到网络管理报文对应的位置;发送网络管理报文。对于被动唤醒流程,收发器处于休眠状态时,总线上出现的报文,首先进入收发器的硬件滤波器;硬件滤波根据配置,对比接收报文的CNT和MAC_S,是否和配置的一致,如果配置不一致,直接丢弃接收到的唤醒报文,停止唤醒处理;如果一致,将报文传递给安全管理模块;安全管理模块中的休眠攻击监控逻辑,检查休眠条件和保持唤醒定时器,如果休眠条件满足,且保持唤醒定时器的值已经超过阈值Thmax;识别为休眠攻击,丢弃唤醒报文;如果休眠条件不满足,或者保持唤醒定时器的值未超过阈值Thmax,执行唤醒流程,并将唤醒报文传递给安全管理系统OSEKNM。
上述CAN网络休眠流程如图7所示,包括如下步骤:401、发送或接收Sleep.Ack=1的报文;402、验证网络管理报文合法;403、存储网络管理报文中存储的CNT;404、计算CRC和MAC_S;305、配置收发器的硬件滤波。具体地,对于网络休眠流程,各个节点满足休眠条件,最终发出Sleep.Ack为1的网络管理报文;接收并验证报文的合法性;在报文合法的情况下,提取报文中的CNT;计算CNT和CRC8值,将CNT和CRC8,配合秘钥作为AES128算法的输入,计算得到原始的MAC,将MAC的最低有效的3字节作为MAC_S;将CNT和MAC_S配置为收发器的唤醒报文硬件滤波,执行网络休眠。
上述CAN网络管理报文发送和接收流程如图8a-8b所示,针对网络管理报文发送流程,如图8所示,包括如下步骤:501、发送报文请求;502、获取存储的CNT;503、计算CRC8;504、计算MAC_S;505、将CNT和MAC_S填充至报文后,传输报文;针对网络管理报文接收流程,如图8b所示,包括如下步骤:501’、接收报文;502’、验证报文中MAC_S;503’、验证CNT;504’、验证报文类型;505’、验证报文合法后,将接收报文传输至网络管理系统。具体地,对于报文发送流程,安全管理系统OSEKNM请求安全模块发送报文;安全模块获取存储的CNT值;将OSEKNM模块提供的报文中的SA+DA+控制信息+CNT作为输入,计算CRC8;将SA+DA+控制信息+CNT+CRC8,配合秘钥,作为AES-128算法的输入,计算得到16字节长度的原始MAC,提取原始MAC的最低有效的3个字节,作为MAC_S;将CNT和MAC_S,填入报文中,并发送到总线上。对于报文接收流程,总线上接收到网络管理报文。并发送到安全管理模块,由安全管理模块进行报文合法性验证,首先提取报文中的SA+DA+控制信息+CNT作为输入,计算CRC8;将SA+DA+控制信息+CNT+CRC8,配合秘钥,作为AES-128算法的输入,计算得到16字节长度的原始MAC,提取报文中原始MAC的最低有效的3个字节,作为MAC_S’;对比计算得到的MAC_S’和报文中记录的MAC_S是否相等,如果相等,则执行下一步验证,否则记录攻击报文信息和报警,并丢弃接收报文;然后获取存储的CNT值,如果接收的CNT值比存储的CNT值大,且不超过3,则识别为CNT合法(CNT循环计数,如果存储的CNT值为0xFFFF,则接收的CNT值为0x0000、0x0001和0x0002都是合法的),且存储接收的CNT值,并执行后续步骤,否则记录攻击报文信息和报警,并丢弃接收报文;进一步如果是RING报文,读取上一次网络管理报文发送/接收的时间TL,读取当前接收的报文时间TC,对比TC和TL,如果两者时间差dT满足T≤dT≤Tmax(T为安全管理系统OSEKNM的RING报文发送周期,Tmax为OSEKNM的RING报文接收超时时间),则识别为合法报文,并记录将TL值更新为TC的值,且执行后续步骤,否则记录攻击报文信息和报警,并丢弃接收报文。如果是其他类型报文,直接丢弃;将接收报文传递给安全管理系统OSEKNM。
本发明实施例提供的车辆CAN网络攻击的识别方法,能够响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将用于验证网络管理报文的安全认证信息填充至网络管理报文的预留字节中,这里计数值的初始值由节点随机生成,进一步在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用安全认证信息对总线发送的网络管理报文进行多重合法性验证,在多重合法性验证均通过的情况下,将总线发送的网络管理报文传输至网络管理系统。由此可知,与现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击相比,本发明实施例能够在网络管理报文的预留义字节中增加安全认证信息来实现车辆CAN网络攻击的识别,从而解决了现有车辆CAN网络的通信方式无法准确识别车辆CAN网络攻击的问题。
基于上述实施例,本发明的另一实施例提供了一种车辆CAN网络攻击的识别装置,如图9所示,所述装置包括:
生成单元61,用于响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中,所述计数值的初始值由节点随机生成;
验证单元62,用于在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证;
传输单元63,用于在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统,在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
可选的,所述装置还包括:
唤醒单元,用于在所述响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至所述网络管理报文的预留字节中之前,接收节点识别到唤醒源所发起的主动唤醒请求,并利用所述主动唤醒请求携带的主动唤醒报文触发CAN网络中节点被唤醒;或
接收由其他节点发出且经过总线过滤的被动唤醒报文,并根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述经过总线过滤的被动唤醒报文由总线上设置的硬件滤波功能根据配置的安全认证信息与接收到的网络管理报文中安全认证信息进行比对后得到,所述硬件滤波功能通过在总线上增加具有硬件滤波功能的CAN收发器实现;
在配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致的情况下,将接收到的网络管理报文作为被动唤醒报文,
在配置的安全认证信息与接收到的网络管理报文中安全认证信息对比不一致的情况下,丢弃接收到的网络管理报文。
可选的,所述唤醒单元,具体用于根据休眠攻击监控逻辑检查其他节点是否满足休眠条件;
在所述其他节点满足休眠条件,且保持唤醒定时器的值超过第一预设阈值的情况下,识别CAN网络受到休眠攻击,并丢弃所述被动唤醒报文;在所述其他节点不满足休眠条件,或保持唤醒定时器的值未超过第一预设阈值的情况下,识别CAN网络未受到休眠攻击,并利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述保持唤醒定时器用于记录从节点不存在本地网络唤醒源开始至CAN网络仍处于唤醒状态的时间长度。
可选的,所述唤醒单元,具体还用于提取其它节点发出且经过总线过滤的被动唤醒报文的休眠指示位;
在所述休眠指示位为预设数值的情况下,判定其他节点不存在本地网络唤醒源,满足休眠条件;
在所述休眠指示位不是预设数值的情况下,判定其他节点存在本地网络唤醒源,不满足休眠条件。
可选的,所述装置还包括:
接收单元,用于在CAN网络中各节点满足休眠条件的情况下,接收休眠指示位为预设数值的网络管理报文;
休眠单元,用于在所述休眠指示位为预设数值的网络管理报文通过多重合法性验证的情况下,提取所述休眠指示位为预设数值的网络管理报文中的计数值,利用所述计数值计算得到安全认证信息,并将所述安全认证信息作为总线上硬件滤波配置后,执行CAN网络休眠。
可选的,所述生成单元61包括:
第一计算模块,用于根据所述网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值相结合,计算循环冗余校验码;
第二计算模块,用于将所述网络管理报文中源节点地址、目标节点地址、控制信息、节点休眠前存储的计数值与循环冗余校验码相结合,配合秘钥作为加密算法的输入,计算原始安全字节;
生成模块,用于提取所述原始安全字节中最低有效的预设数量字节作为安全字节,结合所述节点休眠前存储的计数值,生成用于验证网络管理报文的安全认证信息。
可选的,所述验证单元62,具体用于针对所述总线发送的网络管理报文中安全字节进行合法性验证;在所述安全字节通过合法性验证的情况下,针对所述总线发送的网络管理报文中存储的计数值进行合法性验证,在所述安全字节没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在所述计数值通过合法性验证的情况下,针对所述总线发送的网络管理报文的报文类型进行合法性验证,在所述计数值没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;在所述报文类型通过合法性验证的情况下,将所述总线发送的网络管理报文为合法报文传输至网络管理系统,在所述报文类型没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息。
可选的,所述验证单元62,具体还用于提取所述总线发送的网络管理报文中安全字节作为参考安全字节;利用所述总线发送的网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值,计算目标安全字节;在所述参考安全字节与所述目标安全字节进行比对相同的情况下,判定所述安全字节通过合法性验证;
所述验证单元62,具体还用于获取最近一次接收合法性的网络管理报文中存储的计数值作为参考计数值;提取所述总线发送的网络管理报文中存储的计数值作为目标计数值;在所述目标计数值大于所述参考计数值,且不超过第二预设阈值的情况下,判定所述计数值通过合法性验证;
所述验证单元62,具体还用于当所述总线发送的网络管理报文的报文类型为预设类型时,读取接收网络管理系统发送网络管理报文的时间,并与上一次接收网络管理系统发送/接收网络管理报文的时间形成时间差;在所述时间差满足预设条件的情况下,判定所述报文类型通过合法性验证。
可选的,所述预设条件为时间差大于第一时间且小于第二时间,所述第一时间为网络管理系统针对预设类型的网络管理报文设置的发送周期,所述第二时间为网络管理系统针对预设类型的网络管理报文设置的接收超时时间。
基于上述方法实施例,本发明的另一实施例提供了一种存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现上述方法。
基于上述实施例,本发明的另一实施例提供了一种车辆,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。所述车辆可以为非自动驾驶车辆,也可以为自动驾驶车辆。
上述系统、装置实施例与方法实施例相对应,与该方法实施例具有同样的技术效果,具体说明参见方法实施例。装置实施例是基于方法实施例得到的,具体的说明可以参见方法实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种车辆CAN网络攻击的识别方法,其特征在于,所述方法包括:
响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中,所述计数值的初始值由节点随机生成;
在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证;
在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统;
在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
2.如权利要求1所述的方法,其特征在于,在所述响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,并将用于验证网络管理报文的安全认证信息填充至所述网络管理报文的预留字节中之前,所述方法还包括:
接收节点识别到唤醒源所发起的主动唤醒请求,并利用所述主动唤醒请求携带的主动唤醒报文触发CAN网络中节点被唤醒;或
接收由其他节点发出且经过总线过滤的被动唤醒报文,并根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述经过总线过滤的被动唤醒报文由总线上设置的硬件滤波功能根据配置的安全认证信息与接收到的网络管理报文中安全认证信息进行比对后得到,所述硬件滤波功能通过在总线上增加具有硬件滤波功能的CAN收发器实现;
在所述配置的安全认证信息与接收到的网络管理报文中安全认证信息对比一致的情况下,将接收到的网络管理报文作为被动唤醒报文;
在所述配置的安全认证信息与接收的网络管理报文中安全认证信息对比不一致的情况下,丢弃接收到的网络管理报文。
3.如权利要求2所述的方法,其特征在于,所述根据休眠攻击监控逻辑识别CAN网络是否受到休眠攻击,在未受到休眠攻击的情况下,利用所述被动唤醒报文触发CAN网络中节点被唤醒,包括:
根据休眠攻击监控逻辑检查其他节点是否满足休眠条件;
在所述其他节点满足休眠条件,且保持唤醒定时器的值超过第一预设阈值的情况下,识别CAN网络受到休眠攻击,并丢弃所述被动唤醒报文;
在所述其他节点不满足休眠条件,或保持唤醒定时器的值未超过第一预设阈值的情况下,识别CAN网络未受到休眠攻击,并利用所述被动唤醒报文触发CAN网络中节点被唤醒;
其中,所述保持唤醒定时器用于记录从节点不存在本地网络唤醒源开始至CAN网络仍处于唤醒状态的时间长度。
4.如权利要求3所述的方法,其特征在于,所述根据休眠攻击监控逻辑检查其他节点是否满足休眠条件,包括:
提取其它节点发出且经过总线过滤的被动唤醒报文的休眠指示位;
在所述休眠指示位为预设数值的情况下,判定其他节点不存在本地网络唤醒源,满足休眠条件;
在所述休眠指示位不是预设数值的情况下,判定其他节点存在本地网络唤醒源,不满足休眠条件。
5.如权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
在CAN网络中各节点满足休眠条件的情况下,接收休眠指示位为预设数值的网络管理报文;
在所述休眠指示位为预设数值的网络管理报文通过多重合法性验证的情况下,提取所述休眠指示位为预设数值的网络管理报文中的计数值,利用所述计数值计算得到安全认证信息,并将所述安全认证信息作为总线上硬件滤波配置后,执行CAN网络休眠。
6.如权利要求1-4中任一项所述的方法,其特征在于,所述利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,包括:
根据所述网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值相结合,计算循环冗余校验码;
将所述网络管理报文中源节点地址、目标节点地址、控制信息、节点休眠前存储的计数值与循环冗余校验码相结合,配合秘钥作为加密算法的输入,计算原始安全字节;
提取所述原始安全字节中最低有效的预设数量字节作为安全字节,结合所述节点休眠前存储的计数值,生成用于验证网络管理报文的安全认证信息。
7.如权利要求1-4中任一项所述的方法,其特征在于,所述利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证,包括:针对所述总线发送的网络管理报文中安全字节进行合法性验证;
在所述安全字节通过合法性验证的情况下,针对所述总线发送的网络管理报文中存储的计数值进行合法性验证;
在所述安全字节没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;
在所述计数值通过合法性验证的情况下,针对所述总线发送的网络管理报文的报文类型进行合法性验证;
在所述计数值没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息;
在所述报文类型通过合法性验证的情况下,将所述总线发送的网络管理报文为合法报文传输至网络管理系统;
在所述报文类型没有通过合法性验证的情况下,将所述总线发送的安全网络管理报文记录为网络攻击报文,并生成报警信息。
8.如权利要求7所述的方法,其特征在于,所述针对所述总线发送的网络管理报文中安全字节进行合法性验证,包括:
提取所述总线发送的网络管理报文中安全字节作为参考安全字节;
利用所述总线发送的网络管理报文中源节点地址、目标节点地址、控制信息与节点休眠前存储的计数值,计算目标安全字节;
在所述参考安全字节与所述目标安全字节进行比对相同的情况下,判定所述安全字节通过合法性验证;
所述针对所述总线发送的网络管理报文中存储的计数值进行合法性验证,包括:
获取最近一次接收合法性的网络管理报文中存储的计数值作为参考计数值;
提取所述总线发送的网络管理报文中存储的计数值作为目标计数值;
在所述目标计数值大于所述参考计数值,且不超过第二预设阈值的情况下,判定所述计数值通过合法性验证;
所述针对所述总线发送的网络管理报文的报文类型进行合法性验证,包括:
当所述总线发送的网络管理报文的报文类型为预设类型时,读取接收网络管理系统发送网络管理报文的时间,并与上一次接收网络管理系统发送/接收网络管理报文的时间形成时间差;
在所述时间差满足预设条件的情况下,判定所述报文类型通过合法性验证。
9.如权利要求8所述的方法,其特征在于,所述预设条件为时间差大于第一时间且小于第二时间,所述第一时间为网络管理系统针对预设类型的网络管理报文设置的发送周期,所述第二时间为网络管理系统针对预设类型的网络管理报文设置的接收超时时间。
10.一种车辆CAN网络攻击的识别装置,其特征在于,所述装置包括:
生成单元,用于响应于CAN网络中节点被唤醒,接收网络管理系统发送的网络管理报文,利用节点休眠前存储的计数值生成用于验证网络管理报文的安全认证信息,并将所述安全认证信息填充至所述网络管理报文的预留字节中,所述计数值的初始值由节点随机生成;
验证单元,用于在CAN网络中节点进行通信的过程中传输填充有安全认证信息的网络管理报文,并利用所述安全认证信息对总线发送的网络管理报文进行多重合法性验证;
传输单元,用于在多重合法性验证均通过的情况下,将所述总线发送的网络管理报文识别为合法报文传输至网络管理系统,在任一合法性验证没有通过的情况下,将所述总线发送的网络管理报文识别为网络攻击报文进行丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210105796.1A CN114257986A (zh) | 2022-01-28 | 2022-01-28 | 车辆can网络攻击的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210105796.1A CN114257986A (zh) | 2022-01-28 | 2022-01-28 | 车辆can网络攻击的识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114257986A true CN114257986A (zh) | 2022-03-29 |
Family
ID=80796904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210105796.1A Pending CN114257986A (zh) | 2022-01-28 | 2022-01-28 | 车辆can网络攻击的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114257986A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760163A (zh) * | 2022-04-22 | 2022-07-15 | 惠州华阳通用电子有限公司 | 一种can通信方法 |
CN114968827A (zh) * | 2022-08-01 | 2022-08-30 | 江铃汽车股份有限公司 | 车辆总线信号信息校验方法及系统 |
CN115225454A (zh) * | 2022-06-06 | 2022-10-21 | 广州汽车集团股份有限公司 | 车辆的异常监控方法、装置、电子设备及存储介质 |
CN115981289A (zh) * | 2023-02-10 | 2023-04-18 | 力高(山东)新能源技术股份有限公司 | 一种can特定帧唤醒的故障诊断处理方法 |
CN116176281A (zh) * | 2023-04-25 | 2023-05-30 | 中国第一汽车股份有限公司 | 动力电池的功能安全控制方法、装置、车辆及存储介质 |
CN116827713A (zh) * | 2023-06-30 | 2023-09-29 | 重庆大学 | 一种用于新能源汽车的模拟工作系统 |
-
2022
- 2022-01-28 CN CN202210105796.1A patent/CN114257986A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760163A (zh) * | 2022-04-22 | 2022-07-15 | 惠州华阳通用电子有限公司 | 一种can通信方法 |
CN114760163B (zh) * | 2022-04-22 | 2024-01-12 | 惠州华阳通用电子有限公司 | 一种can通信方法 |
CN115225454A (zh) * | 2022-06-06 | 2022-10-21 | 广州汽车集团股份有限公司 | 车辆的异常监控方法、装置、电子设备及存储介质 |
CN115225454B (zh) * | 2022-06-06 | 2024-03-29 | 广州汽车集团股份有限公司 | 车辆的异常监控方法、装置、电子设备及存储介质 |
CN114968827A (zh) * | 2022-08-01 | 2022-08-30 | 江铃汽车股份有限公司 | 车辆总线信号信息校验方法及系统 |
CN114968827B (zh) * | 2022-08-01 | 2023-06-02 | 江铃汽车股份有限公司 | 车辆总线信号信息校验方法及系统 |
CN115981289A (zh) * | 2023-02-10 | 2023-04-18 | 力高(山东)新能源技术股份有限公司 | 一种can特定帧唤醒的故障诊断处理方法 |
CN116176281A (zh) * | 2023-04-25 | 2023-05-30 | 中国第一汽车股份有限公司 | 动力电池的功能安全控制方法、装置、车辆及存储介质 |
CN116176281B (zh) * | 2023-04-25 | 2023-07-07 | 中国第一汽车股份有限公司 | 动力电池的功能安全控制方法、装置、车辆及存储介质 |
CN116827713A (zh) * | 2023-06-30 | 2023-09-29 | 重庆大学 | 一种用于新能源汽车的模拟工作系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114257986A (zh) | 车辆can网络攻击的识别方法及装置 | |
US11546298B2 (en) | Information processing method, information processing system, and non-transitory computer-readable recording medium storing a program | |
US10277598B2 (en) | Method for detecting and dealing with unauthorized frames in vehicle network system | |
JP6887040B2 (ja) | 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム | |
Gmiden et al. | An intrusion detection method for securing in-vehicle CAN bus | |
US10902109B2 (en) | Misuse detection method, misuse detection electronic control unit, and misuse detection system | |
KR102243114B1 (ko) | 차량 네트워크에서 id 익명화를 사용한 실시간 프레임 인증 | |
US10484401B2 (en) | In-vehicle network attack detection method and apparatus | |
Kleberger et al. | Security aspects of the in-vehicle network in the connected car | |
CN113612786B (zh) | 一种车辆总线的入侵检测系统及方法 | |
US20200183373A1 (en) | Method for detecting anomalies in controller area network of vehicle and apparatus for the same | |
KR101966345B1 (ko) | Can 통신 기반 우회 공격 탐지 방법 및 시스템 | |
Bresch et al. | Design and implementation of an intrusion detection system (IDS) for in-vehicle networks | |
Tanksale | Intrusion detection for controller area network using support vector machines | |
Han et al. | A practical solution to achieve real-time performance in the automotive network by randomizing frame identifier | |
CN115766267A (zh) | 控制器局域网络can总线身份认证方法、装置及电子设备 | |
Rathi et al. | Security challenges & controls in cyber physical system | |
Souma et al. | Counter attacks for bus-off attacks | |
Sun et al. | Analysis of id sequences similarity using DTW in intrusion detection for CAN bus | |
US10581609B2 (en) | Log message authentication with replay protection | |
CN109032108B (zh) | 用于识别对现场总线的攻击的方法和设备 | |
Purohit et al. | ML-based anomaly detection for intra-vehicular CAN-bus networks | |
Nabi et al. | Towards standardization of in-car sensors | |
CN114650536A (zh) | 基于报文指纹的入侵检测方法、系统、车辆及存储介质 | |
Hafeez | A robust, reliable and deployable framework for in-vehicle security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |