基于FPGA的车载网络入侵检测系统及消息位时采集方法转让专利

申请号 : CN202110946014.2

文献号 : CN113395296B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏叶华程灿林佳颖朱露张锦

申请人 : 湖南师范大学

摘要 :

本发明提供了一种基于FPGA的车载网络入侵检测系统及消息位时采集方法,包括:步骤1,通过数据采集模块对汽车与CAN总线通信单元正常通信时CAN总线通信单元传输的数据帧进行采集,数据采集模块对当前数据帧中的正在通信的电子控制单元的ID进行提取并计算位时间;步骤2,数据采集模块将获取的当前通信的电子控制单元的ID和位时间输入计算机中并存储;步骤3,重复执行步骤1至步骤2,直到数据采集时间达到设定的阈值时执行步骤4。本发明通过基于FPGA部署入侵检测系统进行采集与检测,数据采集延迟时间小,数据采样率和数据采样精度高,对于汽车总线上伪装攻击的检测更准确、更快速。

权利要求 :

1.一种基于FPGA的车载网络入侵检测系统的消息位时采集方法,其特征在于,包括基于FPGA的车载网络入侵检测系统,所述系统包括:数据采集模块,所述数据采集模块的第一端与CAN总线通信单元电连接,所述数据采集模块部署在FPGA上,所述CAN总线通信单元包括多个电子控制单元,每个电子控制单元均包括微处理器和CAN接口;

检测模型构建模块,所述检测模型构建模块的第一端与所述数据采集模块的第二端电连接,所述检测模型构建模块中部署有多项逻辑回归模型,所述检测模型构建模块部署在计算机中;

入侵检测执行模块,所述入侵检测执行模块的第一端与所述数据采集模块的第二端电连接,所述入侵检测执行模块的第二端与所述检测模型构建模块的第二端电连接,所述入侵检测执行模块部署在FPGA上;

所述数据采集模块包括:

CAN总线电平转换单元,所述CAN总线电平转换单元的第一端与所述CAN总线通信单元电连接;

加速倍频单元,所述加速倍频单元的第一端与所述CAN总线电平转换单元的第二端电连接;

信号数据采集单元,所述信号数据采集单元的第一端与所述加速倍频单元的第二端电连接;

信号数据解析单元,所述信号数据解析单元的第一端与所述信号数据采集单元的第二端电连接;

位时数据计算单元,所述位时数据计算单元的第一端与所述信号数据解析单元的第二端电连接;

结果传输单元,所述结果传输单元的第一端与所述位时数据计算单元的第二端电连接;

所述检测模型构建模块包括:

第一特征提取单元,所述第一特征提取单元的第一端与所述结果传输单元的第二端电连接;

特征选择单元,所述特征选择单元的第一端与所述第一特征提取单元的第二端电连接;

检测模型构建单元,所述检测模型构建单元的第一端与所述特征选择单元的第二端电连接;

所述入侵检测执行模块包括:

第二特征提取单元,所述第二特征提取单元的第一端与所述结果传输单元的第二端电连接;

实时检测单元,所述实时检测单元的第一端与所述第二特征提取单元的第二端电连接,所述实时检测单元的第二端与所述检测模型构建单元的第二端电连接;

检测输出单元,所述检测输出单元的第一端与所述实时检测单元的第三端电连接;

所述基于FPGA的车载网络入侵检测系统的消息位时采集方法,包括:步骤1,通过数据采集模块对汽车与CAN总线通信单元正常通信时CAN总线通信单元传输的数据帧进行采集,数据采集模块对当前数据帧中的正在通信的电子控制单元的ID进行提取并计算位时间;

步骤2,数据采集模块将获取的当前通信的电子控制单元的ID和位时间输入计算机中并存储;

步骤3,重复执行步骤1至步骤2,直到数据采集时间达到设定的阈值时执行步骤4;

步骤4,检测模型构建模块将位时存储文档中的所有位时数据作为位时数据样本并进行特征处理,得到第一特征数据,根据第一特征数据对多项逻辑回归模型进行训练,得到入侵检测模型,将入侵检测模型写入入侵检测执行模块的实时检测单元;

