基于多条通信链路传输模型的隐蔽数据传输方法与流程

文档序号:11234317阅读:433来源:国知局
基于多条通信链路传输模型的隐蔽数据传输方法与流程

本发明属于网络与信息安全技术领域,具体涉及一种基于多条通信链路传输模型的隐蔽数据传输方法。



背景技术:

随着计算机网络的快速发展,网络业务越来越多样化,由此带来的信息安全问题引起了广泛的关注。网络隐蔽通信是一种特殊的网络通信机制,它以正常的网络流为载体,能够无视系统策略的设置,在不同的实体之间传输敏感数据。与传统隐蔽通信技术相比,网络隐蔽通信的安全性更高。

基于多链路传输编码的隐蔽通信是一种崭新的隐蔽通信方式,2015年,wojciech和krzysztofszczypiorski提出了stegblock的概念。首先要选取一些对象,并为每个对象定义不同的标识符,而这些标识符是为隐蔽数据的发送方和接收方所知的,将这些对象合并成一个序列(即数据块),数据块的值中搭载着隐蔽信息。

针对stegblock的一个例子如下,在{1,2,3,4}中的四个对象中,以1为开头,3为结尾的数据块构成了隐写密钥,如图1所示。发送方向接收方发送的这些对象基于隐写密钥规则构成了一段段数据块。第一段数据块由{1,4,3}三个对象组成,因为这是一个对象的最短长度,包含了从传输起始端开始的所有的对象。随后的数据块也是由这样的方式定义的。此外,在图1展示的通信实例中我们假定数据块对象数目的最后一位决定了这段块数据的值,也就是说,第一段数据块的值为‘1’(这段数据块由3个对象组成),第二段数据块的值为‘0’(数据块由6个对象组成)。统计这些数据块的值即可得到隐秘信息的值,于是我们可以得出这个例子中传输的隐秘数据的值是‘1010’。接收方要破解隐秘数据的话必须了解该通信的隐写密钥。

在随后的研究中,wojciech等人提出了一种名为stegblock-tcp的多链路传输编码隐蔽通信方法,stegblock-tcp基于stegblock的概念,在两台主机之间建立多个信道,给各信道赋予不同的标识符,利用标识符的顺序传输隐秘数据。stegblock-tcp是以下述方式进行工作的:

1、在两台主机,即隐蔽信息的发送方和接收方之间建立多个信道,将每条通信链路(即每条tcp流)视作一个对象,赋予不同的标识符,标识符的个数即tcp流的个数。

2、根据隐写秘钥生成数据块。

3、对数据包的发送进行控制,按照数据块中标识符的顺序选择不同的tcp流发包。

假设两台主机之间存在5条不同的tcp流,标识符分别为1、2、3、4、5,隐蔽通信的秘钥为1和3,则数据包到达序列{1,3,4}代表‘1’,而{5,3,4,1}代表‘0’。

这种隐写方法的主要优势是可以它可以保证隐藏数据传输中的稳定性。在此法中,接收方可以决定对象的顺序,并且是基于tsn(传输序列号)而非接收各个对象的时间。tsn即是块数据的序列号,它是随着块数据的传输而递增的并且对应于数据流中的特定的块数据。当数据发生延迟或者丢失,发送方可以进行重发,这样就实现了隐藏数据的完美接收而不用拘泥于各个对象的接收时间。

然而,该方法虽然形式新颖,但不具有良好的抗检测性,最新研究表明,采用基于信息熵、条件熵、k-l的检测算法,均可以检测stegblock-tcp。



技术实现要素:

发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于多条通信链路传输模型的隐蔽数据传输方法。

技术方案:本发明一种基于多条通信链路传输模型的隐蔽数据传输方法,包括以下步骤:(1)建立多条链路传输过程中所具有的马尔科夫属性模型库;(2)实施隐蔽数据传输;

其中,步骤(1)的具体过程为:

