1。3。3 传输层
传输层和网络层是不一样的,网络层是给主机提供逻辑通信,而传输层是端到端的的逻辑通信,TCP可以用序列号,确认号,甚至选项和窗口字段来传递隐蔽信息。
其中序列号是编在TCP传输的任何一个字节的号码。起始序列号是在连接建立起来的时候确定的,通常情况下初始序列号就是隐蔽信息。还有确认号,它是接受的一方预期的接收到的下一个报文的数据的第一个字节的序号,换句话说,下一个数据包的序列号的期望值就是确认号,确认号是基于三次握手的,具体来说就是,A与B希望建立连接,那么有A发送SYN包给Y,序列号为x,B收到之后确认一下,然后发送SYN/ACK包,序列号是y,确认号是x+1,A再给B发送ACK包序列号是x+1,确认号是y+1,到此,三次握手已完成,那么连接也就建立了。还有就是选项也可以传递隐蔽信息,构造隐蔽信道。
Timestamps是TCP选项中的一种,它可以提供更加好的一些服务。因为timestamps是单调且递增的,换句话说,后面的时间是要比前面的时间大的,因此timestamps不能出现非法的时间,最好能够和真实的时间差不多,这样不容易被发现,不被发现才是隐蔽信道的核心。
1。4 网络隐蔽信道的分类
1。4。1 按载体分类
如果我们根据隐蔽信道所选的载体来分类的话,那么隐蔽信道可分为存储式隐蔽信道以及时间式隐蔽信道两大类。或者说隐蔽信道按储存方式可以分为隐蔽储存信道和隐蔽时间信道,我研究的on/off网络隐蔽信道是一种时间式的网络隐蔽信道。
储存式的隐蔽信道和物理单元有关,比如一个进程可以读写一个储存单元,另一个进程也可以,它们通过这个储存单元可以隐蔽的通信。关于时间式的隐蔽信道可以这样举例,一个进程通过对一些系统中的资源进行控制,使另一个进程得到的资源的时间有一定规律,这种规律是通信双方传递信息的暗号。
在网络中,储存单元可以是发送报文的任何一个字段。时间则可以是发送报文的时间间隔,或者报文在传输过程中所用的时间等等。这俩种方式的编码形式不同,储存隐蔽信道是有记忆的信道,之后可以查询,而隐蔽时间信道是无记忆信道,以后不能再查询了。在存储式隐蔽信道中,通信双方即发送端和接收端是通过读写同一存储位置来进行数据传输的。至于时间式隐蔽信道嘛,发送方是通过调制或者说是改变对某个共享资源的使用,来让接收方对该资源的响应时间发生一定的改变,因此接收方可以解调出其中的隐蔽信息。
1。4。2 按有无噪声分类文献综述
隐蔽信道还可以用有没有噪声来分类,隐蔽信道传输数据是以比特作为单位的。发送方发送一定比特信息,接受方如果能够完全正确的解码,那么就称为无噪声信道,如果不能百分百的解码,就称为噪音信道。在网络隐蔽信道中,报文传输过程中,硬件设备转发或发送过程中,会造成传输时延,这就是噪声。
1。4。3 按缺陷种类分类
隐蔽信道还可以从系统安全的缺陷种类进行分类,因为系统有安全缺陷,所以才有隐蔽信道,隐蔽信道能存在也说明了系统还不够安全。隐蔽信道可以是基本型的隐蔽信道,在操作系统里面,TCB(任务控制块)规范的缺陷始终存在,不管我们对强制安全策略怎么解释。还有特定TCB型隐蔽信道,在既定的操作系统中,在强制安全策略的某些解释下,这个TCB规范缺陷是存在的。还有一种不合理的隐蔽信道,还是在既定的操作系统中,仅仅在强制安全策略的一个特定但是不合理的解释下面,这种TCB规范缺陷才存在。因此,我们消除不合理的隐蔽信道可以通过修改TCB规范来实现。