步骤5,实际汽车正常通信时,通过数据采集模块采集CAN总线通信单元传输的数据帧并实时计算出当前通信的电子控制单元的ID和位时间;

步骤6,将实时获取的当前通信的电子控制单元的ID和位时间输入入侵检测执行模块,入侵检测执行模块对位时数据进行特征处理,得到第二特征数据;

步骤7,将第二特征数据输入入侵检测模型进行实时检测,入侵检测模型输出实时检测结果,将实时检测结果与位时存储文档进行匹配,得到匹配情况,检测输出单元根据匹配情况推测出CAN总线通信单元当前输出的数据帧上是否遭受伪装攻击;

所述步骤1具体包括:

步骤11,CAN总线电平转换单元通过高速比较器对CAN总线通信单元传输的宽电压范围周期信号进行整形,将宽电压范围周期信号转换为高低电平电压并将转换后的信号数据传输给FPGA;

步骤12,在FPGA内部通过加速倍频单元对FPGA的采样频率进行倍频;

步骤13,信号数据传输到信号数据采集单元后,信号数据采集单元根据FPGA内部逻辑采用打点式采集模式进行位时数据采集并将采集到的位时数据传输到信号数据解析单元;

步骤131,从数据帧的帧起始位开始采集位时数据,帧结束位停止采集位时数据,其中,每个高低脉冲作为一个数据;

步骤132,通过将数据帧中每一位的计数点个数乘以七判断是否到达帧结束位;

步骤133,计算数据帧中每一位的计数点个数,如下所示:(1)

其中,BC表示数据帧中每一位的计数点个数,CANfreq表示数据帧的频率,PLfreq表示FPGA的PL端的时钟频率;

步骤14,信号数据解析单元将采集的位时数据中的逆转电平进行删除,解析出当前通信的电子控制单元的ID和位时数据并传输到位时数据计算单元;

步骤15,位时数据计算单元根据解析出的位时数据初步估计高脉冲和低脉冲对应的位数,并通过以下公式计算出位时间,如下所示:  (2)

其中,BT表示位时间,val表示FPGA的PL端读出的计数点个数值;

步骤16,结果传输单元将计算出的位时间和当前通信的电子控制单元的ID传输到计算机中。

2.根据权利要求1所述的基于FPGA的车载网络入侵检测系统的消息位时采集方法,其特征在于,所述步骤2具体包括:步骤21,计算机接收到结果传输单元传输的计算出的位时间和当前通信的电子控制单元的ID后,判断计算机中的位时存储文档中是否有电子控制单元的ID,当计算机中的位时存储文档中没有电子控制单元的ID时,在位时存储文档中构建以当前通信的电子控制单元的ID命名的表格,并将当前通信的电子控制单元的ID对应的位时间填入当前通信的电子控制单元的ID的表格中;

步骤22,当计算机中的位时存储文档中有电子控制单元的ID时,判断当前通信的电子控制单元的ID与位时存储文档中的电子控制单元的ID是否一致,当当前通信的电子控制单元的ID与位时存储文档中的电子控制单元的ID一致时,将当前通信的电子控制单元的ID对应的位时间录入位时存储文档中对应的电子控制单元的ID的表格中;

步骤23,当当前通信的电子控制单元的ID与位时存储文档中的电子控制单元的ID不一致时,在位时存储文档中构建以当前通信的电子控制单元的ID命名的表格,并将当前通信的电子控制单元的ID对应的位时间填入当前通信的电子控制单元的ID的表格中。

3.根据权利要求2所述的基于FPGA的车载网络入侵检测系统的消息位时采集方法,其特征在于,所述步骤4具体包括:步骤41,通过特征选择单元和第一特征提取单元对位时数据样本进行特征选择与特征提取,将提取出的均值、标准偏差、方差、偏度系数和峰度值作为第一特征数据;

步骤42,根据第一特征数据通过k折交叉验证法构建训练样本集和测试样本集,将电子控制单元的ID作为数据标签;

步骤43,根据训练样本集对多项逻辑回归模型执行迭代训练,并保存每轮迭代得到的多项逻辑回归模型;

步骤44,计算每轮迭代得到的多项逻辑回归模型在测试样本集上的精度,将精度最高的多项逻辑回归模型作为入侵检测模型,并将入侵检测模型写入实时检测单元。

