TCP/IP协议的安全性分析

2009-07-11 03:05
网络与信息 2009年7期
关键词:防范网络安全

张 霞

摘要:TCP/IP协议是目前使用最为广泛的网络互联协议。在详细叙述TCP/IP基本工作原理的基础上,深入分析了各层协议的安全性,指出了存在的安全漏洞及攻击方式,并给出了针对安全性问题的防范措施。为网络安全的研究提供了参考。

关键词=TCP/IP协议;网络安全;防范

1引言

随着信息技术的迅猛发展,计算机网络技术已经广泛地应用到名个领域。Internet,Intranet是基于TCP/IP协议簇的计算机网络。TCP/IP协议簇在设计初期只是用于科学研究领域,因而没有考虑安全性问题。但随着Internet应用迅猛发展和应用的普及,它不仅用于安全性要求很高的军事领域,也应用于商业及金融等领域,因而对其安全性的要求也越来越高。对TCP/IP协议及其安全性进行分析和研究就显得尤为重要。

2TCP/IP的工作原理

TCP/JP协议是一组包括TCP协议和P协议、UDP协议、ICMF协议和其他协议的协议组。TCP/IP协议共分为4层,即应用层、传输层、网络层和数据链路层。其中应用层向用户提供访问internet的一些高层协议,使用最为广泛的有TELNET、FTP、SMTP、DNS等。传输层提供应用程序端到端的通信服务。网络层负责相邻主机之间的通信。数据链路层是TCP/IP协议组的最低一层,主要负责数据帧的发送和接收。其工作原理是:源主机应用层将一串应用数据流传送给传输层,传输层将其截成分组,并加上TCP报头形成TCP段送交网络层,网络层给TCP段加上包括源主机和目的主机IP地址的IP报头,生成一个IP数据包,并送交数据链路层;数据链路层在其MAC帧的数据部分装上IP数据包,再加上源主机和目的主机的MAC地址和帧头,并根据其目的MAC地址,将MAC帧发往目的主机或IP路由器。目的主机的数据链路层将MAC帧的帧头去掉,将IP数据包送交网络层:网络层检查IP报头,如果报头中校验和与计算结果不一致,则丢弃该IP数据包。如果一致则去掉IP报头,将TCP段送交传输层;传输层检查顺序号,判断是否是正确的TCP分组,然后检查TCP报头数据,若正确,则向源主机发确认信息,若不正确则丢包,向源主机要求重发信息,传输层去掉TCP报头,将排好顺序的分组组成应用数据流送给应用程序。这样目的主机接收到的字节流,就像是直接来自源主机一样。

3TCP/IP各层的安全性分析

3.1数据链路层

数据链路层是TCP/IP协议的最底层。它主要实现对上层数据(IP或ARP)进行物理帧的封装与拆封以及硬件寻址、管理等功能。在以太网中,由于信道是共享的,数据以“帧”为单位在网络上传输,因此,任何主机发送的每一个以太帧都会到达与其处于同一网段的所有主机的以太网接口。当数字信号到达一台主机的网络接口时,根据CSMA/CD协议,正常状态下,网络接口对读入数据进行检查,如果数据帧中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据帧交给IP层软件。当数据帧不属于自己时,就把它忽略掉。然而,目前网络上存在一些被称为嗅探器(sniffer)的软件,如NeXRay、Sniffit、IPMan等。攻击方稍作设置或修改,使网卡工作在监听模式下,则可达到非法窃取他人信息(如用户账户、口令等)的目的。防范对策:(1)装检测软件,查看是否有Sniffer在网络中运行,做到防范于未然。(2)对数据进行加密传输,使对方无法正确还原窃取的数据,并且对传输的数据进行压缩,以提高传输速度。(3)改用交换式的网络拓扑结构,使数据只发往目的地址的网卡,其他网卡接收不到数据包。这种方法的缺点是交换机成本太高。

3.2网络层

3.2.1IP欺骗

在TCP/IP协议中,IP地址是用来作为网络节点的惟一标志。IP协议根据IP头中的目的地址来发送IP数据包。在IP路由IP包时,对IP头中提供的源地址不做任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。这样,攻击者可以直接修改节点的IP地址,冒充某个可信节点的IP地址攻击或者编程(如RawSocket),实现对IP地址的伪装,即所谓IP欺骗。攻击者可以采用IP欺骗的方法来绕过网络防火墙。另外对一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP欺骗的方法获得特权,从而给被攻击者造成严重的损失。防范对策:(1)抛弃基于地址的信任策略。(2)采用加密技术,在通信时要求加密传输和验证。(3)进行包过滤。如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。确认只有内部IAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。

