TCP-IP协议安全性研究毕业设计论文.doc

上传人:知****量 文档编号:86248797 上传时间:2023-04-14 格式:DOC 页数:60 大小:3.93MB
返回 下载 相关 举报
TCP-IP协议安全性研究毕业设计论文.doc_第1页
第1页 / 共60页
TCP-IP协议安全性研究毕业设计论文.doc_第2页
第2页 / 共60页
点击查看更多>>
资源描述

《TCP-IP协议安全性研究毕业设计论文.doc》由会员分享,可在线阅读,更多相关《TCP-IP协议安全性研究毕业设计论文.doc(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、57目 录前 言11 TCP/IP协议21.1 TCP/IP参考模型21.2 TCP/IP的可靠性思想31.3 网际协议第4版(IPv4)41.4 网际协议第6版(IPv6)62 TCP/IP协议安全性分析92.1 TCP/IP协议主要安全隐患92.2 针对TCP/IP安全漏洞进行攻击的理论分析103 安全协议分析173.1 Internet层的安全173.2 传输层的安全253.3 应用层的安全284 试验过程和方法304.1 以Iris为工具对TCP/IP协议进行分析研究304.2 Ping命令扫描试验394.3 SYN Flooder攻击的研究414.4 设计简单的TCP连接监控器45结

2、 束 语49参考文献50致 谢51附录 SYN Flooder 攻击代码TCP/IP协议安全性研究摘要:Internet的日益普及给人们的生活和工作方式带来了巨大的变革,人们在享受网络技术带来的便利的同时,安全问题也提上了议事日程,网络安全也成为计算机领域的研究热点之一。由于TCP/IP协议的设计是针对可以信任的环境,所以协议本身存在着许多的安全隐患。本文在介绍因特网中使用的TCP/IP协议的基础上,对TCP/IP协议及其子协议的安全性进行了全面的分析,从理论上分析了协议中几种主要的安全隐患。将网络安全理论与实践结合是提高网络安全性的有效途径。本文利用目前常用的协议分析工具对TCP/IP协议子

3、过程进行了比较深入的分析,并针对TCP/IP协议存在的安全隐患做了一些实际操作和实验。希望能在协议的应用中对使用者能有所帮助。关键词: TCP/IP;安全性;协议;IPSec;SSLThe Study on TCP/IP Protocol SecuritySpecialty: Network Engineering SiLi Teacher:FuKaiyaoAbstract:The increasingly popularization of Internet brings great changes to the manners of peoples living and working.

4、As people enjoy the convenience brought by network technology, security issues also come into consideration. As the design of the TCP/IP protocol is in the trusted environment, so itself has many security non-avoidant problem.Network security also becomes one of the research hotspots in the computer

5、 domain. This paper mainly focuses on the security of the TCP/IP protocol on the basis of introduction of the TCP/IP protocol and sub-protocol. It also analyzes the several main hidden troubles in this protocol. And it is an effective way to combine the theory of the network security with the practi

6、ce. This paper studies deeply on the TCP/IP protocols sub-process, using the protocol analyzing tools that currently usually used. Many experiments have been done on the hidden troubles in the TCP/IP protocol, and hope to be helpful to the user which are in the protocol application field.Keywords: T

7、CP/IP ;Security ;Protocol ; IPSec ;SSL前 言TCP/IP(Transmission Control Protocol/Internet Protocol)是20世纪70年代中期美国国防部(DoD)为其研究性网络ARPANET开发的网络体系结构,ARPANET最初是通过租用的电话线将美国的几百所大学和研究所连接起来。随着卫星通信技术和无线电技术的发展,这些技术也被应用到ARPANET网络中,而已有的协议已不能解决这些通信网络的互联问题,于是就提出了新的体系结构,用于将不同的通信网络无缝连接。这种体系结构后来被称为TCP/IP参考模型。TCP/IP协议是Int

8、ernet进行网际互联通信的基础,目前Internet能如此迅速的在全球延伸,主要是由于TCP/IP协议簇的开放性,它打破了异构网络之间的壁垒,把不同国家的各种网络连接起来,使Internet成为了没有明确物理界限的网际。从而人们能充分的享受的全球共享,但是正因为TCP/IP的开放性,它给Internet带来的安全隐患也是全面而且系统的。当初美国开发TCP/IP协议的框架的时候基本没有考虑安全问题,因为他们是在可以信赖的环境下开发TCP/IP协协议的,主要应用在美国国防部内部网络,并没有考虑到以后的大规模应用。当Internet遍布世界以后,网络的环境发生了根本的变化,信任的问题变得突出起来,

9、因此Internet变得充满了问题。由于自身的缺陷、网络的开放性以及黑客的攻击是造成互联网络不安全的主要原因。TCP/IP作为Internet使用的标准协议集,是黑客实施网络攻击的重点目标。但TCPIP协议组本身存在着一些安全性问题。TCP/IP协议是建立在可信的环境之下,首先考虑网络互连缺乏对安全方面的考虑;这种基于地址的协议本身就会泄露口令,而且经常会运行一些无关的程序,这些都是网络本身的缺陷。互连网技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。这就给“黑客”们攻击网络以可乘之机。由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果

10、。网络的开放性,TCP/IP协议完全公开,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等性质使网络更加不安全。因此,目前正在制定安全协议,在互连的基础上考虑了安全的因素,希望能对未来的信息社会中对安全网络环境的形成有所帮助。1 TCP/IP协议Internet上使用的是TCP/IP协议。IP (Internet Protocol),“网际互连协议”,即为计算机网络相互连接进行通信而设计的协议。TCP (Transfer Control Protocol)是传输控制协议。TCP/IP协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,任何厂家生产的计算机系统,

11、只要遵守IP协议就可以与因特网互连互通。正是因为有了此协议,因特网才得以迅速发展成为世界上最大的、开放的计算机通信网络。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和互联网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程访问(TELNET)、文件传输协议(FTP File Transfer Protocol)、简单邮件传输协议(SMTP Simple Mail Transfer Protocol)等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。IP协议之所以能使各种网络互联起来是由于它把各种不同的“帧”统一转换成“IP数据

12、报”格式,这种转换是因特网的一个最重要的特点。所以IP协议使各种计算机网络都能在因特网上实现互通,即具有“开放性”的特点。TCP/IP协议的基本传输单位是数据包(datagram)。TCP协议负责把数据分成若干个数据包,并给每个数据包加上包头(就像给一封信装进信封),包头上有相应的编号,以保证在数据接收端能将数据还原为原来的格式,IP协议在每个包头上再加上接收端主机地址,这样数据找到自己要去的地方(就像信封上要写明地址一样),如果传输过程中出现数据丢失、数据失真等情况,TCP协议会自动要求数据重新传输,并重新组包。总之,IP协议保证数据的传输,TCP协议保证数据传输的质量1。1.1 TCP/I

13、P参考模型图1-1 TCP/IP协议结构图(1) 链路层,有时也称作数据链路层或网络接口层,这是TCP/IP的最低层,负责接收从IP层交来的数据报并将IP数据报通过底层物理网络发送出去,或者从底层物理网络上接收物理帧,抽出数据报,交给IP层。通常包括操作系统中的设备驱动程序(如局域网的网络接口)和含自身数据链路协议的复杂子系统(如X.25中的网络接口)。它们一起处理与电缆(或其他任何传输介质)的物理接口细节。图1-2 TCP/IP参考模型与ISO模型对应关系(2) 网络层,有时也称作互联网层,主要的功能是负责相临的两个节点之间的数据传输,处理分组在网络中的活动。主要有:一是处理来自传输层的数据

14、发送请求,二是处理输入数据报,三是处理ICMP报文。TCP/IP网络模型的网络层在功能上非常类似于OSI参考模型中的网络层。(3) 传输层,TCP/IP参考模型中的传输层和OSI参考模型中的传输层的作用是一致的,即在源结点和目标结点之间的两个进程实体之间提供可靠的端到端的通信。在TCP/IP协议族中,有两个互不相同的传输层协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议是一个可靠的面向连接的传输协议,UDP是一个不可靠、无连接的传输层协议,UDP协议将可靠性问题交给应用程序解决。(4) 应用层,处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程

15、序:Telnet远程登录,FTP(File Transfer Protocol)文件传输协议,SMTP(Simple Mail Transfer Protocol)简单邮件传送协议,HTTP(Hyper Text Transfer Protocol)超文本传输协议,DNS(Domain Name Service)域名服务等。1.2 TCP/IP的可靠性思想在TCP/IP网络中,IP采用无连接的数据报机制,对数据“尽力传递”,即只传送报文,无论是否正确,不做验证,不发确认,也不保证报文的顺序。TCP/IP的可靠性体现在传输层。传输层协议之一的TCP提供面向连接的服务,因为传输层是端到端的,所以传

16、输层的安全性被称为端到端的安全性。UDP不保证可靠性,传输的可靠性的保障由应用程序完成。1.3 网际协议第4版(IPv4)1.3.1 IP地址划分Internet上的每台主机(Host)都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet能够运行的基础。IP地址有两部分组成,一部分为网络地址,另一部分为主机地址,IP地址分为A, B, C, D, E,5类。常用的是B和C两类。其格式为:A类:1.0.0.0 127.255.255.255 8位网络号,24位主机号 用于大型网络(0.0.0.0和127.0.0.0.0保留)B类:128.0.0.0 192.2

17、55.255.255 16位网络号,16位主机号 用于中型网络C类:192.0.0.0 223.255.255.255 24位网络号,8位主机号 用于小型网络D类:224.0.0.0 239.255.255.255 组播地址E类:240.0.0.0 247.255.255.255 保留将来使用这种IP地址划分的方法虽然已经做过改进(最初IP地址并未分类,选择32也仅仅是为了方便报文格式对齐),但仍然称不上完美。在实际中,主机数大于256的网络很多,但是主机数超过1000的缺很少。上面的划分方法造成了B类IP地址的大量浪费,因为一个主机数超过256的网络不得不去申请一个B类IP地址,而B类IP地

18、址能容纳65536台。在这样的情况下,可变长子网掩码(VLSM Valiable Length Subnetwork Mask)出现了。它的思想就是把多个C类IP地址分给一个网络从而节省下B类IP地址资源。例如,在一个202.117.125.0/27的网络中,这个IP地址的网络位就是前27位,11001010 01110101 01111101 000/00000斜杠之前全部是网络位,只有斜杠之后的5位表示主机号。1.3.2 IP报文IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。不可靠(un

19、reliable)的意思是它不能保证IP数据报能成功地到达目的地。无连接(connectionless)这个木语的意思是IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。IP数据报的格式如图1-3所示:(1) 版本(version),4位,指出创建分组的IP版本。(2) 头长度(IP Header Length,IHL),4位,指出分组头(Packet header)中32比特字的数目。(3) 服务类型(Type of Service,ToS),8位,根据分组的处理指定对应的运输层请求。这个字段有4种选择:优先、低延迟、高吞吐和高

20、可靠。(4) 总长(total length),也叫分组长度(Packet Length) 指示整个IP分组的长度。它是一个16比特的字段,提供最大长度65,535个字节。(注:普通的IP首部长为20个字节,除非含有选项字段。)图1-3 IP数据报格式(5) 标识(Identification),16位;标志(Flags),3位;用于判断分段是属于哪个数据报。(6) 段偏移量(Fragment Offset) , 13位。这三个字段用于分段,说明分段在数据报中的位置。(7) 生存期(Time To Live,TTL), 8位,将分组第一次送入因特网的站点设定生存期字段,规定了分组能够在因特网中

21、停留的最长时间。分组每经过一个路由器后,就会将生存期字段减一定的数值。如果生存期字段达到或小于0,路由器就删除它。这个步骤保证了路由或拥塞问题不会造成分组在因特网中无止境地循环。(8) 协议,8位,规定了使用IP的高层协议。它使目的地的IP 将数据转给在该端的适当条目。例如,如果IP分组包含了TCP段,协议字段为6。含有UDP和ICMP分组的协议字段分别是17和1。(9) 校验和,16位,用于在分组头上进行差错检测。由于数据是来自于TCP或其他协议的段,它有自己的差错检测。这样,IP只需关心分组头中的检测错误。(10) 源IP地址(source address)和目的IP地址(destinat

22、ion address),32位,这些字段包含了发送和接收的结点地址。(11) IP 数据的报格式中还有一些可选项。可选项是变长的,主要用于控制和测试。作为IP协议的组成部分,在所有IP协议的实现中,选项处理是不可或缺的。可选项由选项代码、长度和选项数据三项组成。目前定义了五种选项: 安全性(security),说明报文的安全程度。理论上将军事路由器可以使用此选项选择路径,使报文避开不友好的国家的路由器。实际上,所有路由器忽略该字段。 严格路由选择(strict source routing)要求报文严格按照指定路由传送。 松散路由选择(loose source routing)要求报文严格按

23、次序经过指定路由器,但是报文还可以经过其他路由器。 记录路由(record route)用来记录报文从源主机到目标主机经过的所有路由器的IP地址。 时间戳(time stamp)选项用于记录IP数据报经过每一个路由器的时间。1.4 网际协议第6版(IPv6)1.4.1 IPv6协议内容IPv6是IP协议的一个新版本,是IPv4的升级版本(RFC-791)。从IPv4到IPv6,其主要改动在以下几个方面:扩充地址容量IPv6将地址的大小从IPv4的32位扩充到了128位,以支持更多级的地址层次、更多带有地址的结点数量,以及更简单的地址自动配置。通过在组播地址中加入“scope”域,增强了组播路由

24、规模。并且IPv6定义了一种“anycast address”的新地址类型,用于向一个结点中的任意组中的任意一员发送数据包。简化报头格式一些IPv4报头域被删除或作了可选项,以减少一般情况下一个包的处理时间。并且,这样可以限制IPv6报头所占的带宽耗费。增强了对选项和扩展的支持IPv6中,IP报头选项被编码。这种变化使得数据转发更有效,并使得对选项长度的限制不像以前那样严格。而且为将来增添新的选项提供了更大的灵活性。流标志能力IPv6中加入了一种新的能力:当发送方要求对特殊路径流加以特殊处理时(比如要求非默认服务质量或是实时服务的时候),可以对这个流中的包加以标志。验证和加密能力IPv6在以下

25、方面做了扩展:支持验证,支持数据集成,支持数据加密。1.4.2 IPv6报文格式版本(version)对于IPv6来说字段是6,在IPv4到IPv6过渡的过程中,路由器通过检测该字段来确定报文类型。优先级(priority)用来表示报文的优先程度。0-7标识非实时数据,8-15用于标识实时数据。流标识(flow label)字段用来标识从源端某进程到目的端某进程之间建立起来的一条特殊连接。有效负载长度(Payload Length)标明报文中用户数据的字节数,不包括40字节的报头。下一个头部(Next Header)说明如果还有扩充头部的话,它是哪一种。站点限制(Hop Limit)也叫最大跳

26、数。说明了饱文的生存时间。相当于IPv4中的TTL。源地址(Source Address)和目的地址(Destination Address)是IP地址,长度为16字节。图1-4 IPv6报头格式IPv6的主要特点包括:(1) 扩大了地址空间,采用128位地址长度,几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。 (2) 提高了网络的整体吞吐量。由于IPv6的数据包可以远远超过64K字节,应用程序可以利用最大传输单元(MTU),获得更快、更可靠的数据传输,同时在设计上改进了选路结构,采用简化的报头定长结构和更合理的分段方法,使路由器加快数据包处理速度,提高了转发效率,从而提高网络

27、的整体吞吐量。 (3) 服务质量得到很大改善。报头中的业务级别和流标记通过路由器的配置可以实现优先级控制和QoS保障,极大地改善了IPv6的服务质量。 (4) 安全性有了更好的保证。采用IPSec可以为上层协议和应用提供有效的端到端安全保证,能提高在路由器水平上的安全性。 (5) 支持即插即用和移动性。设备接入网络时通过自动配置可自动获取IP地址和必要的参数,实现即插即用,简化了网络管理,易于支持移动节点。IPv6不仅从IPv4中借鉴了许多概念和术语,它还定义了许多移动IPv6所需的新功能。 (6) 更好地实现了多播功能。在IPv6的多播功能中增加了“范围”和“标志”,限定了路由范围和可以区分

28、永久性与临时性地址,更有利于多播功能的实现。亚太的地址空间更加匮乏,所以大多数分析家认为采用IPv6标准的国家将是那些IP地址极度匮乏的国家,如中国、印度等。对于这些国家来说,IPv6是一个新的机遇,他们可以作出以下选择:使用NAT技术用很少的地址连接到美国占主导地位的IPv4世界中;或者投资IPv6获得他们需要的众多地址,与其它的IPv6用户相连接,创建一个更大的IPv6因特网。在时机成熟之时,它们将会选择后者。其实地址空间缺乏并不单是亚洲存在,全世界都存在这样的问题。所以现在世界各国都在积极的推动IPv6和下一代网络的发展。 由于IPv4的开发是在可信赖的网络环境下进行的,缺乏安全方面考虑

29、造成了IPv4的先天不足。IPv6在IPv4的基础上在安全方面做了很多的考虑,但IPv6的实现需要硬件的支持,所以在短时间内无法大范围的推广。所以在目前的情况下针对IPv4的攻击仍然是网络安全的主要威胁。本文在后续章节中所有的论述也是主要针对IPv4。2 TCP/IP协议安全性分析Internet是基于TCP/IP协议的,TCP/IP协议具有网络互连能力强、网络技术独立,支持FTP, TELNET, SMTP和HTTP等标准应用协议等特点,是目前能够满足不同种计算机之间、异构网络之间互连要求的网络互连协议。但是,由于它主要考虑的是异种网间的互连问题,并没有考虑安全性,因此协议中存在着很多安全问

30、题。另一方面由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题又会给网络带来严重的后果和影响。2.1 TCP/IP协议主要安全隐患 TCP/IP协议的安全隐患主要有: (1) TCP/IP协议数据流采用明文传输,因此数据信息很容易被窃听、篡改和伪造。特别是在使用FTP和TELNET时,用户的帐号、口令是明文传输,所以攻击者可以截取含有用户帐号、口令的数据包,进行攻击,例如使用SNIFFER程序、SNOOP程序、网络分析仪等。(2) 源地址欺骗(Source address spoofing), TCP/IP协议是用IP地址来作为网络节点的唯一标识,但是节点的IP地址又

31、是不固定的,因此攻击者可以直接修改节点的IP地址,冒充某个可信节点的IP地址,进行攻击。下面分别来举例两种源地址欺骗攻击3。方式一:假设主机A是攻击主机,它伪装成B主机和C主机对话。A主机在发出数据包的时候,入侵者可以用软件把源地址从A主机的地址改成B主机的地址。虽然C主机的数据包仍然会发送到B主机而不是A主机,但是这对于一些黑客来说无关紧要,他们不用看到结果就能实施攻击。方式二:这是一种“中间人”式的欺骗。它会截获目标主机返回给真实主机的数据包。这种欺骗下,攻击主机可以和被攻击主机进行完整的对话,入侵者也可以看到结果,即要能截获返回的数据包。为此,攻击主机需要做到:攻击主机潜入目标主机和真实

32、主机之间的路径上,这在路径的末段最容易做到。在中间是最难的,因为根据IP网络的路径选择特点,“中间”路径的选择变化是非常大的。在机器之间改变路径,从而引导攻击机器,这取决于网络的拓扑结构以及你的网络、远程网络和其他网络之间的ISP使用的路由系统,这可能十分容易,也可能十分困难。(3) 源路由选择欺骗(Source Routing spoofing),TCP/IP协议中,IP数据包为测试目的设置了一个选项IP Source Routing,该选项可以直接指明到达节点的路由,攻击者可以利用这个选项进行欺骗,进行非法连接。攻击者可以冒充某个可信节点的IP地址,构造一个通往某个服务器的直接路径和返回的

33、路径,利用可信用户作为通往服务器的路由中的最后一站,就可以向服务器发请求,对其进行攻击。在TCP/ IP协议的两个传输层协议TCP和UDP中,由于UDP是面向非连接的,因而没有初始化的连接建立过程,所以UDP更容易被欺骗。(4) 路由选择信息协议攻击(RIP Attacks) 。RIP协议用来在局域网中发布动态路由信息,它是为了在局域网中的节点提供一致路由选择和可达性信息而设计的。可是各节点对收到的信息是不检查它的真实性的,TCP/IP协议没有提供这个功能。ICMP协议存在有安全缺口,攻击者可利用ICMP重定向报文破坏路由,并以此增强其窃听能力。(5) 鉴别攻击(Authentication

34、Attacks). TCP/IP协议只能以IP地址进行鉴别,而不能对节点上的用户进行有效的身份认证,因此服务器无法鉴别登录用户的身份有效性。目前主要依靠服务器软件平台提供的用户控制机制,比如UNIX系统采用用户名、口令。虽然口令是密文存放在服务器上,但是由于口令是静态的、明文传输的,所以无法抵御重传和窃听。而且在UNIX系统中常常将加密后的口令文件存放在一个普通用户就可以读的文件里,攻击者也可以运行己准备好的口令破译程序来破译口令,对系统进行攻击。(6) TCP序列号欺骗(TCP Sequence number spoofing)。由于TCP序列号可以预测,因此攻击者可以构造一个TCP包序列,

35、对网络中的某个可信节点进行攻击。(7) TCP序列号轰炸攻击(TCP SYN Flooding Attack),简称SYN攻击(SYN Attack),又称作拒绝服务攻击。TCP是一个面向连接、可靠的传输层协议。黑客可以不断向服务器发送连接请求,而又不返回应答包,使得服务器总处于等待状态,而无法释放资源。(8) IP栈攻击 利用操作系统缺陷,伪造某种数据包发到主机,导致目标主机TCP/IP协议栈锁死,甚至系统崩溃。以Linux上的一个实现为例来说明:Linux操作系统在它的IP数据包重装模块有一个严重的错误,当Linux收到一个IP包送到IP层进行组装,以还原IP包,它将进入一个循环中,将列队

36、的数据包的有效数据复制到一个新分配的缓冲区去。在程序中,检查了每段数据区是否过长,但没检查有效数据长度是否过小。当表示有效数据长度的量变成了一个负数的时候(length0),系统不会进行检查,结果是是将过多的数据复制到内核中去。我们可以准备这样的包,让前后包中的“fragment offset”字段交叠在一起,这样计算出来的length值变成了一个负数。因为系统的计数器是一个反码,这会造成一个非常大的数值。根据使用的内存管理机制不同,将会导致系统重启或者停机。2.2 针对TCP/IP安全漏洞进行攻击的理论分析TCP/IP协议的连接是通过三次握手实现的。图1-5是TCP/IP连接的建立和撤消的过

37、程。关于连接的过程有一个非常形象的比喻叫做两军定理。A军和B军将敌人夹在了中间,A军欲联合B军夹击敌人,于是A排出信使联系B军。B军同意夹击之后,信使返回A军。可能有人觉得到了这里,联络过程已经完成,可以发动攻击了。其实不然,虽然A军已经知道B军同意了夹击,但是B军却不知道A军是否已经知道自己同意了夹击。所以信使需要再返回B军告诉B军,A军已经收到了信息,攻击在这个时候才能确定的展开。 说到这里,问题也出现了。如果信使回到A军之后因为种种原因没有再回到B军那会出现什么样的情况呢?B军会一直等待而不敢轻易发动进攻,因为他不确定A军已经得知B军已经同意夹击计划。将这个问题转换到TCP/IP连接的过

38、程中,这个问题就是这样的:A主机向B主机发出连接请求,B主机返回同意连接请求并在内存中开辟出一个缓存之后,A主机却不再向B主机返回确认信息。于是B主机将一直等待,处于“半连接”状态直到超时。当大量这样的数据包涌向某台主机的时候,受害主机会为了维持大量的这样的半连接而耗尽资源。这便形成了一次SYN flooder攻击。 建立过程撤消过程图2-1 TCP连接建立和撤消过程 TCP连接的撤消过程使用改进的三次握手撤消连接。TCP连接是一个全双工的,可以看作是两个不同方向上的独立的数据流传输。当某个应用程序通知本端TCP软件,数据传输已完成时,该机器上的TCP软件将撤消本方向的连接。为了撤消自己一放的

39、连接,TCP软件首先将剩余数据传输完毕并确认报文的返回,然后它发送一个带FIN标志的报文给对方,接收方对FIN报文进行确认,并通知本方TCP应用程序停止接收数据。但是反方向上数据仍然可以发送,直到该方向上的连接也撤消。当两个方向上的的连接都关闭以后,在该连接的两个端点上的TCP软件就删除该连接的记录。(1) TCP/IP状态转移图和定时器TCP状态转移图控制了一次连接的初始化、建立和终止,如2-2图所示:图2-2由定义的状态以及这些状态之间的转移弧构成。TCP状态转移图与定时器密切相关,不同的定时器对应于连接建立或终止、流量控制和数据传输。几类主要的定时器及其功能如下: 连接定时器:在连接建立

40、阶段,当发送了SYN包后,就启动连接定时器。如果在 75秒内没有收到应答,则放弃连接建立。 FIN-WAIT-2定时器:当连接从FIN-WAIT-1状态转移到FIN-WAIT-2状态时,将一个FIN-WAIT-2定时器设置为10分钟。如果在规定时间内该连接没有收到一个带有置位FIN的TCP包,则定时器超时,再定时为75秒。如果在第二个时间段内仍无FIN包到达,则放弃该连接。 维持连接定时器:其作用是预测性地检测连接的另一端是否仍为活动状态。如果设置了SO-KEEPALIVE套接字选择项,则TCP状态是ESTABLISHED或CLOSE-WAIT 。图2-2 TCP状态转移图(2)网络入侵方式

41、伪造IP地址 入侵者使用假IP地址发送包,利用基于IP地址证实的应用程序联接到目的主机。其结果是未授权的远端用户进入带有防火墙的主机系统。TCP协议把通过连接而传输的数据看成是字节流,用一个32位整数对传送的字节编号。初始序列号(ISN)在TCP握手时产生,产生机制与协议实现有关。攻击者只要向目标主机发送一个连接请求,即可获得上次连接的ISN,再通过多次测量来回传输路径,得到进攻主机到目标主机之间数据包传送的来回时间RTT。已知上次连接的ISN和RTT,很容易就能预测下一次连接的ISN。若攻击者假冒信任主机向目标主机发出TCP连接,并预测到目标主机的TCP序列号,攻击者就能伪造有害数据包,使之

42、被目标主机接受。 假设有两台主机A, B和入侵者控制的主机C。假设B授予A某些特权,使得A能够获得对B所执行的一些操作。C的目标就是获得与A相同的权利。为了实现该目标,C必须执行两步操作:首先,与B建立一个虚假连接;然后,阻止A向B报告网络证实的通信。主机C必须假造A的IP地址,从而使B相信从C发来的包的确是从A发来的。主机C伪造IP地址步骤如下:首先, C冒充A,向主机B发送一个带有随机序列号的SYN包。主机B响应,向主机A发送一个带有应答号的SYN+ACK包、该应答号等于原序列号加1。同时,主机B产生自己发送包序列号,并将其与应答号一起发送。为了完成三次握手,主机C需要向主机B回送一个应答

43、包,其应答号等于主机B向主机A发送的包序列号加1 。假设主机C与A和B不同在一个子网内,则不能检测到B的包,主机C只有算出B的序列号,才能创建TCP连接。其过程描述如下: C-B: SYN(序列号=M),SRC=A B-A: SYN(序列号=N),ACK(应答号=M+1) C-B: ACK(应答号=N+1),SRC=A 同时,主机C应该阻止主机A响应主机B的包。为此,C可以等到主机A因某种原因终止运行,或者阻塞主机A的操作系统协议部分,使它不能响应主机B。一旦主机C完成了以上操作,它就可以向主机B发送命令。主机B将执行这些命令,认为他们是由合法主机A发来的。 TCP状态转移的问题图2-3非正常

44、状态转移 上述的入侵过程,主机C是如何阻止主机A向主机B发送响应的呢?主机C可以通过代表A发送一系列的SYN包,但不让A向B发送SYN-ACK包而中止主机A的登录端GI。如前所述,TCP维持一个连接建立定时器。如果在规定时间内(通常为75秒)不能建立连接,则TCP将重置连接。在前面的例子中,服务器端口是无法在75秒内作出响应的。 下面来讨论一下主机C和主机A之间相互发送的包序列。C向A发送一个包,其SYN位和FIN位0置位,A向C发送ACK包作为响应: C-A: SYN FIN(系列号=M) A-C: ACK(应答序号=M+1)从状态转移图可以看出,A开始处于监听(LISTEN)状态。当它收到

45、来自C的包后,就开始处理这个包。在TCP协议中,关于如何处理SYN和FIN同时置位的包并未作出明确的规定。假设它首先处理SYN标志位,转移到SYN-RCVD状态。然后再处理FIN标志位,转移到CLOSE-WAIT状态。如果前一个状态是ESTABLISHED,那么转移到CLOSE-WAIT状态就是正常转移。但是,TCP协议中并未对从SYN-RCVD状态到CLOSE-WAIT状态的转移作出定义。但在几种TCP应用程序中都有这样的转移,例如开放系统ULTRX4. 3。因此,在这些TCP应用程序中存在一条TCP协议中未作定义的从状态SYN-RCVD到状态CLOSE-WAIT的转移弧,如图2-3所示:在

46、上述入侵例子中,由于三次握手没能彻底完成,因此并未真正建立TCP连接,相应的网络应用程序并未从核心内获得连接。但是,主机A的TCP机处于CIOSE-WAIT状态,因此它可以向C发送一个FIN包终止连接。这个半开放连接保留在套接字侦听队列中,而且应用进程不发送任何帮助TCP执行状态转移的消息。因此主机A的TCP机被锁在了CLOSE-WAIT状态。如果维持活动定时器特征被使用,通常2小时后TCP将会重置连接并转移到CLOSED状态。当TCP机收到来自对等主机的RST时,就从ESTABLISHED, FIN-WAIT-1和FIN-WAIT-2状态转移到CLOSED状态。这些转移是很重要的,因为它们重

47、置TCP而中断网络连接。但是,由于到达的数据段只根据源IP地址和当前队列窗口号来证实。因此入侵者可以假装成已建立了合法连接的一个主机,然后向另一台主机发送一个带有适当序列号的RST段,这样就可以终止连接了。 从上面的分析可以看到几种TCP应用程序中都存在外部状态转移。这会给系统带来严重的安全性问题。 定时器问题 正如前文所述,一旦进入连接建立过程,则启动连接定时器。如果在规定时间内不能建立连接,则TCP机回到CLOSED状态。再来分析一下主机A和主机C的例子。主机A向主机C发送一个SYN包,期待着回应一个SYN-ACK包。假设几乎同时,主机C想与主机A建立连接,向A发送一个SYN包。A和C在收到对方的SYN包后都向对方发送一个SYN-ACK包。当都收到对方的SYN-ACK包后,就可认为连接己建立。在本例中,假设当主机收到对方的SYN包后,就关闭连接建立定时器。 C-A: SYN(序列号=M) A-C: SYN(序列号=N) C-A: SYN(序列号=M),ACK(应答号=N+1) A-C: SYN(序列号=N),ACK(应答号=M+l)主机C向主机A发送一个FTP请求。在C和A之间建立起一个TCP连接来传送控制信号。主机A向C发送一个SYN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