本发明涉及报文检测技术领域,尤其涉及一种can总线报文异常检测方法、装置、设备以及计算机可读存储介质。
背景技术:
can(controllerareanetwork)总线的报文是基于广播方式传播,总线上的任何报文,所有电子控制单元(electroniccontrolunit,ecu)都可以收到,并根据接收到的报文做出响应;而相关技术中并未对报文是否异常进行检测,由此在报文异常时会严重危害整个系统安全。
因此,如何能够检测出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总线报文异常检测设备结构示意图;
图2为本发明can总线报文异常检测方法第一实施例的流程示意图;
图3为本发明can总线连接电子控制单元的示意图一;
图4为本发明can总线报文异常检测方法第二实施例的流程示意图;
图5为本发明can总线报文异常检测方法第三实施例的流程示意图;
图6为本发明can总线连接电子控制单元的示意图二;
图7为本发明can总线报文异常检测方法第四实施例的流程示意图;
图8为本发明can总线报文异常检测装置第一实施例的结构框图;
图9为本发明can总线报文异常检测装置第二实施例的结构框图
图10为本发明can总线报文异常检测装置第三实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的can总线报文异常检测设备结构示意图。
can总线报文异常检测设备包括:至少一个处理器101、存储器102以及存储在存储器上并可在处理器上运行的can总线报文异常检测程序,can总线报文异常检测程序配置为实现如下任一实施例的can总线报文异常检测方法的步骤。
处理器101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器101可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器101可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。处理器101还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关can总线报文异常检测方法操作,使得can总线报文异常检测方法模型可以自主训练学习,提高效率和准确度。
存储器102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储can总线报文异常检测设备、闪存存储can总线报文异常检测设备。在一些实施例中,存储器102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器101所执行以实现本申请中方法实施例提供的can总线报文异常检测方法。
can总线报文异常检测设备还可选包括有:通信接口103和至少一个外围设备。处理器101、存储器102和通信接口103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口103相连。具体地,外围设备包括:射频电路104、显示屏105和电源106中的至少一种。
通信接口103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器101和存储器102。在一些实施例中,处理器101、存储器102和通信接口103被集成在同一芯片或电路板上;在一些其他实施例中,处理器101、存储器102和通信接口103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路104用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路104通过电磁信号与通信网络以及其他通信can总线报文异常检测设备进行通信。射频电路104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路104还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本发明对此不加以限定。
显示屏105用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏105是触摸显示屏时,显示屏105还具有采集在显示屏105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器101进行处理。此时,显示屏105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏105可以为一个,can总线报文异常检测设备的前面板;在另一些实施例中,显示屏105可以为至少两个,分别设置在can总线报文异常检测设备的不同表面或呈折叠设计;在一些实施例中,显示屏105可以是柔性显示屏,设置在can总线报文异常检测设备的弯曲表面上或折叠面上。甚至,显示屏105还可以设置成非矩形的不规则图形,也即异形屏。显示屏105可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。
电源106用于为can总线报文异常检测设备中的各个组件进行供电。电源106可以是交流电、直流电、一次性电池或可充电电池。当电源106包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图1中示出的结构并不构成对can总线报文异常检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述硬件结构,提出本发明的各实施例。
请参见图2,图2为本发明can总线报文异常检测方法第一实施例的流程示意图,can总线报文异常检测方法包括以下步骤:
步骤s20:监测can总线上传输的报文。
可以理解的是,can总线协议是由bosch发明的一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ecu之间可靠的通信,后因其简单实用可靠等特点,而广泛应用于工业自动化、船舶、医疗等领域;相比于其它网络类型,如局域网、广域网等,can更加适合应用于现场控制领域。其中,can总线是一种多主控(multi-master)的总线系统,can总线基于广播的形式发送报文,即在同一时刻网络上所有节点侦测的数据是一致的,因此比较适合传输诸如控制、温度、转速等短消息。
其中,请参见图3,can总线是用于连接两个或两个以上的电子控制单元的多主机串行总线标准,其中电子控制单元也称为节点,在图3中,can总线连接三个电子控制单元,即3个节点,分别为节点1、节点2、节点3。其中电子控制单元的复杂性范围从简单的i/o设备到具有can接口和复杂软件的嵌入式计算机,具体地,电子控制单元还可以是允许通用计算机通过usb或以太网端口与can总线上的设备进行通信的网关。
需要说明的是,每个电子控制单元主要由中央处理器(cpu,centralprocessingunit),can控制器,can收发器三部分组成。其中,can控制器属于数据链路层,一方面负责发送端生成can帧并以二进制码流的方式发送,并在此过程中进行位填充、添加crc校验、应答检测等操作;另一方面负责接收端将接收到的二进制码流进行解析并接收,在此过程中进行收发比对、去位填充、执行crc校验等操作,此外can控制器还负责进行冲突判断、错误处理等诸多任务。其中,can收发器属于can总线的物理层,负责将二进制码流转换为差分信号发送,将差分信号转换为二进制码流接收。
可以理解的是,若电子控制单元向中央处理器发送报文,则电子控制单元作为发送端,中央处理器作为接收端;若中央处理器向电子控制单元发送报文,则中央处理器作为发送端,电子控制单元作为接收端。因此,本实施例中监测can总线上传输的报文,可以是电子控制单元向中央处理器发送的报文,也可以是中央处理器向电子控制单元发送的报文,在实际应用中,可以根据具体应用场景做灵活调整。
在一些示例中,可以每隔第一预设时间段监测can总线上传输的报文;例如可以每隔30秒、1分钟等监测can总线上传输的报文,这样可以在一定程度上节省系统资源消耗;在实际应用中,第一预设时间段由开发人员根据实验或经验进行灵活设置。
在一些示例中,可以持续监测can总线上传输的报文,这样可以在一定程度上提升系统监测的即时性,从而提升报文检测的准确性。
在一些示例中,也可以在第二预设时间段内持续监测can总线上传输的报文,在第二预设时间段之外的其他时间段间隔监测can总线上传输的报文;例如以一天为例,在06:00:00-22:00:00这一第二预设时间段内持续监测can总线上传输的报文,在22:00:00-06:00:00这一其他时间段间隔监测can总线上传输的报文;在实际应用中,第二预设时间段由开发人员根据实验或经验进行灵活设置。
步骤s21:获取报文的特征信息。
应当明确的是,本实施例中报文的特征信息包括但不限于挂载在can总线上的电子控制单元的标识信息、报文的属性信息;其中:
挂载在can总线上的电子控制单元的标识信息指的是用于唯一标识电子控制单元的信息;可以理解的是,无论是电子控制单元向中央处理器发送报文,还是中央处理器向电子控制单元发送报文,报文中均会携带电子控制单元的标识信息这一特征信息,若电子控制单元向中央处理器发送报文,中央处理器则可以根据报文中电子控制单元的标识信息这一特征信息知晓当前是哪个电子控制单元发送的报文;若中央处理器向电子控制单元发送报文,则可以根据报文中电子控制单元的标识信息这一特征信息知晓当前中央处理器是发送给哪个电子控制单元,其他电子控制单元根据报文中电子控制单元的标识信息这一特征信息可以知晓是否是自己所需要的,若不需要,可以进行舍弃等操作。
报文的属性信息包括但不限于报文标识信息、报文类型、报文内容,其中报文标识信息指的是用于唯一标识报文的信息;报文类型指的是报文属于哪一种类型的报文,例如数据帧、远程帧、错误帧、过载帧等,其中数据帧(data)为数据帧将数据从发送端传输到接收端,远程帧(remote)为总线单元发出远程帧,请求发送具有同一标识符的数据帧,错误帧(error)为任何单元检测到总线错误就发出错误帧,过载帧(overload)用在相邻数据帧或远程帧之间提供附加的延时;报文内容指的是报文包含的是哪些内容。
可以理解的是,本实施例中报文的特征信息可以包括挂载在can总线上的电子控制单元的标识信息和报文的属性信息;本实施例中报文的特征信息也可以仅包括挂载在can总线上的电子控制单元的标识信息;本实施例中报文的特征信息还可以仅包括报文的属性信息。
步骤s22:判断特征信息是否与预设特征信息集合中的目标信息匹配;
若否,则执行步骤s23,若是,则结束此次流程。
需要说明的是,本实施例中预设特征信息集合中包括但不限于目标电子控制单元的标识信息、目标报文的属性信息,其和获取到的报文的特征信息相对应。即若报文的特征信息包括挂载在can总线上的电子控制单元的标识信息和报文的属性信息,则预设特征信息集合中包括目标电子控制单元的标识信息和报文的属性信息;若报文的特征信息包括挂载在can总线上的电子控制单元的标识信息,则预设特征信息集合中包括目标电子控制单元的标识信息;若报文的特征信息包括报文的属性信息,则预设特征信息集合中包括目标报文的属性信息。
本实施例中,判断特征信息是否与预设特征信息集合中的目标信息匹配分为三种情况,下面分别进行说明。
情况一:
若特征信息包括挂载在can总线上的电子控制单元的标识信息,和,报文的属性信息,具体地,判断特征信息是否与预设特征信息集合中的目标信息匹配的步骤,包括:
首先,判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配;
若是,则判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配;若报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则确定报文为异常报文,以实现对报文的检测;
若否,则可以确定报文为异常报文,以实现对报文的检测。
也即,本实施例中若特征信息包括挂载在can总线上的电子控制单元的标识信息和报文的属性信息两者时,首先判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配,如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息匹配,则进一步地判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配,如果报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则确定报文为异常报文,如果报文的属性信息与预设特征信息集合中目标报文的属性信息匹配,则确定报文为正常报文;如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息不匹配,则确定报文为异常报文。这样,通过将获取到的电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息匹配,以及将获取到的报文的属性信息与预设特征信息集合中目标报文的属性信息匹配,并在二者其中一个存在不匹配时,则确定报文为异常报文,极大程度上提升了报文检测的准确性。
可以理解的是,如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息不匹配,则表征该报文是由外部恶意电子控制单元接入can总线上并发送的。因此,本实施例中如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息不匹配,则确定报文为异常报文,反之则确定报文为正常报文。
可以理解的是,如果报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则表征该报文被篡改,例如由被劫持后的电子控制单元恶意篡改等。因此,本实施例中如果报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则确定报文为异常报文,反之则确定报文为正常报文。
请参见表一所示,为一种示例的预设特征信息集合,其中预设特征信息集合包括目标电子控制单元的标识信息和报文的属性信息。
表一
为了更好地理解,这里以一个具体示例进行说明;例如设通过监测can总线上传输的报文,获取到报文的特征信息“电子控制单元的标识信息a2”以及“报文标识信息a6”,进而将“电子控制单元的标识信息a2”与如表一所示的预设特征信息集合中目标电子控制单元的标识信息进行匹配,明显地,“电子控制单元的标识信息a2”与预设特征信息集合中目标电子控制单元的标识信息a2匹配成功;进一步地,将“报文标识信息a6”与如表一所示的预设特征信息集合中目标报文的标识信息进行匹配,明显地,“报文标识信息a6”与预设特征信息集合中目标报文的标识信息匹配失败,因此确定该报文为异常报文。
情况二:
若特征信息包括挂载在can总线上的电子控制单元的标识信息,具体地,判断特征信息是否与预设特征信息集合中的目标信息匹配的步骤,包括:
判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配;
若否,则确定报文为异常报文,以实现对报文的检测。
也即,本实施例中若特征信息仅包括挂载在can总线上的电子控制单元的标识信息,则直接判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配,如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息不匹配,则确定报文为异常报文,如果电子控制单元的标识信息与预设特征信息集合中目标电子控制单元的标识信息匹配,则确定报文为正常报文。
请参见表二所示,为一种示例的预设特征信息集合,其中预设特征信息集合包括目标电子控制单元的标识信息。
表二
为了更好地理解,这里以一个具体示例进行说明;例如设通过监测can总线上传输的报文,获取到报文的特征信息“电子控制单元的标识信息a8”,进而将“电子控制单元的标识信息a8”与如表二所示的预设特征信息集合中目标电子控制单元的标识信息进行匹配,明显地,“电子控制单元的标识信息a8”与预设特征信息集合中目标电子控制单元的标识信息匹配失败,因此确定该报文为异常报文。
情况三:
若特征信息包括报文的属性信息,具体地,判断特征信息是否与预设特征信息集合中的目标信息匹配的步骤,包括:
判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配;
若是,则确定报文为异常报文,以实现对报文的检测。
也即,本实施例中若特征信息仅包括报文的属性信息,则直接判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配,如果报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则确定报文为异常报文,如果报文的属性信息与预设特征信息集合中目标报文的属性信息匹配,则确定报文为正常报文。
请参见表三所示,为一种示例的预设特征信息集合,其中预设特征信息集合包括报文的属性信息。
表三
本实施例中,若报文的属性信息包括报文标识信息、报文类型、报文内容中的至少两个,具体地,判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配的步骤,包括:
判断报文的各个属性信息是否均与预设特征信息集合中目标报文的各个属性信息匹配;
若报文的各个属性信息与预设特征信息集合中目标报文的各个属性信息,匹配的个数小于预设个数阈值,则确定报文为异常报文。
为了更好地理解,这里以一个具体示例进行说明;例如设通过监测can总线上传输的报文,获取到报文的属性信息“报文标识信息a6”、“报文类型4”、“报文内容4”,进而将各个属性信息“报文标识信息a6”、“报文类型4”、“报文内容4”分别与如表三所示的预设特征信息集合中目标报文的各个属性进行匹配,明显地,匹配的个数为0,设预设个数阈值为1,因此确定该报文为异常报文。值得注意的是,在实际应用中,预设个数阈值由开发人员根据实验或经验进行灵活设置。
步骤s23:确定报文为异常报文,以实现对报文的检测。
可以理解的是,如果判断所述特征信息与预设特征信息集合中的目标信息不匹配,则确定所述报文为异常报文,以实现对所述报文的检测;如果判断所述特征信息与预设特征信息集合中的目标信息匹配,则确定报文为正常报文,以实现对报文的检测。
本实施例中,通过将can总线上传输的报文的特性信息与预设特征信息集合中的目标信息进行匹配,从而来实现对can总线上传输的报文是否异常的检测,这样便避免了由于can总线上传输的报文异常导致危害系统安全的现象的发生,极大程度上提升了系统安全性。
基于第一实施例,提出本发明can总线报文异常检测方法的第二实施例;请参见图4所示,图4为本发明can总线报文异常检测方法第二实施例的流程示意图。
在本实施例中,步骤s23确定报文为异常报文,以实现对报文的检测之后,can总线报文异常检测方法还可以包括以下步骤:
步骤s24:阻断报文的传输路径,以实现对报文的传输控制。
也即,本实施例中在确定报文为异常报文时,为了避免该异常报文危害系统安全,需要对该异常报文的传输路径进行阻断,使得其不能传输给其他电子控制单元等;具体地,在确定报文为异常报文时,发送异常中断信号至中央处理器,由中央处理器来进行该异常报文的阻断操作,或者由中央处理器控制其他设备进行该异常报文的阻断操作。
本实施例中,通过确定报文为异常报文时,对该异常报文的传输路径进行阻断,使得其不能传输给其他电子控制单元,避免了由于can总线上传输的报文异常导致危害系统安全的现象的发生,极大程度上提升了系统安全性。
基于上述各实施例,提出本发明can总线报文异常检测方法的第三实施例;请参见图5所示,图5为本发明can总线报文异常检测方法第三实施例的流程示意图。
在本实施例中,步骤s22判断特征信息是否与预设特征信息集合中的目标信息匹配之前,can总线报文异常检测方法还可以包括以下步骤:
步骤s25:获取预设特征信息集合;其中,预设特征信息集合存储在外部的现场可编程逻辑门阵列或复杂可编程逻辑器件中。
需要说明的是,步骤s25可以在步骤s21之前执行或之后执行或并行执行,在实际应用中,可以根据具体应用场景做灵活调整。
由于需要判断获取到的报文的特征信息是否与预设特征信息集合中的目标信息匹配,因此,本实施例中需要先获取预设特征信息集合;其中可以是通过串行外设接口((serialperipheralinterface,spi)或两线式串行总线接口等从外部的现场可编程逻辑门阵列或复杂可编程逻辑器件中获取预设特征信息集合,即预设特征信息集合存储在外部的现场可编程逻辑门阵列或复杂可编程逻辑器件中,而未直接存储在can总线上的中央处理器,这样更容易实现。
请参见图6所示,虚线框中的逻辑实现为执行本实施例can总线报文异常检测方法的示意图;具体地,获取can总线上传输的报文,进而由can解码器对获取到的报文进行解码,得到解码后报文的特征信息,将其与配置逻辑中存储的预设特征信息集合中的目标信息匹配,得到匹配结果,并在匹配结果为失败时,发送异常中断信号至中央处理器,由中央处理器对该异常报文的传输进行阻断;其中在图6,配置逻辑为现场可编程逻辑门阵列或复杂可编程逻辑器件,中央处理器是通过串行外设接口与配置逻辑建立通信连接。
在一些示例中,也可以是将预设特征信息集合存储在can总线上的中央处理器,这样能够提升判断特征信息是否与预设特征信息集合中的目标信息匹配的速率,从而能够提升对报文的检测速率。
本实施例中,步骤s25获取预设特征信息集合之前,can总线报文异常检测方法还可以包括以下步骤:
首先,接收配置指令;
然后,根据配置指令对预设特征信息集合进行配置;
再而,将配置好的预设特征信息集合进行存储。
也即,本实施例中可以接收配置指令,其中配置指令可以是相关工作人员根据实际需要进行下发,包括但不限于通过按键方式、语音方式下发配置指令;进一步地,便可以根据配置指令对预设特征信息集合进行配置,其中配置可以指的是最先设置、或者定时更新等;进而将配置好的预设特征信息集合进行存储,其中存储的具体方式已上述进行说明,这里不再赘述。
本实施例中,通过将预设特征信息集合存储在外部的现场可编程逻辑门阵列或复杂可编程逻辑器件中,这样更容易实现;或者通过将预设特征信息集合存储在can总线上的中央处理器,这样能够提升对报文的检测速率。
基于上述各实施例,提出本发明can总线报文异常检测方法的第四实施例;请参见图7所示,图7为本发明can总线报文异常检测方法第四实施例的流程示意图。
在本实施例中,步骤s20监测can总线上传输的报文之前,can总线报文异常检测方法还可以包括以下步骤:
步骤s26:接收选择指令;其中,选择指令包括待监测的电子控制单元;
具体地,步骤s20监测can总线上传输的报文的步骤,包括:
监测can总线上待监测的电子控制单元发送和/或接收的报文。
也即,本实施例中可以接收选择指令,其中选择指令可以是相关工作人员根据实际需要进行下发,包括但不限于通过按键方式、语音方式下发配置指令;具体地,相关工作人员可以选择其认为容易被劫持的电子控制单元作为待监测对象,通过将待监测的电子控制单元包含在选择指令中;进一步地,便可以监测can总线上待监测的电子控制单元发送和/或接收的报文;这样能够在实现报文检测的同时,节省系统资源消耗。
为了更好地理解,这里以一个具体示例进行说明;例如,can总线共连接有五个的电子控制单元,分别为a1、a2、a3、a4、a5;其中相关工作人员根据需要下发了选择指令,该选择指令中包含了a3、a4,则电子控制单元a3、a4作为待监测的电子控制单元,进而对can总线上待监测的电子控制单元a3、a4发送和/或接收的报文进行监测。
在一些示例中,也可以是对can总线上所连接的所有电子控制单元进行监测,这样能够进一步提升报文检测的准确性。
本实施例中,通过根据接收到的选择指令,监测can总线上待监测的电子控制单元发送和/或接收的报文,这样能够在实现报文检测的同时,节省系统资源消耗;或者通过对can总线上所连接的所有电子控制单元进行监测,这样能够提升报文检测的准确性。
请参见图8所示,图8为本发明can总线报文异常检测装置第一实施例的结构框图,其中can总线报文异常检测装置包括:
监测模块80,用于监测can总线上传输的报文;
获取模块81,用于获取报文的特征信息;
判断模块82,用于判断特征信息是否与预设特征信息集合中的目标信息匹配;
确定模块83,用于在特征信息与预设特征信息集合中目标信息不匹配时,则确定报文为异常报文,以实现对报文的检测。
需要说明的是,本实施例中can总线报文异常检测装置还可选的包括有对应的其他模块,以实现上述can总线报文异常检测方法的步骤。
具体实现中,若特征信息包括挂载在can总线上的电子控制单元的标识信息,和,报文的属性信息;判断模块,还用于判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配;若是,则判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配;若报文的属性信息与预设特征信息集合中目标报文的属性信息不匹配,则确定报文为异常报文,以实现对报文的检测。
具体实现中,若特征信息包括挂载在can总线上的电子控制单元的标识信息,判断模块,还用于判断电子控制单元的标识信息是否与预设特征信息集合中目标电子控制单元的标识信息匹配;若否,则确定报文为异常报文,以实现对报文的检测。
具体实现中,若特征信息包括报文的属性信息,判断模块,还用于判断报文的属性信息是否与预设特征信息集合中目标报文的属性信息匹配;若是,则确定报文为异常报文,以实现对报文的检测。
具体实现中,报文的属性信息包括报文标识信息、报文类型、报文内容中的至少一个;若报文的属性信息包括报文标识信息、报文类型、报文内容中的至少两个,判断模块,还用于判断报文的各个属性信息是否均与预设特征信息集合中目标报文的各个属性信息匹配;若报文的各个属性信息与预设特征信息集合中目标报文的各个属性信息,匹配的个数小于预设个数阈值,则确定报文为异常报文。
本发明的can总线报文异常检测装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
请参见图9所示,图9为本发明can总线报文异常检测装置第二实施例的结构框图,其中can总线报文异常检测装置还可以包括:
阻断模块84,用于阻断报文的传输路径,以实现对报文的传输控制。
也即,本实施例中在确定报文为异常报文时,为了避免该异常报文危害系统安全,阻断模块84会对该异常报文的传输路径进行阻断,使得其不能传输给其他电子控制单元等。
本发明的can总线报文异常检测装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
请参见图10所示,图10为本发明can总线报文异常检测装置第三实施例的结构框图,其中can总线报文异常检测装置还可以包括:
接收模块85,用于接收选择指令;其中,选择指令包括待监测的电子控制单元;
具体地,监测模块80,还用于监测can总线上待监测的电子控制单元接收到的报文。
也即,本实施例中通过接收模块85接收到的选择指令,进而监测模块80监测can总线上待监测的电子控制单元发送和/或接收的报文,这样能够在实现报文检测的同时,节省系统资源消耗。
本发明的can总线报文异常检测装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有can总线报文异常检测程序,can总线报文异常检测程序被处理器执行时实现如上述的can总线报文异常检测方法的步骤。
该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于ram(randomaccessmemory,随机存取存储器),rom(read-onlymemory,只读存储器),eeprom(electricallyeraableprogrammablereadonlymemory,带电可擦可编程只读存储器)、闪存或其他存储器技术、cd-rom(compactdiscread-onlymemory,光盘只读存储器),数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。