一种针对多链路到达序列编码的隐蔽通信检测方法

文档序号:10572455阅读:597来源:国知局
一种针对多链路到达序列编码的隐蔽通信检测方法
【专利摘要】本发明公开了一种针对多链路到达序列编码的隐蔽通信检测方法,将待测数据和正常数据的数据包到达序列看作随机序列,分别按TCP流的标识符对序列求熵,若两主机通信时存在N条TCP流,则可得到N个熵值,将N条TCP流的N个熵值视作一个N维空间的点,再求该点到原点的欧氏距离,通过比较二者欧氏距离的差异,判断待检测数据流是否为含密数据流。并且在求出数据流信息熵的基础上,与欧氏距离的计算相结合,从而提高了检测效果,可以得到可靠的检测结果。
【专利说明】
一种针对多链路到达序列编码的隐蔽通信检测方法
技术领域
[0001] 本发明涉及网络与信息安全技术,尤其是一种针对多链路到达序列编码的隐蔽通 信检测方法。
【背景技术】
[0002] 网络隐写作为一种隐蔽通信方式,利用合法的数据流作为载体在网络中传递秘密 信息。政府、企业和个人通过利用网络隐信道进行隐秘通信,安全地传递重要信息。但同时, 网络隐写也会被不法组织和个人利用,以传递有害信息,威胁公众安全。因此,检测网络隐 写的存在,防止危害发生,是至关主要的环节。隐写的检测技术作为网络安全防护领域内的 一项非常重要的技术,引起了研究者的广泛关注,而且目前为止已经取得了很多的研究成 果。
[0003] 基于多链路到达序列编码的隐蔽通信是一种崭新的隐蔽通信方式,2015年, WojciechFrqczck 和Krzysztof Szczypiorski提出了stegblock的概念。首先要选取一些对 象,并为每个对象定义不同的标识符,而这些标识符是为隐蔽数据的发送方和接收方所知 的,将这些对象合并成一个序列(即数据块),数据块的值中搭载着隐蔽信息。
[0004] 针对stegblock的一个例子如下,在{1,2,3,4}中的四个对象中,以1为开头,3为结 尾的数据块构成了隐写密钥,如图1所示。发送方向接收方发送的这些对象基于隐写密钥规 则构成了一段段数据块。第一段数据块由U,4,3}三个对象组成,因为这是一个对象的最短 长度,包含了从传输起始端开始的所有的对象。随后的数据块也是由这样的方式定义的。此 外,在图1展示的通信实例中我们假定数据块对象数目的最后一位决定了这段块数据的值, 也就是说,第一段数据块的值为'1'(这段数据块由3个对象组成),第二段数据块的值为'0' (数据块由6个对象组成)。统计这些数据块的值即可得到隐秘信息的值,于是我们可以得出 这个例子中传输的隐秘数据的值是'1010'。接收方要破解隐秘数据的话必须了解该通信的 隐写密钥。
[0005] 基于多链路到达序列编码的隐蔽通信正是应用了stegblock的概念,采用MPTCP协 议在两台主机之间建立多链路通信,给不同的链路赋予不同的标识符。采用MPTCP协议的多 链路到达序列隐蔽通信是以下述方式进行工作的:
[0006] 1、在两台主机,即隐蔽信息的发送方和接收方之间建立MPTCP链接,将每条TCP流 视作一个对象,赋予不同的标识符,标识符的个数即TCP流的个数。
[0007] 2、根据隐写秘钥生成数据块。
[0008] 3、对数据包的发送进行控制,按照数据块中标识符的顺序选择不同的TCP流发包。
[0009] 假设两台主机之间存在5条不同的TCP流,标识符分别为1、2、3、4、5,隐蔽通信的秘 钥为1和3,则数据包到达序列{1,3,4}代表'1',而{5,3,4,1}代表'0'。
[0010]这种隐写方法的主要优势是它可以保证隐藏数据传输中的稳定性。在此法中,接 收方可以决定对象的顺序,并且是基于TSN(传输序列号)而非接收各个对象的时间。TSN即 是块数据的序列号,它是随着块数据的传输而递增的并且对应于数据流中的特定的块数 据。当数据发生延迟或者丢失,发送方可以进行重发,这样就实现了隐藏数据的完美接收而 不用拘泥于各个对象的接收时间。
[0011 ]由于stegblock是一个親新的概念,现有技术中未公开检测这种隐蔽通信方式的 方法。