4.根据权利要求3所述的基于FPGA的车载网络入侵检测系统的消息位时采集方法,其特征在于,所述步骤6具体包括:步骤61,通过入侵检测执行模块的第二特征提取单元对输入的实时计算出的位时间进行特征提取,将提取出的均值、标准偏差、方差、偏度系数和峰度值作为第二特征数据。

5.根据权利要求4所述的基于FPGA的车载网络入侵检测系统的消息位时采集方法,其特征在于,所述步骤7具体包括:步骤71,将第二特征数据输入入侵检测模型进行实时检测,入侵检测模型输出实时检测结果;

步骤72,判断实时检测结果中的电子控制单元的ID是否与数据采集模块解析出的电子控制单元的ID相匹配;

步骤73,当实时检测结果中的电子控制单元的ID与数据采集模块解析出的电子控制单元的ID相匹配时,检测输出单元输出CAN总线通信单元当前输出的数据帧上未遭受伪装攻击,并将实时检测结果中的电子控制单元的ID对应的位时间存入位时存储文档中对应的电子控制单元的ID的表格中;

步骤74,当实时检测结果中的电子控制单元的ID与数据采集模块解析出的电子控制单元的ID不匹配时,给出非法警告,检测输出单元输出CAN总线通信单元当前输出的数据帧上遭受伪装攻击。

说明书 :

基于FPGA的车载网络入侵检测系统及消息位时采集方法

技术领域

[0001] 本发明涉及汽车网络通信技术领域,特别涉及一种基于FPGA的车载网络入侵检测系统及消息位时采集方法。

背景技术

[0002] 随着先进传感器、智能驾驶和车联网技术的不断发展和应用,汽车朝着智能化、网联化方向不断演变,车载电子系统也越来越复杂,车内外环境感知与交互也逐渐增加,打破
了传统汽车的闭环系统,同时也带来了信息安全威胁,为攻击者入侵车辆、俘获电子控制单
元(ECU)和破坏汽车的正常驾驶提供了可能。
[0003] CAN总线是当今应用最广泛的车载通信协议,由于它最初的设计考虑是汽车在一个孤立的环境中工作,没有考虑信息安全问题,CAN采用广播通信,无认证机制,攻击者一旦
侵入车载网络,就可以伪装成合法ECU,注入恶意帧来控制车辆驾驶行为,威胁驾驶员的人
身安全。由于CAN报文DATA字段长度限制,以及车载系统时效性和成本的约束,基于现有汽
车电子系统实现加解密和认证协议具有一定的难度。入侵检测系统由于实现简单,在车载
网络安全上具有一定的实用性。
[0004] FPGA作为一种硬件可重构的体系结构,具有硬件逻辑可编程特性,可以方便灵活的集成多种总线控制器接口模块,实现高效的信息交互。利用FPGA将各类总线控制器设计
成IP核组件,与嵌入式处理器软核互连,可以灵活快捷地实现不同需求的新一代高性能车
用网关,并且可以实现多核网关系统,有效提升网关处理性能与可靠性。因此,本发明采用
FPGA技术实现车载网络消息的位时采集,并依此实现伪装攻击检测。

发明内容

