APP下载

FTP协议信息隐藏方法的研究与改进

2013-08-30李彩秋周亚建魏更宇

计算机工程与应用 2013年21期
关键词:鲁棒性命令比特

李彩秋,周亚建,魏更宇

LICaiqiu,ZHOU Yajian,WEIGengyu

北京邮电大学 计算机学院,北京 100876

School of Computer Science,Beijing University of Posts and Telecommunications,Beijing 100876,China

1 引言

传统的信息隐藏一般采用文本[1]、图像[2]、视频[3]、音频[4]等数字媒体作为载体,在载体中嵌入信息。网络协议信息隐藏技术用网络协议作为载体,利用协议的语法和语义的冗余进行信息隐藏。与传统的信息隐藏方法相比,网络协议信息隐藏技术具有显著的优势:随着数字多媒体压缩技术的不断提高,多媒体的冗余度越来越低,可嵌入的信息也就越来越少。而网络中存在大量的网络协议数据包,网络协议众多,这就为网络协议信息隐藏提供了丰富的载体[5]。

目前对于网络协议信息隐藏的研究,大多集中于利用IP/TCP/UDP/ICMP协议中的预留、填充或可选字段进行隐藏[6-9]。现今的路由器和防火墙能够过滤使用这些方法进行隐藏的数据包。而对应用层协议的限制较少。因此,应用层协议的信息隐藏技术开始受到人们关注[10]。本文通过研究FTP协议命令,提出了两种基于FTP协议的信息隐藏方法,并对基于FTP协议的分级序列长度隐蔽信道进行了改进。

2 协议信息隐藏的性能指标

对协议信息隐藏算法性能的评价,主要是从不可感知性、鲁棒性、隐藏容量等几个方面进行研究的[5,11]。

(1)隐藏容量:隐藏容量反映了通信效率。它是指在隐藏秘密数据后仍满足不可感知性的前提下,数字载体中可以隐藏秘密信息的最大比特数。

(2)不可感知性:即隐蔽性,是指将秘密信息嵌入到网络协议数据包中后,而不会引起数据包的语法语义发生重大改变,不会引起观察者的怀疑。

(3)鲁棒性:鲁棒性反映了协议信息隐藏方法的抵抗攻击的能力。

3 基于FTP协议的信息隐藏方法

在FTP的命令集合中,存在着一类特殊的命令,在特定的条件下,服务器收到这些命令时可以不做任何操作。这类特殊命令包括NOOP、ALLO、ABOR。NOOP命令用于客户端防止FTP控制连接因长时间空闲而断开,服务器不针对收到的NOOP命令作任何处理。ALLO命令是客户端请求服务器分配空间来接收文件。对于一些不允许上传文件的服务器来说,ALLO命令的效果与NOOP命令一样。ABOR命令让服务器终止上一个没有执行完成的命令,如果上一个命令已经执行完成,那么服务器也不做任何操作,此时ABOR命令的效果也是与NOOP一样。这3个命令在特定情况下,产生的效果都是服务器系统不进行任何处理[12-13]。

本文利用这些空命令的序列进行隐藏信息编码。以下分别介绍。

3.1 基于命令交换的隐藏算法

发送一个ABOR命令,代表开始发送隐蔽信息。然后按照二进制序列,发送NOOP命令代表发送0,发送ALLO命令代表发送1。序列发送结束时,发送ABOR命令,代表此次发送结束。接收端通过观察NOOP命令和ALLO命令的顺序来提取隐蔽信息。因为是通过ALLO命令与NOOP命令分别代表1和0,因此称它为基于命令交换的隐藏算法。例如,要发送的隐蔽信息的序列为:10010111,则根据算法,发送的命令序列如图1所示。

图1 基于命令交换的隐藏方法示意图

3.2 基于命令控制的隐藏算法

