[精选]因特网与TCPIP安全.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《[精选]因特网与TCPIP安全.pptx》由会员分享,可在线阅读,更多相关《[精选]因特网与TCPIP安全.pptx(235页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、因特网与因特网与TCP/IP安全安全 5.1 TCP/IP协议栈协议栈 5.2 互联网地址互联网地址 5.3 协议封装协议封装 5.4 IP协议协议 5.5 TCP协议协议 5.6 UDP协议协议 5.7 ARP/RARP协议协议 5.8 ICMP协议协议 5.9 网络效劳的安全性网络效劳的安全性 5.1 TCP/IP协议栈协议栈 因特网Internet依赖于一组称为TCP/IP的协议组。TCP/IP是一组通信协议集的缩写,它包含了一组互补和合作的协议。所有这些协议共同工作,以便在因特网上传输信息。我们知道,ISO/OSI模型将网络表示为一个垂直的模块或分层协议栈,每层完成特定的功能。TCP/
2、IP协议栈只是许多支持ISO/OSI分层模型的协议栈的一种。TCP/IP通常被认为是一个四层协议系统,如图5-1所示。ISO/OSI参考模型将网络设方案分成七个功能层,但此模型只起到一个指导作用它本身并不是一个标准。例如,TCP/IP网络只使用ISO/OSI模型的五层。图5-2显示了一个简单的五层网络模型,其中每层都采用了TCP/IP协议。网络层和相应的协议层组成了该模型,数据通过此模型在应用程序和网络硬件之间进行传递。图5-2中,有箭头的线表示不同的网络软件和硬件之间可能的通信信道。例如,为了和传输层通信,应用程序必须与用户数据报协议UDP或传输控制协议TCP模块对话;为了和网络层通信,应用
3、程序必须与互联网控制报文协议ICMP或者互联网协议IP模块对话。但是,不管数据通过什么路径从应用层到网络层,数据都必须经过IP模块才能到达网络硬件。图5-1ISO/OSI模型与TCP/IP协议栈图5-2TCP/IP协议栈各相关协议在TCP/IP协议体系结构中,每层负责不同的网络通信功能:1链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆或其它任何传输媒介的物理接口细节以及数据帧Frame的组装。2网络层,有时也称作互联网层,处理分组Packet在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议、
4、ICMP协议以及IGMP协议因特网组管理协议。3传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP传输控制协议和UDP用户数据报协议。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成适宜的小块段:Segment交给下面的网络层、确认接收到的分组报文、设置发送的最后确认分组的超时时钟等。由于传输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。另一方面,UDP则为应用层提供一种非常简单的效劳。它只是把称作数据报Datagram的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任
5、何必要的可靠性必须由应用层自己负责提供。这两种传输层协议在不同的应用程序中分别有不同的用途,这一点将在后面看到。4应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:Telnet远程登录FTP文件传输协议SMTP简单邮件传输协议SNMP简单网络管理协议5.2 互互 联联 网网 地地 址址互联网上的每个接口必须有一个惟一的互联网地址也称作IP地址,长32比特。互联网地址并不采用平面形式的地址空间,如1、2、3等,它具有一定的层次结构。五类不同的互联网地址格式如图5-3所示。图5-3五类互联网地址图5-4各类IP地址的范围这些32位的地址通常写成四个十进
6、制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法DottedDecimalNotation。例如,作者的系统就是一个B类地址,它表示为:140.252.13.33。区分各类地址的最简单方法是看它的第一个十进制整数。图5-4列出了各类地址的起止范围,其中第一个十进制整数用加黑字体表示。需要注意的是,多接口主机例如路由器具有多个IP地址,其中每个接口都对应一个IP地址。5.3 协协 议议 封封 装装当应用程序用TCP/IP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些头部信息有时还要增加尾部信息,该过程如图5-
7、5所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段TCPSegment。IP传给网络接口层的数据单元称作IP分组IPDatagram。通过以太网传输的比特流称作帧Frame。图5-5中帧头和帧尾下面所标注的数字是典型以太网帧头部的字节长度。以太网数据帧的物理特性是其长度必须在461500字节之间。有些TCP/IP协议文献也使用octet这个术语来表示字节。更准确地说,图5-5中IP和网络接口层之间传送的数据单元应该是包Packet。包既可以是一个IP数据报,也可以是IP数据报的一个片Fragment。我们将在下一节讨论IP数据报分片的详细情况。图5-5在以太网上使用TCP进行数据
8、封装UDP数据与TCP数据基本一致。惟一的不同是UDP传 给 IP的 信 息 单 元 称 作 UDP数 据 报 UDPDatagram,而且UDP的首部长为8字节。回想前面的图5-2,由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中参加某种标识,以说明数据属于哪一层。为此,IP在首部中存入一个长度为8比特的字段,称作协议域。1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。类似地,许多应用程序都可以使用TCP或UDP来传送数据。传输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16比特的端口号
9、来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入传输层报文首部中。网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中参加某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16比特的帧类型域。以下简单介绍TCP/IP中的各协议具备的功能及其工作原理。5.4 IP 协协 议议网际协议IP是TCP/IP的核心,也是网络层中最重要的协议。IP层接收由更低层网络接口层,例如以太网设备驱动程序发来的数据包,并把该数据包发送到更高层TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP协议是不可靠的协议,因为
10、IP并没有做任何事情来确认数据包是否按顺序发送或者有没有被破坏。IP数据包中含有发送它的主机的IP地址源地址和接收它的主机的IP地址目的地址。IP数据包的格式如图5-6所示。普通的IP首部字段包含20个字节,除非含有选项局部。分析图5-6中的首部。最高位在左边,记为第0比特;最低位在右边,记为第31比特。四个字节的32比特值以下面的次序传输:首先是07比特,其次是815比特,然后是1623比特,最后是2431比特。这种传输次序称作大字节BigEndian顺序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。以其它形式存储二进制整数的机器,如小字节L
11、ittleEndian格式,则必须在传输数据之前把首部转换成网络字节序。图5-6IP数据包格式及首部中的各字段目前的协议版本号Version是4,因此IP有时也称作IPv4。首部长度HeaderLength指的是首部以32比特为单位的长度,其中包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。普通IP数据报没有任何选择项字段的值是5。总长度TotalLength字段是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据包最长可达65535字节。总长度字段是IP首部中必需的内容,因为一
12、些数据链路如以太网需要填充一些数据以到达最小长度。尽管以太网的最小帧长为46字节见图5-5,但是IP数据可能会更短,如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。标识Identifier字段惟一地标识主机发送的每一份数据报。TTLTimeToLive,生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据包的生存时间。TTL的初始值由源主机设置通常为128或64,一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据包就被丢弃,并发送ICMP报文通知源主机。常用的网络工具Traceroute就是利用的该字段。高层的TCP和UDP效劳在接收数据包时
13、,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多效劳的认证基础,这些效劳相信数据包是从一个有效的主机发送来的。IP协议包含一个选项,叫作IP源路由选项SourceRouting,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的效劳来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而设计的,利用该选项可以欺骗系统,使之放行那些通常是被禁止的网络连接。因此,许多依靠IP源地址进行身份认证的效劳将会产生安全问题以至被非法入侵。在我们深入讨论各种基于IP的攻击之前,将首先介绍一个很关键的概念欺骗Spoo
14、fing。也就是说,伪造一个假的源IP地址的包是非常容易的,当另外的主机接收到这个包时,会以为包来自假冒的发送者,这个过程称为欺骗目标机器。使用欺骗技术的原因很多,但是最为重要的要数获得匿名性,通过对包的欺骗,攻击看起来是来自其它地方。同样,当攻击者发现某机器的身份具有访问某些资源的特权时,也会使用欺骗技术。IP协议存在的安全问题不少,下面我们选择一些比较典型的攻击案例来分析其安全性。1死亡之pingpingofdeath最简单的基于IP的攻击可能要数著名的死亡之pingpingofdeath,这种攻击主要是由于单个包的长度超过了IP协议标准所规定的包长度。产生这样的包很容易,事实上,许多操作
15、系统都提供了称为ping的网络工具。在WIN98中,开一个DOS窗口,输入ping-l65510the.target.ip.addr就可到达该目的。UNIX系统也有类似情况。死亡之ping是如何工作的呢?首先是因为以太网帧长度有限,IP包必须被分片。当一个IP包的长度超过以太网帧的最大尺寸以太网头部和尾部除外时,包就会被分片,作为多个帧来发送。接收端的机器提取各个分片,并重组为一个完整的IP包。在正常情况下,IP头包含整个IP包的长度。当一个IP包被分片以后,头只包含各个分片的长度。分片并不包含整个IP包的长度信息,因此IP包一旦被分片,重组后的整个IP包的总的长度只有在所有的分片都接收完毕之
16、后才能确定。在IP协议标准中规定了一个IP包的最大尺寸,而大多数的包处理程序又假设包的长度超过这个最大尺寸这种情况是不会出现的。因此,包的重组代码所分配的内存区域也最大不超过这个最大尺寸。这样,超大的包一旦出现,包当中的额外数据就会被写入其它正常内存区域。这很容易导致系统进入非稳定状态,是一种典型的缓存溢出BufferOverflow攻击。在防火墙一级对这种攻击进行检测是相当难的,因为每个分片包看起来都很正常。由于使用ping工具很容易完成这种攻击,以至于它也成了这种攻击的首选武器,这也是这种攻击名字的由来。当然,还有很多程序都可以做到这一点,因此仅仅阻塞ping的使用并不能够完全解决这个漏洞
17、。预防死亡之ping的最好方法是对操作系统进行补丁,这样,内核将不再对超过规定长度的包进行重组。2泪滴Teardrop攻击Teardrop攻击同死亡之ping有些类似,在这儿,一个大IP包的各个分片包并非首尾相连,而是存在重叠Overlap现象。在图5-7中,分片1的偏移等于0,长度等于15,分片2的偏移为5,这意味着分片2是从分片1的中间位置开始的,即存在10字节的重叠。系统内核将试图消除这种重叠,但是如果存在重叠段的分片包长度小于重叠局部长度如图5-8所示,内核将无法进行正常处理。图5-7正常的两个包重叠处理图5-8分片2没有足够的数据来覆盖重叠区3源路由SourceRouting实际中,
18、黑客从来不会直接从自己的机器向目标机器发送一个数据包,这很容易被跟踪。相反,它们会利用其它网络中已经获得非授权使用的机器来进行攻击。这样,对攻击的跟踪将变得困难。另外,通过利用IP协议的某些额外选项可以让黑客的攻击锦上添花,那就是IP源路由选项允许发送者指定包的路由。它有两种形式:1严格的Strict源路由选项。发送端指明IP数据报所必须采用确实切路由。如果一个路由器发现源路由所指定的下一个路由器不在其直接连接的网络上,那么它就返回一个“源站路由失败的ICMP过失报文。2宽松的Loose源站选路。发送端指明了一个数据报经过的IP地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其它路由
19、器。源路由选项允许黑客伪装成其它的可信任机器,这使得黑客攻击变得难于跟踪。幸运的是,大多数的主要效劳都不使用源路由选项,我们可以使用防火墙来过滤掉任何的源路由选项数据包。5.5 TCP 协协 议议 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向“上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包含序列号和应答号,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的效劳程序和客户程序。应用程序轮流将信息送回TCP层,TCP层将它们向下传送到IP层、设备驱动程序和物理介质,最后到接收方。
20、面向连接的效劳例如Telnet、FTP、rlogin、XWindows和SMTP需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP发送和接收域名数据库,但通常使用UDP传送有关单个主机的信息。图5-9所示是TCP首部的数据格式,如果没有任选字段,其长度是20个字节。图5-9TCP首部每个TCP段都包含源端和目的端的端口号,用于定位发端和收端的应用进程。这两个值加上IP首部的源IP地址和目的IP地址可以惟一确定一条TCP连接。在TCP首部中有6个标志比特,它们中的多个可同时被设置为1。在此只给出各个比特的功能说明在随后的章节会有更详细介绍:URG紧急指针有效ACK确认序列号有效
21、PSH接收方应当尽快将这个报文交给应用层RST连接复位SYN同步序列号用来发起一个连接FIN发送端完成发送任务TCP要处理的另外一个问题是当多个效劳器同时运行在一个IP地址上时会出现什么问题?许多应用程序使用TCP来提供可靠数据传输。例如同时提供Web效劳器、邮件效劳器、XWindows效劳器等等。所有这些都使用TCP协议来接收其它计算机的连接请求。那么计算机如何确定一个客户想要连接的是什么效劳呢?5.5.1端口号IP头包含了目标机器的IP地址,但是包当中没有任何可以说明某个特定应用的信息。由于一个IP地址可以同许多效劳相绑定,因此需要额外的头信息。解决方法就是所谓的TCP端口号,TCP端口提
22、供运行在某机器上每个应用效劳的地址。当一个应用效劳器启动时,它必须告诉机器它所使用的TCP端口号。通过使用TCP端口号可以标识一台机器上的多个目的进程。每个端口都被赋予一个小的整数端口号以便识别。客户机上的客户端在翻开一个TCP连接时TCP连接称为Socket也被绑定到一个特定的端口上。客户的端口号和IP地址同样都包含在每个TCP包中发送的和接收的。客户端使用的端口号很少被标准化,效劳器可以通过查看TCP头的源端口域来获得。有两种方式获得端口号:1事先设计,硬编码在小型客户效劳器专用软件包内。2标准效劳,如FTP效劳器运行在21号端口。TCP使用连接而不是协议端口作为基本的抽象概念;连接是用一
23、对端点来标识。那么,一个连接的端点究竟是什么呢?我们往往认为一个连接是由两个应用程序之间的虚电路组成的,所以把应用程序当作端点的想法很自然。然而这种看法是不正确的。实际情况中,TCP把端点endpoint定义为一对整数,即host,port,其中,host是主机的IP地址,而port则是主机上的TCP端口号。例如,端点128.10.2.3,25表示的是IP地址为128.10.2.3的主机上的25号TCP端口。5.5.2TCP安全缺陷LAND攻击是最简单的一种TCP攻击方法:将TCP包的源地址和目的地址,源端口和目的端口都设置成相同即可。其中,地址字段都设置为目标机器的IP地址。需要注意的是,对
24、应的端口所提供的效劳器必须是激活的。LAND攻击可以非常有效地使目标机器重新启动或者死机。这种攻击能够奏效的原因在于TCP连接的可靠特性。为了使连接可靠,TCP完成两个关键的任务:1初始化连接:也就是在客户和效劳器之间进行三次握手Three-wayHandshake。三次握手协议完成两个重要功能:确保连接双方做好数据传输准备而且他们知道对方准备好了,而且使得双方统一了初始序列号。序列号可以帮助TCP确认包的顺序以及包是否丧失。2应答每个接收到的数据包。如果在规定时间内应答没有被接收到,包被重传。LAND攻击利用TCP初始连接建立期间的应答方式存在的问题,攻击的关键在于效劳器端和客户端有各自的序
25、列号。例如,效劳器端的序列号可以是1,2,3,4,而客户端的序列号可能是1001,1002,1003,。对于每一次数据传输,接收端都必须发送一个应答包,其中包含期望从发送端所接收的下一个包的序列号。例如,发送端说“我正在给你发送1000个字节,序列号为5000。接收端则应答:“好,我收到了,我正在等待序列号为6001的字节5000+1000+1。攻击从发送一个包含随机序列号的数据包作为第一次握手开始。目标计算机说,OK,这是我的序列号,然后对其序列号加1在此没有数据传送进行应答,并送回给攻击者。这是第二次握手。如果是正常握手过程,攻击者应当能够收到这个包,并且对目标机器的序列号加1进行应答,并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 因特网 TCPIP 安全
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内