[0005] 本发明提供了一种基于FPGA的车载网络入侵检测系统及消息位时采集方法,其目的是为了解决CAN总线容易受到伪装攻击,驾驶员的人身安全存在威胁的问题。
[0006] 为了达到上述目的,本发明的实施例提供了一种基于FPGA的车载网络入侵检测系统,包括:
[0007] 数据采集模块,所述数据采集模块的第一端与CAN总线通信单元电连接,所述数据采集模块部署在FPGA上,所述CAN总线通信单元包括多个电子控制单元,每个电子控制单元
均包括微处理器和CAN接口;
[0008] 检测模型构建模块,所述检测模型构建模块的第一端与所述数据采集模块的第二端电连接,所述检测模型构建模块中部署有多项逻辑回归模型,所述检测模型构建模块部
署在计算机中;
[0009] 入侵检测执行模块,所述入侵检测执行模块的第一端与所述数据采集模块的第二端电连接,所述入侵检测执行模块的第二端与所述检测模型构建模块的第二端电连接,所
述入侵检测执行模块部署在FPGA上。
[0010] 其中,所述数据采集模块包括:
[0011] CAN总线电平转换单元,所述CAN总线电平转换单元的第一端与所述CAN总线通信单元电连接;
[0012] 加速倍频单元,所述加速倍频单元的第一端与所述CAN总线电平转换单元的第二端电连接;
[0013] 信号数据采集单元,所述信号数据采集单元的第一端与所述加速倍频单元的第二端电连接;
[0014] 信号数据解析单元,所述信号数据解析单元的第一端与所述信号数据采集单元的第二端电连接;
[0015] 位时数据计算单元,所述位时数据计算单元的第一端与所述信号数据解析单元的第二端电连接;
[0016] 结果传输单元,所述结果传输单元的第一端与所述位时数据计算单元的第二端电连接。
[0017] 其中,所述检测模型构建模块包括:
[0018] 第一特征提取单元,所述第一特征提取单元的第一端与所述结果传输单元的第二端电连接;
[0019] 特征选择单元,所述特征选择单元的第一端与所述第一特征提取单元的第二端电连接;
[0020] 检测模型构建单元,所述检测模型构建单元的第一端与所述特征选择单元的第二端电连接。
[0021] 其中,所述入侵检测执行模块包括:
[0022] 第二特征提取单元,所述第二特征提取单元的第一端与所述结果传输单元的第二端电连接;
[0023] 实时检测单元,所述实时检测单元的第一端与所述第二特征提取单元的第二端电连接,所述实时检测单元的第二端与所述检测模型构建单元的第二端电连接;
[0024] 检测输出单元,所述检测输出单元的第一端与所述实时检测单元的第三端电连接。
[0025] 本发明的实施例还提供了一种基于FPGA的车载网络入侵检测系统的消息位时采集方法,包括:
[0026] 步骤1,通过数据采集模块对汽车与CAN总线通信单元正常通信时CAN总线通信单元传输的数据帧进行采集,数据采集模块对当前数据帧中的正在通信的电子控制单元的ID
进行提取并计算位时间;
[0027] 步骤2,数据采集模块将获取的当前通信的电子控制单元的ID和位时间输入计算机中并存储;
[0028] 步骤3,重复执行步骤1至步骤2,直到数据采集时间达到设定的阈值时执行步骤4;
[0029] 步骤4,检测模型构建模块将位时存储文档中的所有位时数据作为位时数据样本并进行特征处理,得到第一特征数据,根据第一特征数据对多项逻辑回归模型进行训练,得
到入侵检测模型,将入侵检测模型写入入侵检测执行模块的实时检测单元;
[0030] 步骤5,实际汽车正常通信时,通过数据采集模块采集CAN总线通信单元传输的数据帧并实时计算出当前通信的电子控制单元的ID和位时间;
[0031] 步骤6,将实时获取的当前通信的电子控制单元的ID和位时间输入入侵检测执行模块,入侵检测执行模块对位时数据进行特征处理,得到第二特征数据;
[0032] 步骤7,将第二特征数据输入入侵检测模型进行实时检测,入侵检测模型输出实时检测结果,将实时检测结果与位时存储文档进行匹配,得到匹配情况,检测输出单元根据匹
配情况推测出CAN总线通信单元当前输出的数据帧上是否遭受伪装攻击。
[0033] 其中,所述步骤1具体包括:
[0034] 步骤11,CAN总线电平转换单元通过高速比较器对CAN总线通信单元传输的宽电压范围周期信号进行整形,将宽电压范围周期信号转换为高低电平电压并将转换后的信号数
据传输给FPGA;
[0035] 步骤12,在FPGA内部通过加速倍频单元对FPGA的采样频率进行倍频;
[0036] 步骤13,信号数据传输到信号数据采集单元后,信号数据采集单元根据FPGA内部逻辑采用打点式采集模式进行位时数据采集并将采集到的位时数据传输到信号数据解析
单元;
[0037] 步骤131,从数据帧的帧起始位开始采集位时数据,帧结束位停止采集位时数据,其中,每个高低脉冲作为一个数据;
[0038] 步骤132,通过将数据帧中每一位的计数点个数乘以七判断是否到达帧结束位;
[0039] 步骤133,计算数据帧中每一位的计数点个数,如下所示:
[0040] (1)
[0041] 其中,BC表示数据帧中每一位的计数点个数,CANfreq表示数据帧的频率,PLfreq表示FPGA的PL端的时钟频率;
[0042] 步骤14,信号数据解析单元将采集的位时数据中的逆转电平进行删除,解析出当前通信的电子控制单元的ID和位时数据并传输到位时数据计算单元;
[0043] 步骤15,位时数据计算单元根据解析出的位时数据初步估计高脉冲和低脉冲对应的位数,并通过以下公式计算出位时间,如下所示:
[0044] (2)
[0045] 其中,BT表示位时间,val表示FPGA的PL端读出的计数点个数值;
[0046] 步骤16,结果传输单元将计算出的位时间和当前通信的电子控制单元的ID传输到计算机中。
[0047] 其中,所述步骤2具体包括:
[0048] 步骤21,计算机接收到结果传输单元传输的计算出的位时间和当前通信的电子控制单元的ID后,判断计算机中的位时存储文档中是否有电子控制单元的ID,当计算机中的
位时存储文档中没有电子控制单元的ID时,在位时存储文档中构建以当前通信的电子控制
单元的ID命名的表格,并将当前通信的电子控制单元的ID对应的位时间填入当前通信的电
子控制单元的ID的表格中;
[0049] 步骤22,当计算机中的位时存储文档中有电子控制单元的ID时,判断当前通信的电子控制单元的ID与位时存储文档中的电子控制单元的ID是否一致,当当前通信的电子控
制单元的ID与位时存储文档中的电子控制单元的ID一致时,将当前通信的电子控制单元的
ID对应的位时间录入位时存储文档中对应的电子控制单元的ID的表格中;
[0050] 步骤23,当当前通信的电子控制单元的ID与位时存储文档中的电子控制单元的ID不一致时,在位时存储文档中构建以当前通信的电子控制单元的ID命名的表格,并将当前
通信的电子控制单元的ID对应的位时间填入当前通信的电子控制单元的ID的表格中。
[0051] 其中,所述步骤4具体包括:
[0052] 步骤41,通过特征选择单元和第一特征提取单元对位时数据样本进行特征选择与特征提取,将提取出的均值、标准偏差、方差、偏度系数和峰度值作为第一特征数据;
[0053] 步骤42,根据第一特征数据通过k折交叉验证法构建训练样本集和测试样本集,将电子控制单元的ID作为数据标签;
[0054] 步骤43,根据训练样本集对多项逻辑回归模型执行迭代训练,并保存每轮迭代得到的多项逻辑回归模型;
[0055] 步骤44,计算每轮迭代得到的多项逻辑回归模型在测试样本集上的精度,将精度最高的多项逻辑回归模型作为入侵检测模型,并将入侵检测模型写入实时检测单元。
[0056] 其中,所述步骤6具体包括:
[0057] 步骤61,通过入侵检测执行模块的第二特征提取单元对输入的实时计算出的位时间进行特征提取,将提取出的均值、标准偏差、方差、偏度系数和峰度值作为第二特征数据。
[0058] 其中,所述步骤7具体包括:
[0059] 步骤71,将第二特征数据输入入侵检测模型进行实时检测,入侵检测模型输出实时检测结果;
[0060] 步骤72,判断实时检测结果中的电子控制单元的ID是否与数据采集模块解析出的电子控制单元的ID相匹配;
[0061] 步骤73,当实时检测结果中的电子控制单元的ID与数据采集模块解析出的电子控制单元的ID相匹配时,检测输出单元输出CAN总线通信单元当前输出的数据帧上未遭受伪
装攻击,并将实时检测结果中的电子控制单元的ID对应的位时间存入位时存储文档中对应
的电子控制单元的ID的表格中;
[0062] 步骤74,当实时检测结果中的电子控制单元的ID与数据采集模块解析出的电子控制单元的ID不匹配时,给出非法警告,检测输出单元输出CAN总线通信单元当前输出的数据
帧上遭受伪装攻击。
[0063] 本发明的上述方案有如下的有益效果:
[0064] 本发明的上述实施例所述的基于FPGA的车载网络入侵检测系统及消息位时采集方法,数据采集延迟时间小,通过加速倍频单元对FPGA的频率进行倍频,提高了采样率和采
样精度,能够更准确、快速地识别汽车总线上伪装攻击,达到实时检测的目的,驾驶人员的
人身安全得到保障,增强了车载网络的安全性,兼顾了车载网络特点和实际约束。

