《CAN报文异常检测方法及系统.pdf》由会员分享,可在线阅读,更多相关《CAN报文异常检测方法及系统.pdf(16页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104301177A43申请公布日20150121CN104301177A21申请号201410524934522申请日20141008H04L12/26200601H04L12/4020060171申请人清华大学地址100084北京市海淀区10008482信箱72发明人王剑张子键袁坚74专利代理机构北京清亦华知识产权代理事务所普通合伙11201代理人张大威54发明名称CAN报文异常检测方法及系统57摘要本发明提出一种CAN报文的异常检测方法,包括以下步骤建立与车辆的CAN总线的网关和CAN子网的连接,从CAN总线的网关和CAN子网接收CAN帧;判断CAN帧的帧格式是否正确,。
2、如果CAN帧的帧格式错误,则丢弃CAN帧并报警;如果CAN帧的帧格式正确,则进一步调用检测函数对CAN帧进行合法性检测;如果CAN帧非法,则判定CAN帧异常,丢弃CAN帧或并报警。如果CAN帧合法,则发送CAN帧至网关或CAN子网。本发明的CAN报文的异常检测方法简单高效、安全性高、实用性强。本发明还提出一种CAN报文的异常检测系统。51INTCL权利要求书2页说明书11页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书11页附图2页10申请公布号CN104301177ACN104301177A1/2页21一种CAN报文的异常检测方法,其特征在于,包括以下步骤建立与。
3、车辆的CAN总线的网关和CAN子网的连接,从所述网关和所述CAN子网接收CAN帧,所述CAN帧包括标识符和数据域;判断所述CAN帧的帧格式是否正确,如果所述CAN帧的帧格式错误,则丢弃所述CAN帧并报警;如果所述CAN帧的帧格式正确,则进一步调用检测函数对所述CAN帧进行合法性检测;如果所述CAN帧非法,则判定所述CAN帧异常,丢弃所述CAN帧并报警,所述检测函数包括对所述CAN帧的标识符、统计特性、语义范围和语义相关性的检测;如果所述CAN帧合法,则发送所述CAN帧至所述网关或所述CAN子网。2根据权利要求1所述的方法,其特征在于,所述检测函数根据预设的第一CAN帧索引表和第二CAN帧索引表。
4、对来自所述网关或所述CAN子网的所述CAN帧进行检测,其中,所述第一CAN帧索引表包括来自所述网关的所述CAN帧的标识符、所述CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值;所述第二CAN帧索引表包括来自所述CAN子网的所述CAN帧的标识符、所述CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值。3如权利要求1或2任意一项所述的方法,其特征在于,所述标识符检测包括将所述帧格式正确的所述CAN帧的标识符与第一CAN帧索引表或第二CAN帧索引表比对。
5、,若所述第一CAN帧索引表或所述第二CAN帧索引表中不存在所述标识符,则丢弃所述CAN帧并报警,反之则判定所述CAN帧的标识符合法。4如权利要求1或2任意一项所述的方法,其特征在于,所述统计检测包括检测所述标识符相同的所述CAN帧的传输速率,若所述传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈值的次数达到预定数值,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。5如权利要求1或2任意一项所述的方法,其特征在于,所述语义范围检测包括检测所述CAN帧的数据域语义值是否在预设范围内,若是,则判定所述CAN帧合法,反之,则判定所述CAN帧非法并报警。6如权利要求1或2任意。
6、一项所述的方法,其特征在于,所述语义相关性检测包括检测所述CAN帧的数据域语义值的变化速率是否大于预设相关性阈值,若是,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。7一种CAN报文的异常检测系统,其特征在于,包括第一CAN收发器,所述CAN收发器与网关连接,从所述网关接收CAN帧,所述CAN帧包括标识符和数据域;第一CAN控制器,所述第一CAN控制器用于判断来自所述网关的所述CAN帧的帧格式是否正确;第二CAN收发器,所述CAN收发器与CAN子网连接,从所述CAN子网接收CAN帧,其中,所述CAN帧包括标识符和数据域;权利要求书CN104301177A2/2页3第二CAN控制器。
7、,所述第二CAN控制器用于判断来自所述CAN子网的所述CAN帧的帧格式是否正确;过滤器,所述过滤器包括检测函数;报警器,所述报警器用于报警;和微控制器,所述微控制器分别与所述第一CAN控制器、所述第二CAN控制器、所述过滤器和所述报警器相连,用于在所述第一CAN控制器或所述第二CAN控制器判定所述CAN帧的帧格式错误时,丢弃所述CAN帧并控制所述报警器报警,以及在所述CAN帧的帧格式正确时,调用所述过滤器的检测函数对所述CAN帧进行合法性检测,如果所述CAN帧非法,则判定所述CAN帧异常,丢弃所述CAN帧并报警,其中,所述检测函数包括对所述CAN帧的标识符、统计特性、语义范围和语义相关性的检测。
8、。8根据权利要求7所述的系统,其特征在于,还包括与所述微控制器相连的第一CAN帧索引表和第二CAN帧索引表,所述检测函数根据预设的所述第一CAN帧索引表和所述第二CAN帧索引表对所述CAN帧进行检测,其中,所述第一CAN帧索引表包括来自所述网关的所述CAN帧的标识符、所述CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值;所述第二CAN帧索引表包括来自所述CAN子网的所述CAN帧的标识符、所述CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值。9如。
9、权利要求7所述的系统,其特征在于,所述标识符检测包括将所述帧格式正确的所述CAN帧的标识符与第一CAN帧索引表或第二CAN帧索引表比对,若所述第一CAN帧索引表或所述第二CAN帧索引表中不存在所述标识符,则丢弃所述CAN帧并报警,反之则判定所述CAN帧的标识符合法。10如权利要求7所述的系统,其特征在于,所述统计检测包括检测所述标识符相同的所述CAN帧的传输速率,若所述传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈值的次数达到预设数值,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。11如权利要求7所述的系统,其特征在于,所述语义范围检测包括检测所述CAN帧的数据。
10、域语义值是否在预设范围内,若是,则判定所述CAN帧合法,反之,则判定所述CAN帧非法并报警。12如权利要求7所述的系统,其特征在于,所述语义相关性检测包括检测所述CAN帧的数据域语义值的变化速率是否大于预设相关性阈值,若是,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。13如权利要求7所述的系统,其特征在于,所述第一CAN收发器还用于,将合法的来自所述CAN子网的所述CAN帧发送至所述网关。14如权利要求7所述的系统,其特征在于,所述第二CAN收发器还用于,将合法的来自所述网关的所述CAN帧发送至所述CAN子网。权利要求书CN104301177A1/11页4CAN报文异常检测方法。
11、及系统技术领域0001本发明涉及CAN总线通信安全技术领域,尤其涉及一种CAN报文的异常检测方法及系统。背景技术0002汽车的电子系统包括多个电控单元ELECTRONICCONTROLUNIT,ECU,ECU之间通过控制器局域网络CONTROLLERAREANETWORK,CAN总线并根据CAN通信协议通信。CAN通信协议中规定了数据帧的循环冗余校验码CYCLICREDUNDANCYCHECK,CRC段用于增强通信的可靠性,但未提供数据帧的加密和认证过程,无法增强通信的安全性。若攻击者控制汽车网关或某个CAN子网中的ECU,就可能向其它任意一个的CAN子网发送攻击信息,影响整个CAN网络中EC。
12、U的正常通信和运行。0003而现有的CAN总线异常检测方案,通常是设计一个应用于CAN总线的网关,网关将CAN总线划分为不同的子网,对于经过不同子网的数据帧进行检测,拦截非法数据帧并报警。目前实施这些CAN总线异常检测方案要求重新更改汽车网关的软硬件设计,成本较高。发明内容0004本发明旨在至少在一定程度上解决相关技术中的技术问题之一。0005为此,本发明的第一个目的在于提出一种易于实现、安全性能高的CAN报文的异常检测方法。0006本发明的第二个目的在于提出一种用于CAN报文的异常检测系统。0007为了实现上述目的,本发明实施例提出了一种CAN报文的异常检测方法,包括以下步骤建立与车辆的CA。
13、N总线的网关和CAN子网的连接,从所述网关和所述CAN子网接收CAN帧,其中,所述CAN帧包括标识符和数据域;判断所述CAN帧的帧格式是否正确,如果所述CAN帧的帧格式错误,则丢弃所述CAN帧并报警;如果所述CAN帧的帧格式正确,则进一步调用检测函数对所述CAN帧进行合法性检测;如果所述CAN帧非法,则判定所述CAN帧异常,丢弃所述CAN帧并报警,其中,所述检测函数包括对所述CAN帧的标识符、统计特性、语义范围和语义相关性的检测;如果所述CAN帧合法,则发送所述CAN帧至所述网关或所述CAN子网。0008根据本发明实施例的CAN报文的异常检测方法,通过建立与车辆的CAN总线的网关和CAN子网的。
14、连接,从CAN总线的网关和CAN子网接收CAN帧;判断CAN帧的帧格式是否正确,如果CAN帧的帧格式错误,则丢弃CAN帧并报警;如果CAN帧的帧格式正确,则进一步调用检测函数对CAN帧进行合法性检测;如果CAN帧非法,则判定CAN帧异常,丢弃CAN帧并报警。如果CAN帧合法,则发送CAN帧至网关或CAN子网。本发明的CAN报文的异常检测方法简单高效、安全性高、实用性强。0009在一些示例中,所述检测函数根据预设的第一CAN帧索引表和第二CAN帧索引表对所述CAN帧进行检测,所述第一CAN帧索引表包括来自所述网关的所述CAN帧的标识说明书CN104301177A2/11页5符、所述CAN帧的标识。
15、符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值;所述第二CAN帧索引表包括来自所述CAN子网的所述CAN帧的标识符、所述CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值。0010进一步地,在一些示例中,所述标识符检测包括将所述帧格式正确的所述CAN帧的标识符与第一CAN帧索引表或第二CAN帧索引表比对,若所述第一CAN帧索引表或所述第二CAN帧索引表中不存在所述标识符,则丢弃所述CAN帧并报警,反之则判定所述CAN帧的标识符合法。0011在一些示例中,所述。
16、统计检测包括检测所述标识符相同的所述CAN帧的传输速率,若所述传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈值的次数达到预定数值,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。0012在一些示例中,所述语义范围检测包括检测所述CAN帧的数据域语义值是否在预设范围内,若是,则判定所述CAN帧合法,反之,则判定所述CAN帧非法并报警。0013在一些示例中,所述语义相关性检测包括检测所述CAN帧的数据域语义值的变化速率是否大于预设相关性阈值,若是,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。0014本发明第二方面的实施例中提出一种CAN报文的异常检测系。
17、统,包括第一CAN收发器,所述CAN收发器与网关连接,从网关接收CAN帧,所述CAN帧包括标识符和数据域;第一CAN控制器,所述第一CAN控制器用于判断来自所述网关的所述CAN帧的帧格式是否正确;第二CAN收发器,所述CAN收发器与CAN子网连接,从所述CAN子网接收CAN帧,所述CAN帧包括标识符和数据域;第二CAN控制器,所述第二CAN控制器用于判断来自所述CAN子网的所述CAN帧的帧格式是否正确;过滤器,所述过滤器包括所述检测函数;报警器,所述报警器用于报警;和微控制器,所述微控制器分别与所述第一CAN控制器、所述第二CAN控制器、所述过滤器和所述报警器相连,用于在所述第一CAN控制器或。
18、所述第二CAN控制器判定所述CAN帧的帧格式错误时,丢弃所述CAN帧并控制所述报警器报警,以及在所述CAN帧的帧格式正确时,调用所述过滤器的检测函数对所述CAN帧进行合法性检测,如果所述CAN帧非法,则判定所述CAN帧异常,丢弃所述CAN帧并报警,其中,所述检测函数包括对所述CAN帧的标识符、统计特性、语义范围和语义相关性的检测。0015根据本发明实施例的CAN报文的异常检测系统,通过第一CAN收发器和第二CAN收发器建立与车辆的CAN总线网络的连接,并从CAN总线网络的网关和CAN子网接收CAN帧。第一CAN控制器和第二CAN控制器判断CAN帧的帧格式是否正确,如果CAN帧的帧格式错误,则微。
19、控制器控制CAN控制器丢弃CAN帧并触发报警器报警。如果CAN帧的帧格式正确,则微控制器进一步控制过滤器调用检测函数对CAN帧进行合法性检测。如果CAN帧非法,则判定CAN帧异常,微控制器控制过滤器丢弃CAN帧并触发报警器报警。如果CAN帧合法,则微控制器控制第一CAN收发器或第二CAN收发器发送合法的CAN帧至网关或CAN子网。本发明的CAN报文的异常检测系统简单高效、安全性高、实用性强。0016在一些示例中,所述标识符检测包括将所述帧格式正确的所述CAN帧的标识符与第一CAN帧索引表或第二CAN帧索引表比对,若所述第一CAN帧索引表或所述第二CAN说明书CN104301177A3/11页6。
20、帧索引表中不存在所述标识符,则丢弃所述CAN帧并报警,反之则判定所述CAN帧的标识符合法。0017在一些示例中,所述统计检测包括检测所述标识符相同的所述CAN帧的传输速率,若所述传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈值的次数达到预定数值,则判定所述CAN帧非法并报警,反之,则判定所述CAN帧合法。0018在一些示例中,所述语义范围检测包括检测所述CAN帧的数据域语义值是否在预设范围内,若是,则判定所述CAN帧合法,反之,则判定所述CAN帧非法并报警。0019在一些示例中,所述语义相关性检测包括检测所述CAN帧的数据域语义值的变化速率是否大于预设相关性阈值,若是,则判定。
21、所述CAN帧非法并报警,反之,则判定所述CAN帧合法。0020在一些示例中,所述第一CAN收发器还用于,将合法的来自所述CAN子网的所述CAN帧发送至所述网关。0021在一些示例中,所述第二CAN收发器还用于,将合法的来自所述网关的所述CAN帧发送至所述CAN子网。0022本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明0023图1是根据本发明一个实施例的CAN报文的异常检测方法的流程图;和0024图2是根据本发明一个实施例的CAN报文的异常检测系统的结构框图。具体实施方式0025下面详细描述本发明的实施例,所述实施例的示例在附图。
22、中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。0026下面结合图示详细说明本发明的CAN报文的异常检测方法及系统。0027参阅图1,本发明实施例的CAN报文的异常检测方法,包括以下步骤建立与车辆的CAN总线的网关和CAN子网的连接,从网关和CAN子网接收CAN帧,CAN帧包括标识符和数据域;判断CAN帧的帧格式是否正确,如果CAN帧的帧格式错误,则丢弃CAN帧并报警;如果CAN帧的帧格式正确,则进一步调用检测函数对CAN帧进行合法性检测;如果CAN帧非法,则判定CAN帧。
23、异常,丢弃CAN帧并报警,其中,检测函数包括对CAN帧的标识符、统计特性、语义范围和语义相关性的检测;如果CAN帧合法,则发送CAN帧至网关或CAN子网。具体的实现过程如下0028步骤S101,建立与车辆的CAN总线的网关和CAN子网的连接,从网关和CAN子网接收CAN帧,CAN帧包括标识符和数据域。0029步骤S102,判断CAN帧的帧格式是否正确,如果CAN帧的帧格式错误,则丢弃CAN帧并报警。0030具体地,CAN帧的帧格式检测的目的为了判断CAN帧是否符合CAN通信协议,CAN总线的通信协议,包括标识符IDENTIER,ID域、控制域、数据域、校验域等各个部分位说明书CN1043011。
24、77A4/11页7数、填充方式是否正确,同时也进行CRC校验,如果CAN帧的帧格式出现错误即丢弃此CAN帧并报警。0031特别的,在步骤S102中对来自网关和CAN子网的CAN帧还进行所属帧类型的检测。即,判断接收到的CAN帧为数据帧、远程帧、错误帧、过载帧的一种。需要指出的是远程帧与数据帧的区别在于不包含数据域部分。对于错误帧和过载帧,仅进行帧格式检测。若错误帧和过载帧的帧格式无异常则使其通过检测,否则丢弃并报警。0032步骤S103,如果CAN帧的帧格式正确,则进一步调用检测函数对CAN帧进行合法性检测。0033具体地,如果CAN帧的帧格式正确,记录并存储此CAN帧的接收时间、标识符和数据。
25、域语义值。0034进一步地,在本发明的一个实施例中,检测函数根据预设的第一CAN帧索引表和第二CAN帧索引表对来自网关或CAN子网的CAN帧进行检测。第一CAN帧索引表包括来自网关的CAN帧的ID、CAN帧的标识符对应的数据域语义的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的数据域语义值和相关性阈值。第二CAN帧索引表包括来自CAN子网的CAN帧的标识符、CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的数据域语义值和相关性阈值。如表1所示,第一CAN帧索引表或第二CAN帧索引表包括CAN帧合法的ID、CAN帧合。
26、法的ID对应的数据域语义的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的数据域语义值和相关性阈值等参数。在实现本发明的CAN报文异常检测方法之初,需对索引表进行初始化,其中,阈值计数值初始化为0。并在实施过程中,检测函数调用索引表,一个周期的检测结束后更新索引表。特别地,对于接收到的对应不同合法ID的第一个CAN帧,用第一个CAN帧的数据域语义值、接收时间更新索引表中上一帧的数据域语义值、上一帧的接收时间两个参数,但不进行与这两个参数相关的异常检测。0035表1CAN帧索引表00360037检测函数包括对CAN帧的ID、统计特性、语义范围和语义相关性的检测。具体地,00。
27、381、对于来自网关的CAN帧的合法性检测包括00391ID检测为将帧格式正确的CAN帧的ID与第一CAN帧索引表比对,若第一CAN帧索引表中不存在该ID,则丢弃此CAN帧并报警,反之则判定CAN帧的ID合法。0040具体地,ID检测函数的输入参数为CAN帧的ID,利用二分法查找第一CAN帧索引表,如果在第一CAN帧索引表中未查到此ID,则判定该CAN帧为一个攻击帧,丢弃并报警;如果查找到此ID,返回此ID在第一CAN帧索引表中的存储地址,并将存储地址作为基准地说明书CN104301177A5/11页8址,调用第一CAN帧索引表其它参数时可以直接利用此存储地址和其它参数的偏移地址。00412统。
28、计特性检测为检测ID相同的CAN帧的传输速率,若传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈的次数达到预设数值,即阈值计数值达到某一限值则判定CAN帧非法并报警,反之,则判定CAN帧合法。0042例如,检测ID相同的CAN帧的传输速率是否过高,可以通过比较相同ID的CAN帧的接收时间间隔与帧时间间隔阈值进行判断。如果接收时间间隔大于帧时间间隔阈值,则阈值计数值更新为0。如果接收时间间隔小于帧时间间隔阈值,则阈值计数值增加1并在CAN索引表中更新。当阈值计数值等于某个值N时,连续N个CAN帧的发送速率过高,判定遭到攻击并报警,并将阈值计数值更新为0。如果阈值计数值不为0且小于。
29、N,判定此CAN帧合法。0043进一步地,可以通过调整统计特性检测函数中的N值设置不同的安全级别,N越小安全级别越高。00443语义范围检测检测CAN帧的数据域语义值是否在预设范围内,若是,则判定CAN帧合法,反之,则判定CAN帧非法并报警。0045如果CAN帧的数据域语义值超过其ID对应的CAN索引表中数据域语义值的最大值或者低于数据域语义值的最小值,则判定CAN帧遭到攻击并报警,反之,则判定CAN帧合法。00464语义相关性检测检测CAN帧的数据域语义值的变化速率是否大于相关性阈值,若是,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0047具体地,CAN帧的ID对应的数据域语义值的。
30、变化速率即CAN帧与相同ID的上一CAN帧的数据域语义值的差值与接收时间间隔的比值,如果大于相关性阈值,判定该CAN帧非法并报警,反之,则判定CAN帧合法。0048特别地,在实际运行中,检测结束后,需更新第一CAN帧索引表中上一CAN帧的接收时间、上一CAN帧的数据域语义值两个参数。0049需要指出的是,由于远程帧不包含数据域部分,因此对远程帧只进行帧格式检测、标识符ID检测和统计检测。00502、对于来自CAN子网的CAN帧的合法性检测包括00511ID检测为将帧格式正确的CAN帧的ID与第二CAN帧索引表比对,若第二CAN帧索引表中不存在该ID,则丢弃此CAN帧并报警,反之则判定CAN帧的。
31、ID合法。0052具体地,ID检测函数的输入参数为CAN帧的ID,利用二分法查找第二CAN帧索引表,如果在第二CAN帧索引表中未查到此ID,则判定该CAN帧为一个攻击帧,丢弃并报警;如果查找到此ID,返回此ID在第二CAN帧索引表中的存储地址,并将存储地址作为基准地址,调用第二CAN帧索引表其它参数时可以直接利用此存储地址和其它参数的偏移地址。00532统计特性检测为检测ID相同的CAN帧的传输速率,若传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈的次数达到预设数值,即阈值计数值达到某一限值,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0054例如,检测与ID相同的C。
32、AN帧的传输速率是否过高,可以通过比较相同ID的CAN帧的接收时间间隔与帧时间间隔阈值进行判断。如果接收时间间隔大于帧时间间隔阈值,则阈值计数值更新为0。如果接收时间间隔小于帧时间间隔阈值,则阈值计数值增加1并在说明书CN104301177A6/11页9CAN索引表中更新。当阈值计数值等于某个值N时,连续N个CAN帧的发送速率过高,判定遭到攻击并报警,并将阈值计数值更新为0。如果阈值计数值不为0且小于N,判定此CAN帧合法。0055进一步地,可以通过调整统计特性检测函数中的N值设置不同的安全级别,N越小安全级别越高。00563语义范围检测检测CAN帧的数据域语义值是否在预设范围内,若是,则判定。
33、CAN帧合法,反之,则判定CAN帧非法并报警。0057如果CAN帧的数据域语义值超过其ID对应的CAN索引表中数据域语义值的最大值或者低于数据域语义值的最小值,则判定CAN帧遭到攻击并报警,反之,则判定CAN帧合法。00584语义相关性检测检测CAN帧的数据域语义值的变化速率是否大于相关性阈值,若是,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0059具体地,CAN帧的ID对应的数据域语义值的变化速率即CAN帧与相同ID的上一CAN帧的数据域语义值的差值与接收时间差值的比值,如果大于相关性阈值,判定该CAN帧非法并报警,反之,则判定CAN帧合法。0060特别地,在实际运行中,检测结束后。
34、,需更新第二CAN帧索引表中上一CAN帧的接收时间、上一CAN帧的数据域语义值两个参数。0061需要指出的是,由于远程帧不包含数据域部分,因此对远程帧只进行帧格式检测、标识符ID检测和统计特性检测。0062步骤S104,如果CAN帧合法,则发送CAN帧至网关或CAN子网。0063根据本发明实施例的CAN报文的异常检测方法,通过建立与车辆的CAN总线的网关和CAN子网的连接,从CAN总线的网关和CAN子网接收CAN帧;判断CAN帧的帧格式是否正确,如果CAN帧的帧格式错误,则丢弃CAN帧并报警;如果CAN帧的帧格式正确,则进一步调用检测函数对CAN帧进行合法性检测;如果CAN帧非法,则判定CAN。
35、帧异常,丢弃CAN帧并报警。如果CAN帧合法,则发送CAN帧至网关或CAN子网。本发明的CAN报文的异常检测方法简单高效、安全性高、实用性强。0064本发明第二方面的实施例提出一种CAN报文的异常检测系统100,包括第一CAN收发器120、第一CAN控制器122、第二CAN收发器140、第二CAN控制器142、过滤器30、报警器50、微控制器20、第一CAN帧索引表42和第二CAN帧索引表44。0065第一CAN收发器120与网关200连接,从网关200接收CAN帧,CAN帧包括标识符和数据域。第一CAN控制器122用于判断来自网关200的CAN帧的帧格式是否正确。第二CAN收发器140与CA。
36、N子网300连接,从CAN子网300接收CAN帧,CAN帧包括标识符和数据域。第二CAN控制器142用于判断来自CAN子网300的CAN帧的帧格式是否正确。0066过滤器30包括检测函数。报警器50用于报警。0067微控制器20分别与第一CAN控制器122、第二CAN控制器142、过滤器30和报警器50相连,用于在第一CAN控制器122或第二CAN控制器142判定CAN帧的帧格式错误时,丢弃CAN帧并控制报警器50报警,以及在CAN帧的帧格式正确时,调用过滤器30的检测函数对CAN帧进行合法性检测,如果CAN帧非法,则判定CAN帧异常,丢弃CAN帧并报警,其中,检测函数包括对CAN帧的标识符、。
37、统计特性、语义范围和语义相关性的检测。说明书CN104301177A7/11页100068特别地,对来自网关和CAN子网的CAN帧还进行所属帧类型的检测。即,判断接收到的CAN帧为数据帧、远程帧、错误帧、过载帧的一种。需要指出的是远程帧与数据帧的区别在于不包含数据域部分。对于错误帧和过载帧,仅进行帧格式检测。若错误帧和过载帧的帧格式无异常则使其通过检测,否则丢弃并报警。0069与微控制器20相连的第一CAN帧索引表42和第二CAN帧索引表44,检测函数根据预设的第一CAN帧索引表42和第二CAN帧索引表44对CAN帧进行检测,其中,第一CAN帧索引表42包括来自网关200的CAN帧的标识符、C。
38、AN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值。第二CAN帧索引表44包括来自CAN子网300的CAN帧的标识符、CAN帧的标识符对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的语义值和相关性阈值。如表2所示,第一CAN帧索引表或第二CAN帧索引表包括CAN帧合法的ID、CAN帧合法的ID对应的数据域语义值的最大值和最小值、帧时间间隔阈值、阈值计数值、上一帧的接收时间、上一帧的数据域语义值和相关性阈值等参数。在实现本发明的CAN报文异常检测方法之初,需对索引表进行初始化,其中,。
39、阈值计数值初始化为0。并在实施过程中,检测函数调用索引表,一个周期的检测结束后更新索引表。特别地,对于接收到的对应不同合法ID的第一个CAN帧,用第一个CAN帧的数据域语义值、接收时间更新索引表中上一帧的接收时间、上一帧的数据域语义值两个参数,但不进行与这两个参数相关的异常检测。使用本发明的系统100与CAN总线网络相连,供电后即在对第一CAN帧索引表42和第二CAN帧索引表44进行初始化。其中,阈值计数值初始化为0。并在实施过程中,过滤器30的检测函数调用第一CAN帧索引表42或第二CAN帧索引表44,一个周期的检测结束后更新第一CAN帧索引表42或第二CAN帧索引表44。特别地,对于接收到。
40、的对应不同合法ID的第一个CAN帧,用第一个CAN帧的数据域语义值、接收时间更新索引表中上一帧的接收时间、上一帧的数据域语义值两个参数,但不进行与这两个参数相关的异常检测。0070表2CAN帧索引表00710072在本发明的一个实施例中,过滤器30的检测函数包括对CAN帧的ID、统计特性、语义范围和语义相关性的检测。具体地,00731、对于来自网关200的CAN帧的合法性检测包括00741ID检测为将帧格式正确的CAN帧的ID与第一CAN帧索引表42比对,若第一CAN帧索引表42中不存在该ID,则丢弃此CAN帧并报警,反之则判定CAN帧的ID合法。0075具体地,ID检测函数的输入参数为CAN。
41、帧的ID,利用二分法查找第一CAN帧索引说明书CN104301177A108/11页11表42,如果在第一CAN帧索引表42中未查到此ID,则判定该CAN帧为一个攻击帧,丢弃并报警;如果查找到此ID,返回此ID在第一CAN帧索引表42中的存储地址,并将存储地址作为基准地址,调用第一CAN帧索引表42其它参数时可以直接利用此存储地址和其它参数的偏移地址。00762统计特性检测为检测ID相同的CAN帧的传输速率,若传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈的次数达到预设数值,即阈值计数值达到某一限值,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0077例如,检测ID相。
42、同的CAN帧的传输速率是否过高,可以通过比较相同ID的CAN帧的接收时间间隔与时间间隔阈值进行判断。如果接收时间间隔大于帧时间间隔阈值,则阈值计数值更新为0。如果接收时间间隔小于帧时间间隔阈值,则阈值计数值增加1并在CAN索引表中更新。当阈值计数值等于某个值N时,连续N个CAN帧的发送速率过高,判定CAN帧遭到攻击并报警,并将阈值计数值更新为0。如果阈值计数值不为0且小于N,判定此CAN帧合法。0078进一步地,可以通过调整统计检测函数中的N值设置不同的安全级别,N越小安全级别越高。00793语义范围检测检测CAN帧的数据域语义值是否在预设范围内,若是,则判定CAN帧合法,反之,则判定CAN帧。
43、非法并报警。0080如果CAN帧的数据域语义值超过其ID对应的CAN索引表中数据域语义值的最大值或者低于数据域语义值的最小值,则判定CAN帧遭到攻击并报警,反之,则判定CAN帧合法。00814语义相关性检测检测CAN帧的数据域语义值的变化速率是否大于相关性阈值,若是,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0082具体地,CAN帧的ID对应的数据域语义值的变化速率即CAN帧与相同ID的上一CAN帧的数据域语义值的差值与接收时间差值的比值,如果大于相关性阈值,判定该CAN帧非法并报警,反之,则判定CAN帧合法。0083特别地,在实际运行中,检测结束后,需更新第一CAN帧索引表42中上。
44、一CAN帧的接收时间、上一CAN帧的数据域语义值两个参数。0084需要指出的是,由于远程帧不包含数据域部分,因此对远程帧只进行帧格式检测、标识符ID检测和统计特性检测。00852、对于来自CAN子网300的CAN帧的合法性检测包括00861ID检测为将帧格式正确的CAN帧的ID与第二CAN帧索引表44比对,若第二CAN帧索引表44中不存在该ID,则丢弃此CAN帧并报警,反之则判定CAN帧的ID合法。0087具体地,ID检测函数的输入参数为CAN帧的ID,利用二分法查找第二CAN帧索引表44,如果在第二CAN帧索引表44中未查到此ID,则判定该CAN帧为一个攻击帧,丢弃并报警;如果查找到此ID,。
45、返回此ID在第二CAN帧索引表44中的存储地址,并将存储地址作为基准地址,调用第二CAN帧索引表44其它参数时可以直接利用此存储地址和其它参数的偏移地址。00882统计特性检测为检测ID相同的CAN帧的传输速率,若传输速率大于或者等于预设阈值且所述传输速率连续大于或者等于预设阈的次数达到预设数值,即阈值计数值说明书CN104301177A119/11页12达到某一限值,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0089例如,检测ID相同的CAN帧的传输速率是否过高,可以通过比较相同ID的CAN帧的接收时间间隔与时间间隔阈值进行判断。如果接收时间间隔大于帧时间间隔阈值,则阈值计数值更新。
46、为0。如果接收时间间隔小于帧时间间隔阈值,则阈值计数值增加1并在CAN索引表中更新。当阈值计数值等于某个值N时,连续N个CAN帧的发送速率过高,判定遭到攻击并报警,并将阈值计数值更新为0。如果阈值计数值不为0且小于N,判定此CAN帧合法。0090进一步地,可以通过调整统计检测函数中的N值设置不同的安全级别,N越小安全级别越高。00913语义范围检测检测CAN帧的数据域语义值是否在预设范围内,若是,则判定CAN帧合法,反之,则判定CAN帧非法并报警。0092如果CAN帧的数据域语义值超过其ID对应的CAN索引表中数据域语义值的最大值或者低于数据域语义值的最小值,则判定CAN帧遭到攻击并报警,反之。
47、,则判定CAN帧合法。4语义相关性检测检测CAN帧的数据域语义值的变化速率是否大于相关性阈值,若是,则判定CAN帧非法并报警,反之,则判定CAN帧合法。0093具体地,CAN帧的ID对应的数据域语义值的变化速率即CAN帧与相同ID的上一CAN帧的数据域语义值的差值与接收时间间隔的比值,如果大于相关性阈值,判定该CAN帧非法并报警,反之,则判定CAN帧合法。0094特别地,在实际运行中,检测结束后,需更新第二CAN帧索引表44中上一CAN帧的接收时间、上一CAN帧的数据域语义值两个参数。0095需要指出的是,由于远程帧不包含数据域部分,因此对远程帧只进行帧格式检测、标识符ID检测和统计特性检测。。
48、0096进一步地,当过滤器30检测来自网关200或CAN子网300的CAN帧合法后,在微控制器20的控制下,通过第一CAN收发器120或第二CAN收发器140发送合法的CAN帧至网关200或CAN子网300。0097具体地,以图2为例,具体说明本发明的用于汽车CAN总线的异常检测系统100的工作过程00981当第一CAN收发器120接收到来自网关200的CAN帧时,微控制器20控制第一CAN控制器122实现对CAN帧的帧格式检测。0099若CAN帧的帧格式正确,则第一CAN控制器122发送数据帧至微控制器20。反之,则丢弃数据帧并通过微控制器20触发报警器50报警。微控制器20将帧格式正确的C。
49、AN帧发送至过滤器30。0100过滤器30接收到帧格式正确的CAN帧并进行ID检测、统计特性检测、语义范围检测和语义相关性检测。当其中任意一个检测函数检测到CAN帧非法时,即丢弃CAN帧,并通过微控制器20触发报警器报警。01012当第二CAN收发器140接收到来自CAN子网300的CAN帧时,通过第二CAN控制器142发送信号至微控制器20,微控制器20控制第二CAN控制器142实现对CAN帧的帧格式检测。0102若CAN帧的帧格式正确,则第二CAN控制器142发送数据帧至微控制器20。反之,说明书CN104301177A1210/11页13则丢弃数据帧并通过微控制器20触发报警器50报警。微控制器20将帧格式正确的CAN帧发送至过滤器30。过滤器30接收到帧格式正确的CAN帧并进行ID检测、统计特性检测、语义范围检测和语义相关性检测。当其中任意一个检测函数检测到CAN帧非法时,即丢弃CAN帧,并通过微控制器20触发报警器报警。0103当上述的合法性检测通过后,微控制器控制第一CAN收发器120或第二CAN收发器140将合法的CAN帧发送至网关200或CAN子网300。0104根据本发明实施例的CAN报文的异常检测系统,通过第一CAN收发器和第二CAN收发器建立与车辆的CAN总线网络的连接,并从CAN总线网络的网关和CAN子网接收CAN帧。第一CAN控制器和第二CAN控制器判断。