【发明内容】

[0012] 发明目的:针对上述现有技术存在的缺陷,本发明旨在提供一种针对多链路到达 序列编码的隐蔽通信检测方法。
[0013] 技术方案:一种针对多链路到达序列编码的隐蔽通信检测方法,包括建立模型库 和利用模型库进行检测,所述建立模型库包括如下步骤:
[0014] (1)设置数据捕获器:在两台主机之间建立基于MPTCP的多链路链接,并利用数据 捕获器捕获主机之间通信时的数据包,用过滤器筛选出数据包的到达序列;
[0015] (2)设置字符映射器:根据stegblock的原理建立一个字符映射器,将捕获的数据 包到达序列转化为标识符序列,标识符序列为一维数组;
[0016] (3)设置窗口分割器:窗口分割器将标识符序列分为大小为w的窗口,共可分为j个 窗口;每个窗口分成大小为L的小区间,一个窗口可分为I个小区间,若主机之间存在N条 流,fN为一个小区间内通过某条流的数据包的个数,统计每个小区间中每条TCP流的占比PNi = fN/L,i = l、2、3···,[,
[0017] (4)设置熵值求取器:熵值求取器计算窗口内每条TCP流标识符序列的信息熵
[0018] (5)设置欧氏距离求取器:欧氏距离求取器将每个窗口内的N条TCP流的N个信息熵 视作一个N维空间的点,分别计算各点到原点的欧氏距离0」,」=1、2、3,一,^每一点的欧氏 距离为
,其中Xn为步骤(4)中求得的信息熵Hn;
[0019] (6)训练不同链路数的正常数据模型,并设定检测阈值:在两台主机间链路数不同 的情况下,重复步骤(1)-(5),得到不同链路数的正常数据模型,对各模型进行分析,求不同 链路数所含数据的均值M+、方差V+和检测阈值Th+=M++aV+,其中α为自定义的常量函数,用于 调整检测阈值;
[0020] (7)建立模型库:将步骤(6)中求得的不同链路数的检测阈值放入模型库中。
[0021] 进一步的,所述利用模型库进行检测具体包括如下步骤:
[0022] (Α)判断待测数据链路数:若链路数为1,则两台主机之间不存在多链路通信,程序 结束;否则存在多链路通信,根据链路的数目从模型库中调出相应的模型以及检测阈值Th + ,
[0023] (B)处理待测数据并计算欧氏距离:利用字符映射器将捕获的数据包到达序列转 化为标识符序列,该标识符序列为一个一维数组;利用窗口分割器将数组分割成大小均为 ω的窗口;利用熵值求取器计算出各窗口内所有标识符的熵值,若有N个不同的标识符,则 计算出N个熵值;将每个窗口内的N条TCP流的N个信息熵视作一个N维空间的点,计算各点到 原点的欧氏距离〇5,8 = 1、2、3,一,^;'每一点的欧氏距离为: 其中χη为
熵值;
[0024] (C)判断待检测数据属性:将Os与模型库中相应的检测阈值Th+作比较,大于Th+则 待检测数据为含密数据,否则为正常数据。
[0025] 进一步的,步骤(1)中所述的数据捕获器即wireshark,所述过滤器为wireshark内 置的过滤器。
[0026]进一步的,步骤(6)中所述每台主机的链路数均不小于两条。
[0027]进一步的,步骤(A)中所述阈值Th+为Th+=M++aV+,其中M+为不同链路数所含数据的 均值、V+为不同链路数所含数据的方差,α为自定义的常量函数。
[0028] 进一步的,步骤(Β)中所述熵值即信息弗其中PNi为由窗口 分割器所分区间中每条TCP流的占比,i = 1、2、3…,f。
[0029] 有益效果:本发明提出了一种对于新型隐写方式"多链路到达序列编码隐蔽通信" 的检测方法,将待测数据和正常数据的数据包到达序列看作随机序列,分别按TCP流的标识 符对序列求熵,若两主机通信时存在N条TCP流,则可得到N个熵值,将N条TCP流的N个熵值视 作一个N维空间的点,再求该点到原点的欧氏距离,通过比较二者欧氏距离的差异,判断待 检测数据流是否为含密数据流。并且在求出数据流信息熵的基础上,与欧氏距离的计算相 结合,从而提高了检测效果,可以得到可靠的检测结果。
【附图说明】
[0030] 图1为stegblock的原理示例图。
[0031]图2为正常通信模型训练流程图。
[0032]图3实际检测流程图。
[0033]图4为观测窗口 w= 1000的实验效果图。
【具体实施方式】
[0034]下面通过一个最佳实施例并结合附图对本技术方案进行详细说明。
[0035]以下结合附图对本发明作进一步详细说明。
[0036]图1是stegblock的原理示例图,而多链路到达序列隐蔽通信的编码方式正是以 stegblock的原理为基础。
[0037]假设两个主机之间存在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'。
[0038] 基于stegblock的编码方式,我们在编写检测方法时,只要通过检测一定窗口内每 条TCP流标识符(即1、2、3、4)的熵值,再对这些熵值进行处理,即可判断该窗口是否含有隐 蔽ig息。
[0039] 图2是为正常通信模型训练流程图,如图所示,一种针对多链路到达序列编码的隐 蔽通信检测方法,包括建立模型库和利用模型库进行检测,所述建立模型库具体包括如下 步骤:
[0040] (1)设置数据捕获器:在两台主机之间建立基于MPTCP的多链路链接,并利用数据 捕获器捕获主机之间通信时的数据包,本实施例中是通过wireshark作为数据捕获器来捕 获两个主机间正常的多链路通信数据,再用wireshark内置的过滤器筛选出数据包的到达 序列。
[0041] (2)设置字符映射器:根据stegblock的原理建立一个字符映射器,给不同的流赋 予不同的数字编码(即标识符),如给192. XXX. XXX. 11到192. XXX. XXX. 1的流赋予标识符1, 给192. XXX. XXX. 12到192. XXX. XXX. 1的流赋予标识符2,将捕获的数据包到达序列转化为标 识符序列;本实施例中将捕获的数据包到达序列转化为各条TCP流的数据包到达序列,该序 列为一个一维数组,由各流的标识符组成,当两台主机之间存在4条TCP流时,这4条流分别 用1、2、3、4代替,则标识符数组由1、2、3、4组成。
[0042] (3)设置窗口分割器:窗口分割器将标识符序列分为大小为w的窗口,共可分为叾 个窗口;每个窗口分成大小为L的小区间,一个窗口可分为f个小区间,若主机之间存在N条 流,fN为一个小区间内通过某条流的数据包的个数,统计每个小区间中每条TCP流的占比PNi = fN/L,i = 1、2、3···,&本实施例中截取数组中的前49000个数据(即49000个包),以w = 1000的窗口大小,将其分为49个检测窗口。
[0043] 以L=100再次分割检测窗口,将每个检测窗口分为10个大小相等的小区间。统计 每个小区间中,各TCP流标识符出现的概率,假设标识符为1的流(即1号流),在第一个小区 间中出现的概率为 P1,在第二个小区间中出现的概率为p2,以此类推,在第十个小区间出现 的概率为P10。
[0044] (4)设置熵值求取器:熵值求取器计算窗口内每条TCP流标识符序列的信息熵
本实施例中用该公式计算出1号流在这个窗口内的熵值,同理也可 以计算出2、3、4号流在这个窗口内的熵值,在一个检测窗口内,存在4条TCP流,就可以根据 TCP流的标识符计算出4个熵值。
[0045] (5)设置欧氏距离求取器:欧氏距离求取器将每个窗口内的N条TCP流的N个信息熵 视作一个N维空间的点,分别计算各点到原点的欧氏距离0」,」=1、2、3,一,|;每一点的欧氏 距离为:
其中Xn为步骤(4)中求得的信息熵Hn ;本实施例中将4个熵值 当做一个4维空间内的点,求出该点到原点的欧氏距离,得到49个窗口的欧氏距离值。
[0046] (6)训练不同链路数的正常数据模型,并设定检测阈值:在两台主机间链路数不同 (每台主机的链路数均不小于两条如2条,3条,4条,5条)的情况下,重复步骤(1)-(5),可以 得到不同链路数的正常数据模型,对各模型进行分析,求不同链路数所含数据的均值M+、方 差V+和检测阈值Th+ = M++aV+,其中α为自定义的常量函数,用于调整检测阈值。本实施例中 经过步骤(5)得到49个窗口的欧氏距离值后,可建立出4条链路下正常通信的数据模型并对 各模型进行分析。
[0047] (7)建立模型库:将步骤(6)中求得的不同链路数的检测阈值放入模型库中。
[0048] 如图3所示,所述利用模型库进行检测具体包括如下步骤:
[0049] (A)判断待测数据链路数:若链路数为1,则两台主机之间不存在多链路通信,程序 结束;否则存在多链路通信,根据链路的数目从模型库中调出相应的模型以及检测阈值Th +,Th+=M++aV+,其中M+为不同链路数所含数据的均值、V+为不同链路数所含数据的方差,α为 自定义的常量函数;本实施例中经判断待测数据为4条链路的通信环境,从模型库中调出4 条链路正常通信的模型及检测阈值。
[0050] (Β)处理待测数据并计算欧氏距离:利用字符映射器将捕获的数据包到达序列转 化为标识符序列,该标识符序列为一个一维数组;提取待检测数据流的数据包到达序列,赋 予其不同的标识符,将数据包到达序列转化为可处理的数组,
[0051 ]本实施例中利用字符映射器,捕获的数据包到达序列转化为各条TCP流的数据包 到达序列,该序列由各流的标识符组成,当两台主机之间存在4条TCP流时,这4条流分别用 1、2、3、4代替,则标识符数组由1、2、3、4组成。
[0052]利用窗口分割器将数组分割成大小均为ω的窗口;截取数组中的前49000个数据 (即49000个包),以w= 1000的窗口大小,将其分为49个检测窗口。以L= 100再次分割检测窗 口,将每个检测窗口分为10个大小相等的小区间。统计每个小区间中,各TCP流标识符出现 的概率,假设标识符为1的流(g卩1号流),在第一个小区间中出现的概率为 P1,在第二个小区 间中出现的概率为p2,以此类推,在第十个小区间出现的概率为p1〇;
[0053]利用熵值求取器计算出各窗口内所有标识符的熵值,若有N个不同的标识符(即 TCP流),则计算出N个熵值;将每个窗口内的N条TCP流的N个信息熵视作一个N维空间的点, 计算各点到原点的欧氏距离〇 s,s = 1、2、3,…,$每一点的欧氏距离为:
其中Xn为熵值,即信息熇
,其中PNi为由窗口分 害幡所分区间中每条TCP流的占比,i = l、2、3···,^本实施例使用熵值求取器,计算出1号流 在这个窗口内的熵值。同理也可以计算出2、3、4号流在这个窗口内的熵值。在一个检测窗口 内,有4条TCP流,就可以计算出4个熵值。使用欧氏距离求取器,将4个熵值当做一个4维空间 内的点,求出该点到原点的欧氏距离。
[0054] (C)判断待检测数据属性:将Os与模型库中相应的检测阈值Th+作比较,大于Th+则 待检测数据为含密数据,否则为正常数据。
[0055] 图4为观测窗口w=1000的实验效果图,实线为正常数据,虚线为含密数据,由图可 见,应用本发明中提出的方法,可以很好的区分针对多链路到达序列编码隐蔽通信中的正 常数据和含密数据。
[0056] 以上仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来 说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为 本发明的保护范围。
【主权项】
1. 一种针对多链路到达序列编码的隐蔽通信检测方法,其特征在于,包括建立模型库 和利用模型库进行检测,所述建立模型库包括如下步骤: (1) 设置数据捕获器:在两台主机之间建立基于MPTCP的多链路链接,并利用数据捕获 器捕获主机之间通信时的数据包,用过滤器筛选出数据包的到达序列; (2) 设置字符映射器:根据stegblock的原理建立一个字符映射器,将捕获的数据包到 达序列转化为标识符序列,标识符序列为一维数组;(3) 设置窗口分割器:窗口分割器将标识符序列分为大小为w的窗口,共可分为个窗 口;每个窗□分成大小为L的小区间,一个窗□可分为个小区间,若主机之间存在N条流,fN为一个小区间内通过某条流的数据包的个数,统计每个小区间中每条TCP流的占比(4) 设置熵值求取器:熵值求取器计算窗口内每条TCP流标识符序列的信息熵(5) 设置欧氏距离求取器:欧氏距离求取器将每个窗口内的N条TCP流的N个信息熵视作 一个N维空间的点,分别计算各点到原点的欧氏距离每一点的欧氏距 离为,其中Xn为步骤⑷中求得的信息熵Hn; (6) 训练不同链路数的正常数据模型,并设定检测阈值:在两台主机间链路数不同的情 况下,重复步骤(1)-(5),得到不同链路数的正常数据模型,对各模型进行分析,求不同链路 数所含数据的均值M+、方差V +和检测阈值Th+=M++aV+,其中α为自定义的常量函数; (7) 建立模型库:将步骤(6)中求得的不同链路数的检测阈值放入模型库中。2. 根据权利要求1所述的一种针对多链路到达序列编码的隐蔽通信检测方法,其特征 在于,所述利用模型库进行检测具体包括如下步骤: (A) 判断待测数据链路数:若链路数为1,则两台主机之间不存在多链路通信,程序结 束;否则存在多链路通信,根据链路的数目从模型库中调出相应的模型以及检测阈值Th+; (B) 处理待测数据并计算欧氏距离:利用字符映射器将捕获的数据包到达序列转化为 标识符序列,该标识符序列为一个一维数组;利用窗口分割器将数组分割成大小均为ω的 窗口;利用熵值求取器计算出各窗口内所有标识符的熵值,若有N个不同的标识符,则计算 出N个熵值;将每个窗口内的N条TCP流的N个信息熵视作一个N维空间的点,计算各点到原点 的欧氏距离每一点的欧氏距离为:,其中Xn为熵 值; (C) 判断待检测数据属性:将Os与模型库中相应的检测阈值Th+作比较,大于Th+则待检 测数据为含密数据,否则为正常数据。3. 根据权利要求1所述的一种针对多链路到达序列编码的隐蔽通信检测方法,其特征 在于,步骤(1)中所述的数据捕获器即wireshark,所述过滤器为wireshark内置的过滤器。4. 根据权利要求1所述的一种针对多链路到达序列编码的隐蔽通信检测方法,其特征 在于,步骤(6)中所述每台主机的链路数均不小于两条。5. 根据权利要求2所述的一种针对多链路到达序列编码的隐蔽通信检测方法,其特征 在于,步骤(A)中所述阈值Th+为Th + = M++aV+,其中M+为不同链路数所含数据的均值、V+为不 同链路数所含数据的方差,α为自定义的常量函数。6. 根据权利要求2所述的一种针对多链路到达序列编码的隐蔽通信检测方法,其特征 在于,步骤(B)中所述熵值即信息熵,其中PnA由窗口分割器所分区 间中每条TCP流的占比
【文档编号】H04L12/26GK105933094SQ201610460259
【公开日】2016年9月7日
【申请日】2016年6月22日
【发明人】翟江涛, 李萌, 高斌, 唐雨
【申请人】江苏科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1