双方定个基准为0,发送ALLO表示开始,用NOOP命令代表比特,发送ABOR命令控制比特信息的改变情况。发送ABOR命令,代表下一个NOOP命令代表的比特与前一个比特相反。不发送ABOR命令时,代表下一个NOOP命令代表的比特与前一个比特相同(第一个NOOP命令代表的比特与基准0相比较)。接收端通过观察NOOP命令和ABOR命令的顺序来提取隐蔽信息。因为是通过ABOR命令控制发送的比特是0还是1,因此称它为基于命令控制的隐藏算法。例如要发送的隐蔽信息序列为:10010111,则开始发送的隐蔽信息的第一个比特为1,与基准0不同,则先发送ABOR命令,表示将要发送的比特与基准0不同,然后发送NOOP命令,代表发送的比特信息是1,将基准置为发送的1,接着发送第二个比特,这时第二个比特0与基准1不同,则先发送ABOR命令,表示将要发送的比特与基准1不同,然后发送NOOP命令,代表发送的比特信息是0,再将基准置为0。然后发送第三个比特,因为第三个比特0与基准0相同,则不再发送ABOR命令而直接发送NOOP命令,代表发送的隐蔽信息是0,以此类推,直接比特序列发送结束,发送ALLO命令,代表此次通信结束。如图2所示。

3.3 性能分析

3.3.1 隐藏容量

图2 基于命令控制的隐藏方法示意图

对于基于命令交换的隐藏算法,发送N bit隐蔽信息,需要发送的命令数为(2+N),即带宽为N/(2+N)bit/命令。当N取1时,带宽为1/3 bit/命令,当N逐渐增大,带宽将趋于1 bit/命令。

对于基于命令控制的隐藏算法,发送N bit隐蔽信息,最坏的情况下,需要(3+2N)个命令,即带宽为N/(3+2N)bit/命令。当N取1时为0.2 bit/命令,当N逐渐增大,该带宽接近0.5 bit/命令。最好的情况下,需要(3+N)个命令传输N bit的隐蔽信息,即带宽为N/(3+N)bit/命令。当N取1时为0.25 bit/命令,当N逐渐增大,该带宽接近1 bit/命令。

3.3.2 隐蔽性

由于是控制命令,即使通过统计检测的方法,也很难检测到隐蔽信道的存在,而且该隐蔽信道不影响FTP协议的正常通信,因此具有较高的隐蔽性。

3.3.3 鲁棒性

该算法的鲁棒性主要是丢包或者乱序的问题。但是由于TCP协议的保护机制存在,因此鲁棒性也比较强。

4 对基于FTP协议的分级序列长度隐蔽信道进行的改进——分组分级序列长度隐蔽信道

4.1 分级序列长度隐蔽信道

文献[12]提出基于FTP协议的分级序列长度隐蔽信道[14],简述如下:利用连续NOOP的数量来编码隐藏信息,编码长度为8 bit。连续NOOP的个数为0~255个。每8 bit的信息传输完毕,接着传输一个ABOR命令,作为新的8 bit信息传输的开始。假设隐蔽信息字节值的分布是均匀的,那么要传输一个N bit信息需要发送的FTP控制命令的平均个数为:

引入另一个命令ALLO,进行分级编码。将N bit待隐藏的信息分成两部分:前M bit和后(N-M)bit。前M bit的值用ALLO的个数进行编码;后(N-M)bit值用NOOP的个数进行编码。对于后(N-M)bit,按照公式(1),可知N bit信息还需要一个ABOR作为开始符。则对N bit信息进行编码平均需要的控制命令个数为:

简化后得:

则最优编码函数 f(M)=(2M-1+2N-M-1)/2N-1,解得当M=N/2时可以得到最高的编码效率,即发送N bit隐蔽信息,需要发送的命令的个数为:

最好的情况下需要16个命令传输8 bit信息,所以带宽为0.5 bit/命令[12]。随着N逐渐增大,带宽逐渐减小。这种隐蔽信道的隐藏容量较小,为了该隐蔽信道的隐藏容量,本文对分级序列长度隐蔽信道作了改进,简述如下。

4.2 分组分级序列长度隐蔽信道

现在对N bit(N=2l)信息做分组分级,先将N bit信息分为M bit(M=2k)一组,则有N/M组信息,每组内再做分级,则由公式(4)得到总共发送的命令数为:

因为M取值为正整数且M=2k,所以h(M)的最小值可能在M=2或M=4时取得:

明显h(M4)=h(M2),即 M=2或4时h(M)取得最小值。即当M=2或4时,分组分级编码效率最高,由公式(5)得发送N bit隐蔽信息时,平均发送的命令个数为:

所以,带宽为1 bit/命令。

4.3 两种方法的性能对比

4.3.1 隐藏容量

表1对分级序列长度隐蔽信道编码效率与分组分级序列长度隐蔽信道编码(取M=4为例)效率进行了比较。图3更为直观地显示了两种方法的性能对比。

表1 两种信道编码效率比较

图3 两种方法性能对比图

