利索能及
我要发布
收藏
专利号: 2024107206992
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于FPGA的加密流量识别与特征提取方法,其特征在于,包括以下步骤:基于在流量采集位置收集的连续的以太网数据包,为每个数据包赋予唯一标号,依据标号将数据包存储在指定的块随机存取存储器BRAM缓冲区内;

解析缓冲区中数据包的头部字段,包含负载长度和五元组字段,通过三阶位混合哈希方法将五元组数据映射到加密流量流表,并输出负载长度信息,该加密流量流表是由BRAM实现的哈希表,若一条流被标记为加密流,则后续数据包能够直接根据五元组的哈希映射来判断是否为加密流量数据包;

根据数据包的负载长度,采用动态负载信息复杂度计算方法计算不同长度数据包的负载信息复杂度,其中若负载长度大于指定数量字节,则截断为固定的指定数量字节,采用查表法计算数据包的负载信息复杂度;若负载长度小于指定数量字节,则对负载进行补0,得到指定数量个字节值,根据事先计算的补0和未补0之间的负载信息复杂度误差,再使用查表法计算数据包的负载信息复杂度;

根据数据包的负载信息复杂度的分布情况计算加密流置信值,根据加密流置信值采用投票机制筛选出加密流;

对于筛选出的加密流,根据加密流量流表按流提取数据包,对数据包进行信息解析,提取特征。

2.根据权利要求1所述的方法,其特征在于,所述五元组包括源IP地址、目的IP地址、源端口号、目的端口号、传输协议。

3.根据权利要求2所述的方法,其特征在于,通过三阶位混合哈希方法将五元组数据映射到加密流量流表,输出负载长度信息包括:解析数据包的头部字段,包括32比特源IP地址、32比特目的IP地址、16比特源端口号、

16比特目的端口号、8比特传输协议和16比特负载长度信息;

将头部字段中包含源IP地址、目的IP地址、源端口号、目的端口号的96比特分为三个32比特值,并分别加上预先定义的一个常数值0xdeadbefb得到三个值,对前两个值加上一个固定的initval形成初始化的A和B,对第三个值加上8比特的传输协议Protocol形成初始化的C;

分三个阶段对A、B、C的值进行混合,包括循环移位、异或和减法操作,混合的第一阶段得到C1、A1、B1,混合的第二阶段得到C2、A2、B2,混合的第三阶段得到C3、A3、B3;

将第三个阶段混合得到的C3和B3进行循环移位、异或和减法操作,得到最终的哈希值。

4.根据权利要求3所述的方法,其特征在于,A、B、C的初始化方法表示如下:,

其中,Metadata表示头部字段中五元组的数据,[]表示对应范围的比特值;Metadata[31:0]表示32比特的源IP地址,Metadata[63:32]表示32比特的目的IP地址,Metadata[95:

64]表示16比特源端口号和16比特目的端口号组成的32比特数据;

分三个阶段对A、B、C的值进行混合操作表示如下:

其中,rot(j,k)表示将j向右循环移动k位, 表示异或。

5.根据权利要求1所述的方法,其特征在于,动态负载信息复杂度计算方法计算不同长度数据包的负载信息复杂度包括:以N表示指定数量,若数据包负载长度大于N字节,则随机偏移若干字节并将数据包截断成固定的N字节,将截断的N个字节分成多个通道,使用恒等哈希函数将每个时钟周期内到来的数据位宽中出现的每个字节值映射到哈希表中进行并行计数,该哈希表包含对应的字节值和字节值出现的次数,根据统计出的每个字节值出现的次数,采用查表法计算数据包的负载信息复杂度;

若数据包负载长度小于N字节,则对负载进行补0得到N个字节值,将补0得到的N个字节值分成多个通道,使用恒等哈希函数将每个时钟周期内到来的数据位宽中出现的每个字节值映射到哈希表中进行并行计数,该哈希表包含对应的字节值和字节值出现的次数,根据统计出的每个字节值出现的次数和事先计算的补0和未补0之间的负载信息复杂度误差,采用查表法计算数据包的负载信息复杂度。

6.根据权利要求1所述的方法,其特征在于,根据数据包的负载信息复杂度的分布情况计算加密流置信值包括:根据事先统计的指定数量字节的负载信息复杂度数据集,计算均值和3倍标准差;

根据计算得到的负载信息复杂度落在正态分布的位置,得到一个加密流置信值。

7.根据权利要求1所述的方法,其特征在于,根据加密流置信值采用投票机制筛选出加密流包括:判断前M个数据包的加密流置信值之和是否超过设定的加密流判别阈值,若超过则将对应的流标记为加密流。

8.一种基于FPGA的加密流量识别与特征提取装置,其特征在于,包括:

数据包采集模块,用于在流量采集位置收集连续的以太网数据包;

数据包缓冲模块,用于将采集到的数据包存储于一个由FPGA预先配置的,包含多个存储槽的块随机存取存储器BRAM缓冲区内,缓冲区内的每个数据包被赋予唯一标号;

数据包解析模块,用于解析缓冲区中数据包的头部字段,包含负载长度和五元组字段,通过三阶位混合哈希方法将五元组数据映射到加密流量流表中,输出负载长度信息,该加密流量流表是由BRAM实现的哈希表,若一条流被标记为加密流,则后续数据包能够直接根据五元组的哈希映射来判断是否为加密流量数据包;

数据包负载信息复杂度计算模块,用于根据数据包的负载长度,采用动态负载信息复杂度计算方法计算不同长度数据包的负载信息复杂度,其中若负载长度大于指定数量字节,则将数据包截断成固定的指定数量字节,使用查表法计算负载信息复杂度;若负载长度小于指定数量字节,则对负载进行补0,得到指定数量个字节值,根据事先计算的补0和未补

0之间的负载信息复杂度误差,再使用查表法计算负载信息复杂度;

加密流筛选模块,用于根据数据包的负载信息复杂度的分布情况计算加密流置信值,根据加密流置信值采用投票机制筛选出加密流;

加密流量特征提取模块,用于对于筛选出的加密流,根据加密流量流表按流提取数据包,对数据包进行信息解析,提取特征。

9.一种FPGA装置,其特征在于,包括:FPGA芯片、一个或多个以太网接口;所述以太网接口用于与外部进行数据传输,所述FPGA芯片中存储有一个或多个程序,所述程序被处理器执行时实现如权利要求1‑7中任一项所述的基于FPGA的加密流量识别与特征提取方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑7中任一项所述的基于FPGA的加密流量识别与特征提取方法的步骤。