TCP/IP协议安全性能

2009-03-14 06:59郝婉娇
新媒体研究 2009年4期

郝婉娇

[摘要]互联网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。TCP/IP协议组是目前使用最广泛的网络互连协议。但TCP/IP协议组本身存在着一些安全性问题。这就给“黑客”们攻击网络以可乘之机。由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果。

[关键词]TCP/IP 定时器 状态转移

中图分类号:TP3 文献标识码:A文章编号:1671-7597(2009)0220070-01

一、TCP状态转移图和定时器

TCP状态转移图控制了一次连接的初始化、建立和终止,该图由定义的状态以及这些状态之间的转移弧构成。TCP状态转移图与定时器密切相关,不同的定时器对应于连接建立或终止、流量控制和数据传输。几类主要的定时器及其功能如下:

1.连接定时器:在连接建立阶段,当发送了SYN包后,就启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。

2.FIN-WAIT-2定时器:当连接从FIN-WAIT-1状态转移到FIN-WAIT-2状态时,将一个FIN-WAIT-2定时器设置为10分钟。如果在规定时间内该连接没有收到一个带有置位FIN的TCP包,则定时器超时,再定时为75秒。如果在该时间段内仍无FIN包到达,则放弃该连接。

3.TIME-WAIT定时器:当连接进入TIME-WAIT状态时,该定时器被激活。当定时器超时时,与该连接相关的内核数据块被删除,连接终止。

4.维持连接定时器:其作用是预测性地检测连接的另一端是否仍为活动状态。如果设置了SO-KEEPALIVE套接字选择项,则TCP机状态是ESTABLISHED或CLOSE-WAIT。

二、网络入侵方式

1.伪造IP地址。入侵者使用假IP地址发送包,利用基于IP地址证实的应用程序。其结果是未授权的远端用户进入带有防火墙的主机系统。

假设有两台主机A、B和入侵者控制的主机X。假设B授予A某些特权,使得A能够获得B所执行的一些操作。X的目标就是得到与B相同的权利。为了实现该目标,X必须执行两步操作:首先,与B建立一个虚假连接;然后,阻止A向B报告网络证实系统的问题。主机X必须假造A的IP地址,从而使B相信从X发来的包的确是从A发来的。

2.TCP状态转移的问题。上述的入侵过程,主机X是如何阻止主机A向主机B发送响应在的,主机调通过发送一系列的SYN包,但不让A向调发送SYN-ACK包而中止主机A的登录端口。如前所述,TCP维持一个连接建立定时器。如果在规定时间内(通常为75秒)不能建立连接,则TCP将重置连接。在前面的例子中,服务器端口是无法在75秒内作出响应的。

3.定时器问题。一旦进入连接建立过程,则启动连接定时器。如果在规定时间内不能建立连接,则TCP机回到CLOSED状态。我们来分析一下主机A和主机X的例子。主机A向主机X发送一个SYN包,期待着回应一个SYN-ACK包。假设几乎同时,主机X想与主机A建立连接,向A发送一个SYN包。A和X在收到对方的SYN包后都向对方发送一个SYN-ACK包。当都收到对方的SYN-ACK包后,就可认为连接已建立。在本文中,假设当主机收到对方的SYN包后,就关闭连接建立定时器。

(1)主机X向主机A发送一个FTP请求。在X和A之间建立起一个TCP连接来传送控制信号。主机A向X发送一个SYN包以启动一个TCP连接用来传输数据,其状态转移到SYN-SENT状态。当X收到来自A的SYN包时,它回送一个SYN包作为响应。

(2)主机X收到来自A的SYN-ACK包,但不回送任何包。

(3)主机A期待着接收来自X的SYN-ACK。由于X不回送任何包,因此A被锁在SYN-RCVD状态。这样,X就成功地封锁了A的一个端口。

三、利用网络监控设备观测网络入侵

1.伪造IP地址。最初,网络监控设备会监测到大量的TCP SYN包从某个主机发往A的登录端口。主机A会回送相应的SYN-ACK包。SYN包的目的是创建大量的与主机A的半开放的TCP连接,从而填满了主机A的登录端口连接队列。大量的TCP SYN包将从主机X经过网络发往主机B,相应地有SYN-ACK包从主机B发往主机X。然后主机X将用RST包作应答。这个SYN/SYN-ACK/RST包序列使得入侵者可以知道主机B的TCP序列号发生器的动作。主机A向主机B发送一个SYN包。实际上,这是主机X发送的一个“伪造”包。收到这个包之后,主机B将向主机A发送相应的SYN-ACK包。主机A向主机B发送ACK包。按照上述步骤,入侵主机能够与主机B建立单向TCP连接。

2.虚假状态转移。当入侵者试图利用从SYN-RCVD到CLOSE-WAIT的状态转移长时间阻塞某服务器的一个网络端口时,可以观察到如下序列包:

(1)从主机X到主机B发送一个带有SYN和FIN标志位置位的TCP包。

(2)主机B首先处理SYN标志,生成一个带有相应ACK标志位置位的包,并使状态转移到SYN-RCVD,然后处理FIN标志,使状态转移到CLOSE-WAIT,并向X回送ACK包。

(3)主机X不向主机B发送其它任何包。主机的TCP机将固定在CLOSE-WAIT状态。直到维持连接定时器将其重置为CLOSED状态。

因此,如果网络监控设备发现一串SYN-FIN/ACK包,可推断入侵者正在阻塞主机B的某个端口。

3.定时器问题。如果一入侵者企图在不建立连接的情况下使连接建立定时器无效,我们可以观察到主机X不向主机B发送任何ACK包。因此,B被阻塞在SYN-RCVD状态,无法响应来自其它客户机的连接请求。

四、总结

目前还没有十分简便的方法防止伪造IP地址的和侵行为,但我们可以采取以下措施来尽可能地保护系统免受这类攻击。首先,我们可以配置路由器和网关,使它们能够拒绝网络外部与本网内具有相同IP地址的连接请求。而且,当包的IP地址不在酝酿网内时,路由器和网关不应该把本网主机的包发送出去。其次,在包发送到网络上之前,我们可以对它进行加密。虽然加密过程要求适当改变目前的网络环境,但它将保证数据的完整性和真实性。为了防止从SYN-RCVD到CLOSE-WAIT状态的伪转移,需要改变操作系统中TCP操作的部分相关代码,使得当TCP机处于SYN-RCVD状态时,忽略任何对等主机发来的FIN包。只有当建立连接后,才可以使连接建立定时器无效。

参考文献:

[1]王廷尧,以太网技术与应用,人民邮电出版社,2005-01.

[2]谢希仁,计算机网络,电子工业出版社,2008-01.

[3]兰少华、杨余旺、吕建勇,TCP/IP网络与协议,清华大学出版社,2006-01.