(1.1)设置数据捕获器:在发送端a与接收端b之间建立m条通信链路,利用数据捕获器捕获a和b间通信产生的数据包,并过滤得到由a发往b的数据包n个,m>=2;

(1.2)设置信道转换器:为m条信道(即通信链路)设置m个不同的标识符,以区分各信道,将a发往b的数据包序列按所述信道转换为标识符序列,该标识符序列为含有n个元素的一维数组;

(1.3)设置数据训练器:在a和b间存在m条信道的环境下,将标识符数组看做一个拥有m种不同状态的马尔科夫链;

其中,1到2的转移概率为p12=num(xn=1|xn+1=2)/(n-1),

num(xn=1|xn+1=2)即马尔科夫链中当前状态为1,且下一个状态为2的情况总数,然后依次计算出p11、p12...p1m,p21、...p2m,...pmm,即可得到m条信道的环境下多链路传输的马尔科夫模型;n为一维数组的第n个元素,m为第m条信道的标识符;

(1.4)建立马尔科夫模型库:改变m的值并重复步骤(1.1)~(1.3),将不同信道数下的马尔科夫模型放入模型库;

其中,步骤(2)的详细过程为;

首先,发送方执行以下步骤:

(a)设置信道分析器:假设发送端a与接收端b正在通信,利用数据捕获器捕获ab间的通信数据,确定ab之间存在的信道数m;若m为1,则ab间不存在多链路通信,无法实行所提隐蔽通信方法,否则存在多链路通信;

(b)设置拟合编码器:根据信道数m从模型库中选取相应的马尔科夫模型,根据不同状态的转移概率以及stegblock算法原理设置秘钥并生成相应的标识符序列,所生成标识符序列的马尔科夫特性与模型基本相同;

(c)设置信道转换器:将步骤(b)中生成的标识符序列转换为数据包选择信道的顺序;

(d)设置数据发送器:编写socket程序控制ab间的数据包发送顺序,按照步骤(c)中的信道转移顺序传输数据包。

然后,接收方执行以下步骤:

(e)使用信道转换器:在一定窗口下利用数据捕获器捕获数据并解析收到的数据包所属的信道,利用信道转换器将数据包到达序列转化为标识符序列;

(f)设置解码器:使用stegblock的秘钥解码,将标识符序列转化为可读的信息。

进一步的,所述步骤(1.1)中的数据捕获器采用wireshark,过滤数据采用的过滤器为wireshark内置的过滤器。

进一步的,所述步骤(1.4)中,主机间信道数均不小于2,即m的值不小于2。

有益效果:本发明在stegblock-tcp的基础上,通过拟合正常多链路通信的马尔科夫模型编码,在没有改变数据包结构、流属性、应用结构的情况下,使含密数据的统计分布与正常数据十分相似。与传统的stegblock-tcp相比,本发明的抗检测性更强,实用价值更高。

附图说明

图1为实施例1中stegblock的原理示例图;

图2为实施例1中建立马尔科夫模型库流程图;

图3为实施例1中发送方实施隐蔽数据传输流程图;

图4为实施例1中接收方实施隐蔽数据传输流程图;

图5为实施例1中使用k-l检测的效果图;

图6为实施例1中使用条件熵(ce)检测的效果图。

具体实施方式

下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

如图1所示是stegblock的原理示例图,而stegblock-tcp与i-stegblock正是以stegblock的原理为基础。

假设两个主机之间存在4条tcp流,其标识符分别为1、2、3、4,发送方以1、3为秘钥,一对秘钥组成一个数据块,先到达的数据包所在的tcp流标识符为{1,4,3},表示‘1’,第一个数据块结束后,下一位即第二个数据块的开端,第二个数据块为{2,1,4,1,2,3},表示‘0’,第三个数据块为{3,4,3,2,1},表示‘1’,第四个数据块为{3,1},表示‘0’。

stegblock-tcp使用了图1中的编码方式,由于其编码方式简单,标识符转换较为频繁,使用k-l检测、条件熵检测的方法可以很好的判断信道中是否含有stegblock-tcp。