附图说明

[0065] 图1为本发明的流程图;
[0066] 图2为本发明的结构框图;
[0067] 图3为本发明的具体结构框图;
[0068] 图4为本发明的锁相环移相倍频示意图。
[0069] 【附图标记说明】
[0070] 1‑CAN总线通信单元;2‑数据采集模块;3‑检测模型构建模块;4‑入侵检测执行模块;5‑CAN总线电平转换单元;6‑加速倍频单元;7‑信号数据采集单元;8‑信号数据解析单
元;9‑位时数据计算单元;10‑结果传输单元;11‑第一特征提取单元;12‑特征选择单元;13‑
检测模型构建单元;14‑第二特征提取单元;15‑实时检测单元;16‑检测输出单元。

具体实施方式

[0071] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0072] 本发明针对现有的CAN总线容易受到伪装攻击,驾驶员的人身安全存在威胁的问题,提供了一种基于FPGA的车载网络入侵检测系统及消息位时采集方法。
[0073] 如图1至图4所示,本发明的实施例提供了一种基于FPGA的车载网络入侵检测系统,包括:数据采集模块2,所述数据采集模块2的第一端与CAN总线通信单元1电连接,所述
数据采集模块2部署在FPGA上,所述CAN总线通信单元1包括多个电子控制单元,每个电子控
制单元均包括微处理器和CAN接口;检测模型构建模块3,所述检测模型构建模块3的第一端
与所述数据采集模块2的第二端电连接,所述检测模型构建模块3中部署有多项逻辑回归模
型,所述检测模型构建模块3部署在计算机中;入侵检测执行模块4,所述入侵检测执行模块
4的第一端与所述数据采集模块2的第二端电连接,所述入侵检测执行模块4的第二端与所
述检测模型构建模块3的第二端电连接,所述入侵检测执行模块4部署在FPGA上。
[0074] 其中,所述数据采集模块2包括:CAN总线电平转换单元5,所述CAN总线电平转换单元5的第一端与所述CAN总线通信单元1电连接;加速倍频单元6,所述加速倍频单元6的第一
端与所述CAN总线电平转换单元5的第二端电连接;信号数据采集单元7,所述信号数据采集
单元7的第一端与所述加速倍频单元6的第二端电连接;信号数据解析单元8,所述信号数据
解析单元8的第一端与所述信号数据采集单元7的第二端电连接;位时数据计算单元9,所述
位时数据计算单元9的第一端与所述信号数据解析单元8的第二端电连接;结果传输单元
10,所述结果传输单元10的第一端与所述位时数据计算单元9的第二端电连接。
[0075] 其中,所述检测模型构建模块3包括:第一特征提取单元11,所述第一特征提取单元11的第一端与所述结果传输单元10的第二端电连接;特征选择单元12,所述特征选择单
元12的第一端与所述第一特征提取单元11的第二端电连接;检测模型构建单元13,所述检
测模型构建单元13的第一端与所述特征选择单元12的第二端电连接。
[0076] 其中,所述入侵检测执行模块4包括:第二特征提取单元14,所述第二特征提取单元14的第一端与所述结果传输单元10的第二端电连接;实时检测单元15,所述实时检测单
元15的第一端与所述第二特征提取单元14的第二端电连接,所述实时检测单元15的第二端
与所述检测模型构建单元13的第二端电连接;检测输出单元16,所述检测输出单元16的第
一端与所述实时检测单元15的第三端电连接。
[0077] 本发明的实施例还提供了一种基于FPGA的车载网络入侵检测系统的消息位时采集方法,包括:步骤1,通过数据采集模块对汽车与CAN总线通信单元正常通信时CAN总线通
信单元传输的数据帧进行采集,数据采集模块对当前数据帧中的正在通信的电子控制单元
的ID进行提取并计算位时间;步骤2,数据采集模块将获取的当前通信的电子控制单元的ID
和位时间输入计算机中并存储;步骤3,重复执行步骤1至步骤2,直到数据采集时间达到设
定的阈值时执行步骤4;步骤4,检测模型构建模块将位时存储文档中的所有位时数据作为
位时数据样本并进行特征处理,得到第一特征数据,根据第一特征数据对多项逻辑回归模
型进行训练,得到入侵检测模型,将入侵检测模型写入入侵检测执行模块的实时检测单元;
步骤5,实际汽车正常通信时,通过数据采集模块采集CAN总线通信单元传输的数据帧并实
时计算出当前通信的电子控制单元的ID和位时间;步骤6,将实时获取的当前通信的电子控
制单元的ID和位时间输入入侵检测执行模块,入侵检测执行模块对位时数据进行特征处
理,得到第二特征数据;步骤7,将第二特征数据输入入侵检测模型进行实时检测,入侵检测
模型输出实时检测结果,将实时检测结果与位时存储文档进行匹配,得到匹配情况,检测输
出单元根据匹配情况推测出CAN总线通信单元当前输出的数据帧上是否遭受伪装攻击。
[0078] 其中,所述步骤1具体包括:步骤11,CAN总线电平转换单元通过高速比较器对CAN总线通信单元传输的宽电压范围周期信号进行整形,将宽电压范围周期信号转换为高低电
平电压并将转换后的信号数据传输给FPGA;步骤12,在FPGA内部通过加速倍频单元对FPGA
的采样频率进行倍频;步骤13,信号数据传输到信号数据采集单元后,信号数据采集单元根
据FPGA内部逻辑采用打点式采集模式进行位时数据采集并将采集到的位时数据传输到信
号数据解析单元;步骤131,从数据帧的帧起始位开始采集位时数据,帧结束位停止采集位
时数据,其中,每个高低脉冲作为一个数据;步骤132,通过将数据帧中每一位的计数点个数
乘以七判断是否到达帧结束位;步骤133,计算数据帧中每一位的计数点个数,如下所示:
[0079] (1)
[0080] 其中,BC表示数据帧中每一位的计数点个数,CANfreq表示数据帧的频率,PLfreq表示FPGA的PL端的时钟频率;
[0081] 步骤14,信号数据解析单元将采集的位时数据中的逆转电平进行删除,解析出当前通信的电子控制单元的ID和位时数据并传输到位时数据计算单元;
[0082] 步骤15,位时数据计算单元根据解析出的位时数据初步估计高脉冲和低脉冲对应的位数,并通过以下公式计算出位时间,如下所示:
[0083] (2)
[0084] 其中,BT表示位时间,val表示FPGA的PL端读出的计数点个数值;
[0085] 步骤16,结果传输单元将计算出的位时间和当前通信的电子控制单元的ID传输到计算机中。
[0086] 其中,所述步骤2具体包括:步骤21,计算机接收到结果传输单元传输的计算出的位时间和当前通信的电子控制单元的ID后,判断计算机中的位时存储文档中是否有电子控
制单元的ID,当计算机中的位时存储文档中没有电子控制单元的ID时,在位时存储文档中
构建以当前通信的电子控制单元的ID命名的表格,并将当前通信的电子控制单元的ID对应
的位时间填入当前通信的电子控制单元的ID的表格中;步骤22,当计算机中的位时存储文
档中有电子控制单元的ID时,判断当前通信的电子控制单元的ID与位时存储文档中的电子
控制单元的ID是否一致,当当前通信的电子控制单元的ID与位时存储文档中的电子控制单
元的ID一致时,将当前通信的电子控制单元的ID对应的位时间录入位时存储文档中对应的
电子控制单元的ID的表格中;步骤23,当当前通信的电子控制单元的ID与位时存储文档中
的电子控制单元的ID不一致时,在位时存储文档中构建以当前通信的电子控制单元的ID命
名的表格,并将当前通信的电子控制单元的ID对应的位时间填入当前通信的电子控制单元
的ID的表格中。
[0087] 其中,所述步骤4具体包括:步骤41,通过特征选择单元和第一特征提取单元对位时数据样本进行特征选择与特征提取,将提取出的均值、标准偏差、方差、偏度系数和峰度
值作为第一特征数据;步骤42,根据第一特征数据通过k折交叉验证法构建训练样本集和测
试样本集,将电子控制单元的ID作为数据标签;步骤43,根据训练样本集对多项逻辑回归模
型执行迭代训练,并保存每轮迭代得到的多项逻辑回归模型;步骤44,计算每轮迭代得到的
多项逻辑回归模型在测试样本集上的精度,将精度最高的多项逻辑回归模型作为入侵检测
模型,并将入侵检测模型写入实时检测单元。
[0088] 其中,所述步骤6具体包括:步骤61,通过入侵检测执行模块的第二特征提取单元对输入的实时计算出的位时间进行特征提取,将提取出的均值、标准偏差、方差、偏度系数
和峰度值作为第二特征数据。
[0089] 其中,所述步骤7具体包括:步骤71,将第二特征数据输入入侵检测模型进行实时检测,入侵检测模型输出实时检测结果;步骤72,判断实时检测结果中的电子控制单元的ID
是否与数据采集模块解析出的电子控制单元的ID相匹配;步骤73,当实时检测结果中的电
子控制单元的ID与数据采集模块解析出的电子控制单元的ID相匹配时,检测输出单元输出
CAN总线通信单元当前输出的数据帧上未遭受伪装攻击,并将实时检测结果中的电子控制
单元的ID对应的位时间存入位时存储文档中对应的电子控制单元的ID的表格中;步骤74,
当实时检测结果中的电子控制单元的ID与数据采集模块解析出的电子控制单元的ID不匹
配时,给出非法警告,检测输出单元输出CAN总线通信单元当前输出的数据帧上遭受伪装攻
击。
[0090] 本发明的上述实施例所述的基于FPGA的车载网络入侵检测系统及方法,在所述CAN总线电平转换单元5中利用高速比较器将所述CAN总线通信单元1的数据帧中传输的宽
电压范围周期信号进行整形,使其转换成FPGA能够识别的高低电平电压;在所述加速倍频
单元6利用FPGA内部的锁相环对FPGA的频率进行倍频,使得所述基于FPGA的车载网络入侵
检测系统仅仅需要使用较低的工作频率就能够实现等效1G频率的高频;在所述信号数据采
集单元7利用打点式的采集模式进行数据采集;所述信号数据解析单元8在静默模式下识别
正在通信的电子控制单元的ID;在所述第一特征提取单元11和所述第二特征提取单元14中
分别提取位时数据显性位和隐性位统计特征;所述检测模型构建单元13中的多项逻辑回归
模型使用权重衰减方法避免模型过拟合,应用梯度下降法求解。
[0091] 本发明的上述实施例所述的基于FPGA的车载网络入侵检测系统及消息位时采集方法,如图4将FPGA的PL端时钟频率设置成125M,在所述加速倍频单元6利用FPGA内部的锁
相环八倍频将FPGA的PL端时钟频率扩大为1G,设计锁相环八倍频:首先设计八个频率为
125M的测试信号,分别为不移相信号、1/8移相信号、2/8移相信号、3/8移相信号、4/8移相信
号、5/8移相信号、6/8移相信号和7/8移相信号,当待测信号为高脉冲时,只需要累加这八个
信号中检测到高电平的个数后取平均值就得出其对应计数点个数;当待测信号为低脉冲
时,只需要累加这八个信号中检测到低电平的个数后取平均值就得出其对应计数点个数。
[0092] 本发明的上述实施例所述的基于FPGA的车载网络入侵检测系统及消息位时采集方法,增强了车载网络的安全性,兼顾了车载网络特点和实际约束,能够更准确、快速地识
别汽车总线上伪装攻击,达到实时检测的目的,数据采集延迟时间小,通过加速倍频单元对
FPGA的频率进行倍频,提高了采样率和采样精度,对汽车总线的入侵检测更准确、更快速,
驾驶人员的人身安全得到保障。
[0093] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。