TCP IP协议是我们互联网的基础。但是,由于这个协议的很多缺陷,导致在这方面发生的问题也有很多。虽然它本身是建立在可信环境中的,但是由于缺陷和漏洞,也同样存在着很多安全问题。
TCP IP协议是建立在可信的环境之下,首先考虑网络互连缺乏对安全方面的考虑。其次,TCP/IP是建立在3次握手协议基础之上,本身就存在一定不安全的因素,握手协议的过程当中有一定局限性。这种基于地址的协议本身就会泄露口令,而且经常会运行一些无关的程序,这些都是网络本身的缺陷。互连网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。这就给"黑客"们攻击网络以可乘之机。由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果。网络的开放性,TCP IP协议完全公开,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等性质使网络更加不安全。
协议中存在许多的安全问题,随着应用的深入,逐渐受到人们的关注。因此,人们开始研究各种各样的安全技术来弥补它的缺陷,堵住安全漏洞,增加网络安全。目前正在制定安全协议,在互连的基础上考虑了安全的因素,希望能对未来的信息社会中对安全网络环境的形成有所帮助。网络安全关系到国家安全。网络安全的理论及其应用技术的研究,不仅受到学术界以及工业界的关注,同时也受到各国政府的高度重视。为了自己国家的利益,美国等西方发达国家将网络安全技术及产品视为如同核武器一样的秘密技术,立法限制其向中国出口。为保障中国网络基础设施的安全,国家安全部、公安部等明确要求使用国产的网络安全产品来确保我国网络的安全。
然而,由于种种原因,目前中国有关网络安全技术及其产品的研发与美国等西方发达国家相比尚有一定的距离。正因为如此,应加倍努力,迎头赶上。在这种背景下,应该更加的重视网络安全方面。国家信息安全的总体框架已经搭就。已制定报批和发布了有关信息技术安全的一系列的国家标准、国家军用标准。国家信息安全基础设施正在逐步建成包括国际出入口监控中心、安全产品评测认证中心、病毒检测和防治中心、关键网络系统灾难恢复中心、系统攻击和反攻击中心、电子保密标签监管中心、网络安全紧急处置中心、电子交易证书授权中心、密钥恢复监管中心、公钥基础设施与监管中心、信息战防御研究中心等。
TCP IP协议安全之ARP欺骗
ARP协议在对IP地址进行解析时,利用ARP缓存(也叫ARP表)来做。ARP缓存的每一条目保存有IP地址到物理地址的映射。如果在ARP表中没有这样的对应条目,ARP协议会广播ARP请求,获得对应于那个IP地址的物理地址,并把该对应关系加入到ARP表中。ARP表中的每一个条目都有一个计时器,如果计时器过期,该条目就无效,因而被从缓存中删除。显然,如果攻击者暂时使用不工作的主机的IP地址,就可以伪造IP-物理地址对应关系对,把自己伪装成象那个暂时不使用的主机一样。克服此问题的方法是,让硬件地址常驻内存,并可以用ARP命令手工加入(特权用户才可以那样做);也可以通过向RARP服务器询问来检查客户的ARP欺骗。因为RARP服务器保留着网络中硬件地址和 IP的相关信息。
TCP IP协议安全之路由欺骗
在路由协议中,主机利用重定向报文来改变或优化路由。如果一个路由器发送非法的重定向报文,就可以伪造路由表,错误引导非本地的数据报。另外,各个路由器都会定期向其相邻的路由器广播路由信息,如果使用RIP特权的主机的520端口广播非法路由信息,也可以达到路由欺骗的目的。解决这些问题的办法有,通过设置主机忽略重定向信息可以防止路由欺骗;禁止路由器被动使用RIP和限制被动使用RIP的范围。
TCP IP协议安全之DNS欺骗
网络上的所有主机都信任DNS服务器,如果DNS服务器中的数据被攻击者破坏,就可以进行DNS欺骗。
拦截TCP连接:攻击者可以使TCP连接的两端进入不同步状态,入侵者主机向两端发送伪造的数据包。冒充被信任主机建立TCP连接,用SYN淹没被信任的主机,并猜测3步握手中的响应(建立多个连接到信任主机的TCP连接,获得初始序列号ISN(Initial Serial Number)和RTT,然后猜测响应的ISN,因为序列号每隔半秒加64000,每建立一个连接加64000)。预防方法:使所有的r*命令失效,让路由器拒绝来自外面的与本地主机有相同的IP地址的包。RARP查询可用来发现与目标服务器处在同一物理网络的主机的攻击。另外ISN攻击可通过让每一个连接的ISN随机分配配合每隔半秒加64000来防止。
使用TCP SYN报文段淹没服务器。利用TCP建立连接的3步骤的缺点和服务器端口允许的连接数量的限制,窃取不可达IP地址作为源IP地址,使得服务器端得不到ACK而使连接处于半开状态,从而阻止服务器响应响应别的连接请求。尽管半开的连接会被过期而关闭的,但只要攻击系统发送的spoofed SYN请求的速度比过期的快就可以达到攻击的目的。这种攻击的方法一直是一种重要的攻击ISP(Internet Service Provider)的方法,这种攻击并不会损害服务,而是使服务能力削弱。解决这种攻击的办法是,给Unix内核加一个补丁程序或使用一些工具对内核进行配置。一般的做法是,使允许的半开连接的数量增加,允许连接处于半开状态的时间缩短。但这些并不能从根本上解决这些问题。实际上在系统的内存中有一个专门的队列包含所有的半开连接,这个队列的大小是有限的,因而只要有意使服务器建立过多的半开连接就可以使服务器的这个队列溢出,从而无法响应其他客户的连接请求。