文章信息
论文题目:基于时隙的多重冗余流指纹模型
期刊(会议):网络与信息安全学报
时间:2023
级别:CCF C
概述
为确保内生网络流量安全可信,本文在研究流水印及其扩展的流指纹机制的基础上,提出了一种改进型的基于时隙的多重冗余流指纹模型,设计实现了一个基于内核的流指纹原型系统,并阐述了该流指纹模型的应用场景。
相关工作
根据流标记的嵌入位置(或称载 波特征),流水印或流指纹机制可划分为三大类: 基于数据包内容、基于流速率、基于时间。典型 流水印/流指纹载波特征如表1所示。
指纹模型设计与实现
模型设计
冗余编码:每一比特的指纹都连续重复n次,如当n为3时,0重复为 000,1重复为111,由于数据流在传输过程会遭受自然的抖动或恶意的攻击,所以在接收端提取指纹时,认为连续的两个相同的比特即最终结果,如001、100、000都解码为0,110、011、 111都解码为1。
除了考虑每一比特的冗余外,为了防止重复比特之间的干扰,还可以考虑将整个比特重复r次,如指纹比特若为1001,当r为3时,则编码为1001 1001 1001。
流指纹嵌入过程如图1所示。
在嵌入端,用随机函数生成指纹序列后,对每一位指纹比特进行处理。在流的时间偏移量起始处,将流的一部分划分为连续的多个相同的时间间隔,依次每3个连续的时间间隔T对应一位指纹比特,操作每3个时间间隔的前两个,实现比特嵌入,如指纹比特为“0”时,只需将第一个时间间隔内的数据包延迟到第二个时间间隔内发送;指纹比特为“1”时,需将第二个时间间隔内的数据包延迟到第3个时间间隔发送。值得注意的是,由于网络中自然的抖动等影响,引入冗余编码r来提高指纹的健壮性。
在提取端,遵循流指纹嵌入方案,按照与发送端相同的时间偏移以及时间间隔划分接收到的流,再比较第一个时间间隔和第二个时间间隔内的数据包数量,如果第一个间隔内的数据包数量大于第二个时间间隔内的数据包,则解码为1,反之应解码为0。
指纹的嵌入和提取步骤可概括为:嵌入端收到流 F i F_{i} Fi,根据该条流的信息用随机函数生成指纹序列 f i f_{i} fi,然后通过操作 F i F_{i} Fi中数据包的发送时间将指纹 f i f_{i} fi嵌入流中。指纹的提取端在收到数据流的第一个数据包开始,记录每个数据包到达的时间,从含有指纹的流 F i ′ F_{i}^{'} Fi′中,解码出指纹信息 f i ′ f_{i}^{'} fi′,从嵌入指纹 f i f_{i} fi所用的编码时隙中计算得到 Y ˉ r f i ′ \bar{Y}_{r}^{f_{i}^{'}} Yˉrfi′的值,将其和0进行比较,得到 Y ˉ r f i ′ \bar{Y}_{r}^{f_{i}^{'}} Yˉrfi′为正值表明指纹位是0,若得到负值表明指纹位是1。 Y ˉ r f i ′ \bar{Y}_{r}^{f_{i}^{'}} Yˉrfi′表示第二个时隙中数据包数目和3个时间间隔总数据包均值之间的差值在冗余度为r时的均值。
后续通过一些计算表明,增加冗余度r能够提高检测率,以及对恶意干扰(时间延迟干扰、垃圾数据包干扰、丢包干扰)的抵抗能力。
系统实现
指纹系统实现包括应用层和内核层,应用层主要作为交互的界面,进行参数的增加、查询等以及相应流的指纹生成和指纹的冗余编码,内核与应用层之间利用ioctl函数进行交互。流指纹原型系统模块层次如图8所示,具体如下:
- 系统初始化:包括设定模块运行模式、初始化参数。
- 参数设置模块:流指纹的参数应该在嵌入端和提取端协商共享参数,本文设计时简化了双方的协商,在两端分别设定同样的参数。
- 指纹编解码模块:设定参数后,设定不同的运行模式,对流进行指纹的编码和解码。
- 数据包管理模块:按照指定的规则对数据包进行捕获,发送给指纹的嵌入/提取模块。
- 指纹的嵌入/提取模块:根据生成的指纹序列,更改数据包发送的时间。
模型评估与应用
模型评估
为对模型进行评估,本文搭建如图9所示的网络拓扑进行实验。用户1、用户2为两个实体笔记本终端,分别运行iperf3软件,从而在两端产生交互的流量以用于流指纹的嵌入和提取;其余路由器节点使用VMware搭建的虚拟节点;各个路由器节点之间运行OSPF路由协议。在接入网关1上实施指纹的嵌入,接入网关2、3上进行指纹的提取。中间路由器R322在实验中利用TC(traffic control)模拟网络中的延迟丢包等干扰行为。
在两个终端上使用iperf3进行TCP流量的传输,用户1是发送端,用户2和用户2’是接收端。iperf3通过不同端口发送10条流,带宽为60 Mbit/s。 在实验评估中,测试了两种场景。场景1中流指纹传递跨越一个路由器(不包含嵌入端和提取端,标记为 R=1),即只在图9中的区域1内传递。场景2中流指纹传递跨越4个路由器(标记为 R=4),即从区域1传递到区域 2。在两种场景下,启用与嵌入提取无关的背景流(用 bf 表示)验证,其中有6条VLC播放器的流,4条SSH流,图9中红色箭头表示背景流和iperf3测试流的混合流。
得到实验结果如下图所示:
模型应用
用于检测中间人攻击,如下图所示:
总结
为了支持内生安全的数据可信,本文在基于流水印/指纹机制研究的基础上,设计了一种基于时隙的多重冗余流指纹模型,并对该模型进行了在网络典型干扰(如丢包、延迟等)环境下的评估,设计实现了一个流指纹原型系统,在系统的内核层进行了指纹的编解码、嵌入和提取,并对本文的流指纹模型系统的应用场景进行了阐述。