关于网络隐蔽信道,有一个经典的例子,Alice,Bob 和Warden 参与的“囚犯问题”模型。Alice和Bob被关在监狱,想要逃狱,Warden是监狱管理员,Alice 与Bob的交流中不能被Warden发现和逃狱有关的信息,因此,Alice与Bob只能在正常的信息中传递和逃狱有关的信息。Warden的权限可以是不同的,比如只能观察他们的通信,或者可以稍微修改他们之间的通信,不同的权限对应着不同的网络隐蔽信道的设计方法[3]。
图1。3 囚犯问题
网络隐蔽信道是网络中以正常的信道为载体,并且能够突破系统安全策略的设计,能够在不同的对象之间传输一些敏感数据的一种特殊的通信机制。因为检测网络隐蔽信道的难度非常大,所以它被一些黑客视为窃取数据的一种非常理想的手段。但是网络隐蔽信道也有一些缺点,它相对的容易受到网络状况变化的影响,比如说使信道出现一些解码的错误,或者使信道无法正常工作。隐蔽信道会以违反系统安全的方式进行一些通信,而且很难被检测,并且充满着恶意,它经常被用来窃取非常重要的信息。
图 1。4 网络隐蔽信道
1。3 信道的储存位置
1。3。1 网络分层
计算机网络可以分为五层,有应用层,传输层,网络层,数据链路层,物理层。应用层是联系应用程序与网络的,传输层是用来提供端到端的可靠的及透明的信息的传输的,这一层有俩种非常重要的协议,分别是UDP与TCP这俩种协议。网络层是为报文在网络中传递提供寻址以及路由的功能。数据链路层和物理层可以负责实际的网络设备进行消息的传递。任何层都可以实现隐蔽信道,传递隐蔽信息。但是网络层下面的一些和协议有关的数据是会在跨越网段的时候变化,因此在这些层当中,隐蔽信道只能建立在同一个网段当中,局限比较大。目前使用最广泛的是TCP/IP协议,这可以构造出各种各样的隐蔽信道。在这种信道中,主要需要研究以下内容,可以传输隐蔽的信息的bit数目的带宽,隐蔽信道被检测出来的难易程度即可检测性,还有可以在上面环境下使用,及使用的环境,已经隐蔽信道的稳定性,即被阻止的难度[6]。
图 1。5 网络分层结构及各层协议
1。3。2 网络层
IP是网际协议中最重要的协议之一,是INTERNET标准协议之一,在IP协议中,我们可以对数据包头字段进行操作来构造隐蔽信道。IP数据包是由包头和数据组成的,包头前面是固定长度的部分,固定的长度为20字节,这20字节是所有的IP数据包必须有的,其中适合构造隐蔽信道的有这些,比如说,服务类型,标识或者标志,片偏移还有源地址和目的地址等等。
其中服务类型需要8bit,这8bit都可以用来传递隐蔽信息,但是如果8bit都进行编码的话,会比较明显的改变流量,因此会使隐蔽性下降,而且其中向第7bit一般是固定为0的,改了的话,容易被发现,开始用的少的话,信道的带宽又不够了,比较纠结。其中标识有16bit,这个字段是唯一的,操作系统有自己的方法来生成该字段,想要传递隐蔽信息的话,可以对高8bit的ADCII码进行加密处理低8bit进行随机处理,开始系统产生地标识的值是有迹可循的,容易被检测到,这种隐蔽信道不是很安全,主要是系统可以通过标识值全局递增,或者主机递增,或者标识值可以和MSB绑定,OPENBSD在一定时间内是有固定的MSB的,在此期间标识都不能狗重复。标志有3bit,其中第一位是固定的,不能用,不然容易被发现,就不能算是隐蔽信道了,后两位是可以使用的,这两位的值不是一定的。片偏移是8bit,这个可以8bit全用,不过为了隐蔽和合理性,我们还是要按照实际情况来,主要是DF位可能影响分片的进行,从而导致信息不能隐蔽的传递,当DF为1的时候,是不能够分片的,而0的时候,需要了解MTU来保证不分片。源地址有32bit,是用来保存源IP地址的,改变这个字段会改变地址,路由器只发出IP是本地网络数据包,因此想利用源地址字段来出传递隐蔽信息,我们一定要把编码的空间限制在本地的网段里面。还有目的地址,这个也是32bit,其中地址就是隐蔽的信息[6]。论文网