可见,分级序列长度隐蔽信道的编码发送命令的个数,其指数是按照指数形式增长的,而分组分级序列长度隐蔽信道平均发送命令个数的指数是按照线性增长的。当N=2i(i>2)时,即N>4时,分组分级序列隐蔽信道的编码效率明显高于分级序列隐蔽信道的编码效率,带宽为1 bit/命令,而且,发送的隐蔽信息越多,分组分级序列长度隐蔽信道的编码效率优势越明显。

4.3.2 隐蔽性

分组分级序列长度隐蔽信道同分级序列长度隐蔽信道一样,也是利用FTP协议的控制命令形成隐蔽信道,在传输少量秘密信息的情况下,即使是利用统计检测的方法,也会很难发现该隐蔽信道的存在,且该隐蔽信道同样不会影响FTP协议的正常通信,因此具有较高的隐蔽性。因此两种方法在隐蔽性方面没有明显差别。

4.3.3 鲁棒性

分组分级序列长度隐蔽信道的鲁棒性主要也是发送的控制命令的数据包的乱序和丢失的问题,也在TCP协议的保护机制下,具有较强的鲁棒性。因此两种方法在鲁棒性方面没有明显差别。

5 结束语

利用应用层以下协议进行信息隐藏的算法具有明显不足[2,4]:(1)传输中差错控制不易保证,鲁棒性较差;(2)隐藏容量小,传输效率低。针对应用层协议的信息隐藏已经成为人们关注的焦点。本文提出了基于网络应用层协议FTP协议的信息隐藏方法,并对基于FTP协议的分级序列长度隐蔽信道进行了改进,使得分级序列长度隐蔽信道的隐藏容量大幅度提高。为防止一个第三方提取隐蔽信息,可以在传输隐蔽信息之前,对隐蔽信息作一些处理,将信息随机化,例如加密,密钥为收发双方共享,这样就算没有密钥的第三方提取了信息,也只能看到一些毫无意义的比特。

[1]曹卫兵,戴冠中,夏煜,等.基于文本的信息隐藏技术[J].计算机应用研究,2003,20(10):39-41.

[2]夏煜,郎荣玲,曹卫兵,等.基于图像的信息隐藏检测算法和实现技术研究综述[J].计算机研究与发展,2004,41(4):728-736.

[3]梁惠.视频信息隐藏关键技术研究[D].合肥:中国科学技术大学,2010.

[4]戴跃伟,茅耀斌,王执铨,等.音频信息隐藏技术及其发展方向[J].信息与控制,2001,30(5):385-391.

[5]雷敏,杨榆,汪伟.基于SMTP协议的信息隐藏[C]//2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(下),2006.

[6]眭新光,朱中梁.基于IP包的信息隐藏技术[J].计算机工程,2008,34(15).

[7]葛金明.基于Internet网络协议的信息隐藏技术[J].科技资讯,2010(5).

[8]刘朝晖,孙星明.基于TCP/IP协议的信息隐藏新方法[J].计算技术与自动化,2004,23(3):109-112.

[9]唐作吟,杨宗凯,谭运猛,等.互联网协议中信息隐藏技术的研究[J].计算机应用研究,2003,20(8):14-16.

[10]杨榆,钮心忻,杨义先.网络协议信息隐藏技术综述[C]//2007年学术交流年会论文集,2007.

[11]王勇.基于RTP/RTCP协议的信息隐藏研究与实现[D].北京:中国地质大学,2010.

[12]邹昕光.基于FTP协议的命令序列隐蔽信道[J].哈尔滨工业大学学报,2007,39(3):424-426.

[13]翟江涛.网络通信的信息隐藏技术研究[D].南京:南京理工大学,2008.

[14]Dong P,Qian H,Lu Z,et al.A network covert channel based on packet classification[J].International Journal of Network Security,2012,14(2):109-116.

[15]Frączek W,Mazurczyk W,Szczypiorski K.Multilevel steganography:improving hidden communication in networks[J].Journal of Universal Computer Science,2012,18(14):1967-1986.

猜你喜欢

鲁棒性命令比特
只听主人的命令
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
基于确定性指标的弦支结构鲁棒性评价
移防命令下达后
比特币还能投资吗
比特币分裂
比特币一年涨135%重回5530元
基于非支配解集的多模式装备项目群调度鲁棒性优化
非接触移动供电系统不同补偿拓扑下的鲁棒性分析
这是人民的命令