实施例1:

本实施例的一种基于多条通信链路传输模型的隐蔽数据传输方法,包括以下步骤:(1)建立多条链路传输过程中所具有的马尔科夫属性模型库;(2)实施隐蔽数据传输。

建立马尔科夫模型库的流程如图2所示,具体包括如下步骤:

(1)设置数据捕获器:在两台主机之间建立多链路链接,并利用数据捕获器捕获主机之间通信时的数据包,本实施例中是通过wireshark作为数据捕获器来捕获两个主机间正常的多链路通信数据,再用wireshark内置的过滤器筛选出数据包的到达序列。

(2)设置标识符转换器:根据stegblock的原理建立一个标识符转换器,给不同的流赋予不同的标识符,如两台主机间存在3条信道,其中一台作为服务器,另一台作为客户机,3条链路分别通过服务器端口6666、7777、8888建立链接,给服务器端口6666发出的数据包赋予标识符“1”,给服务器端口7777发出的数据包赋予标识符“2”,给服务器端口8888发出的数据包赋予标识符“3”;本实施例中将捕获的数据包到达序列转化为各条tcp流的数据包到达序列,该序列为一个一维数组,由各流的标识符组成,当两台主机之间存在3条tcp流时,这3条流分别用1、2、3代替,则标识符数组由1、2、3组成。

(3)设置数据训练器:截取大量正常通信环境下的数据进行训练,将拥有n个元素的标识符数组看做一个马尔科夫链。马尔科夫链是具有马尔科夫性质的一个随机变量数列,由马尔科夫链可以得到马尔科夫转移矩阵,马尔科夫转移矩阵由各种情况下的转移概率组成,其中pij=p(xn=i|xn+1=j)。计算出所有状态的转移概率,所得马尔科夫转移矩阵即为描述多链路通信的模型,其中i和j分别表示当前状态为i,下一状态为j。

(4)改变信道数m,并重复步骤(1)~(3),建立不同信道数的正常通信模型。

(5)建立模型库:将步骤(4)中训练所得的不同信道数的模型放入模型库中。

如图3与图4所示,所述实施隐蔽通信具体包括如下步骤:

发送方:

(a)设置信道分析器,捕获对当前通信环境下的数据流并对存在的信道数进行分析,得到信道数m。判断m是否为1,若m为1则说明当前通信环境不属于多链路通信,无法使用多链路编码隐蔽通信。若m不为1则开始进行编码工作。

(b)设置拟合编码器,设定一组秘钥,从模型库中调出信道数为m时的模型,拟合相应的马尔科夫转移概率对准备传输的二进制数据进行编码。

(c)设置信道转换器,将编码后的一维数字视作标识符数组,根据标识符的不同由信道转换器转换为相应的信道。

(d)设置数据发送器,编写一个socket程序控制数据包的发送,使多链路环境下数据包所选择信道的顺序与(c)中的标识符数组一致。

接收方:

(e)接收方在一定窗口下使用数据捕获器捕获含密数据,并使用信道转换器将数据包的到达序列转化为标识符数组。

(f)设置解码器,利用秘钥将标识符数组转化为二进制数据。

如图5所示,本实施中观测窗口为2000时使用kullback–leiblerdivergence(k-l)进行检测检测,图5中实线为正常数据,虚线为含密数据,由图5可见,在30次实验中,仅有3次实验结果具有明显差异,其余27次实验中正常数据和含密数据的k-l属性差异并不明显,证明本发明具有良好的隐蔽性,可以很好的抵抗k-l检测。

如图6所示,本实施例中观测窗口2000时使用条件熵检测进行检测,图中实线为正常数据,虚线为含密数据,由图6可见,正常数据和含密数据的条件熵基本一致,30次实验均不存在明显差异,证明本发明有良好的隐蔽性,可以很好的抵抗条件熵检测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1