HTTP协议是一种常用的应用层协议,基于HTTP协议的隐信道能偶穿透局域网安全设备,具有很好的性能。Dyatlowh等人针对HTTP协议,提出了多种隐信道方法[26]。这些方法有的直接修改首部的选项域,有的利用首部选项域的排序来代表隐秘信息,有些利用大小写,还有的利用是否存在选项字段等等来进行隐秘信息的传递。孙圣和等人提出了两种隐信道算法,分别是,在HTTP协议中插入多维随机参数的方法和用参数排序来传递隐秘信息的方法。Huang等人提出了一种较为安全的隐信道算法,利用HTTP的头部属性进行隐秘信息传输[27]。Feamster提出了一种利用HTML源代码的隐信道算法,通过将隐秘信息调制到源代码的纠错数据,来实现隐秘信息传输。
时间式隐信道是通过改变网络数据包的包间时延信息来进行隐秘信息传输的隐信道算法[28]。对于数据包内部的信息及协议的行为方式等等一切与时间信息无关的信息,时间式隐信道不作任何改变。目前,对于时间式隐信道的实现方式主要有以下两种[29]:一种是ON-OFF开关模式,这种模式非常简单,就是通过调整数据包的发送速度,观测在一定的时间间隔中是否有数据包发送,从而判断隐秘信息是‘1’还是‘0’;第二种是通过改变数据包的包间时延信息,用时延的具体信息,如奇偶性等,传递隐秘信息。两种模式各有利弊,ON-OFF模式虽然编码简单,但是具有很多的局限性,不够安全隐蔽,因此,目前时间式隐信道的研究主要集中在后一种模式上,虽然编码有一定的复杂性,但也取得了更好的性能。
Padlipsky等人提出了一种ON-OFF的时间式隐信道算法,发送方和接收方约定一个时间间隔,在这个时间间隔内,发送方用发送数据包代表隐秘信息‘1’,用保持沉默代表隐秘信息‘0’[30]。Handel等人提出了基于ICMP协议的时间式隐信道,利用信号的延迟来传递隐秘信息。由于这种方法使用了ICMP协议应答机制,因此可以非常容易的实现收发双方的同步。Girling提出了一种时间式隐信道构建方法,在原始通信的时间信息中加入一定的时延,用新的时间信息代表隐秘信息。这种构建方法为日后时间式隐信道的发展研究提供了很好的参考和启发。Shah等人就是在这种方法的基础上提出的Jitterbug隐信道算法,Jitterbug将二进制编码嵌入到包间时延中,实现隐秘信息的传输[31]。Cabuk等人提出了锁相环的同步机制,这也是一种ON-OFF的时间式隐信道,用发送包代表‘1’,不发送数据包代表‘0’。但是不同的是,它将数据传输时间分为若干个时间间隔,这个时间间隔的大小是可以变化的,这就大大的改善了时间式隐信道的稳定性和鲁棒性[32]。
以上的时间式隐信道虽然取得了相对较好的效果,但是没有考虑到隐信道的构建对正常数据流带来的影响,很容易使含密数据流的时间序列与正常数据流的时间序列之间存在很大的差异,导致网络数据异常,暴露隐信道的存在,隐信道无法保证其安全性和隐蔽性[33]。Yao等人提出了一种安全性较高的基于包间时延分布的ON-OFF式隐信道,该隐信道算法在构建时考虑到了正常数据流的时延分布,隐信道数据流的包间时延与正常数据流的包间时延更加接近,从而提高了隐信道的隐蔽性[34]。Gianvecchio等提出一种基于模型的时间式隐信道
—MBCTC(Model-BasedCovertTimingChannel),MBCTC通过拟合正常数据流的包间时延信息,使隐信道数据流具有相似的统计学特征,从而提高隐信道的隐蔽性,有效的抵抗检测[35]。Liu等人提出了一种基于匹配分布的时间式隐信道算法——CTCDM(CovertTimingChannelbasedonDistributionMatching),该隐信道数据流的包间时延分布与正常数据流几乎一致,提高了隐信道的隐蔽性[36]。Khan等人提出利用多条链路传输数据流来构建时间式隐信道的方法,多条链路的使用不仅提高了隐信道的隐蔽性,还可以使隐信道不受网络状况的影响,因此隐信道的鲁棒性也得到了提高[37]。Rezaei提出了一种新的时间式隐信道——DPOI,DPOI通过延迟一定时间发送数据包来表示‘1’,直接传送数据包来表示隐秘信息‘0’,提高了隐信道算法的信道容量和传输速率[38]。