3.2.2ICMP漏洞

ICMP运行于网络层,它被用来传送IP的控制信息,如网络通不通、主机是否可达、路由是否可用等网络本身的消息。常用的Ping命令就是使用ICMP协议,Ping程序是通过发送一个ICMP Echo请求消息和接收一个响应的ICMP回应来测试主机的连通性。几乎所有的基于TCP/IP的机器都会对ICMP Echo请求进行响应。所以如果一个敌意主机同时运行很多个Ping命令,向一个服务器发送超过其处理能力的ICMP Echo请求时,就可以淹没该服务器使其拒绝其它服务。即向主机发起“Ping of Death”(死亡之Ping)攻击。死亡之Ping是较为原始的拒绝服务攻击手段。解决方法较成熟:(1)可给操作系统打上补丁(patch)。(2)在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。(3)利用防火墙来阻止Ping。但同时会阻挡一些合法应用。可只阻止被分段的Ping。使得在大多数系统上只允许一般合法的64Byte的Ping通过,这样就能挡住那些长度大于MTU(Maximum TransmiSsIon Unit)的ICMP数据包,从而防止此类攻击。

3.3传输层

TCP是基于连接的。为了在主机A和B之间传递TCP数据,必须通三次握手机制建立连接。其连接过程如下:A→B:A向B发SYN,初始序列号为ISNI;B→A:B向A发SYN,初始序列号为ISN2,同时对ISNI确认;A→B:A向B发对ISN2的确认。建立连接以后,主要采用滑动窗口机制来验证对方发送的数据,如果对方发送的数据不在自己的接收窗口内,则丢弃此数据,这种发送序号不在对方接收窗口的状态称为非同步状态。由于TCP协议并不对数据包进行加密和认证,确认数据包的主要根据就是判断序列号是否正确。这样一来,当通信双方进入非同步状态后,攻击者可以伪造发送序号在有效接收窗口内的报文,也可以截获报文,篡改内容后,再修改发送序号,而接收方会认为数据是有效数据,即进行TCP会话劫持。目前存在一些软件可以进行TCP会话劫持,如Hunt等。防范对策:(1)在传输层对数据进行加密。(2)使用安全协议,对通信和会话加密,如使用SSI代替telnet和ftp。(3)运用某些入侵检测软件(IDS)或者审计工具,来查看和分析自己的系统是否受到了攻击。

3.4应用层

在应用层常见的攻击手段是DNS欺骗。攻击者伪造机器名称和网络的信息,当主机需要将一个域名转化为IP地址时,它会向某DNS服务器发送一个查询请求。同样,在将IP地址转化为域名时,可发送一个反查询请求。如果服务器在进行DNS查询时人为地给出攻击者自己的应答信息,就产生了DNS欺骗。由于网络上的主机都信任DNS服务器,一个被破坏的DNS服务器就可以将客户引导到非法的服务器,从而就可以使某个地址产生欺骗。防范对策:(1)直接用IP访问重要的服务,从而避开DNS欺骗攻击。(2)加密所有对外的数据流。在服务器端,尽量使用SSH等有加密支持的协议;在客户端,应用PGP等软件加密发到网络上的数据。

4结束语

网络安全是一个永恒的主题。通过对TCP/IP各层协议的分析,不难发现其在设计上存在很多漏洞,黑客或黑客工具往往利用这些漏洞对网络进行破坏。相信随着网络的发展和安全技术应用的深入,TCP/IP将不断地改进和完善。一个稳定的、安全的网络世界必将到来。

猜你喜欢
防范网络安全
邯郸市档案馆积极开展网络安全宣传教育
全国多地联动2020年国家网络安全宣传周启动
新量子通信线路保障网络安全
全省教育行业网络安全培训班在武汉举办
保护个人信息安全,还看新法
SQL注入防护
浅析防范电能表串户的重要性及方法
也谈国际贸易合同欺诈
从工商管理角度谈如何加强金融风险防范的有效性
中国网络安全产业联盟正式成立