因特网与TCPIP安全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章因特网与TCP/IP安全因特网与TCP/IP安全5.1TCP/IP协议栈5.2互联网地址5.3协议封装5.4IP协议5.5TCP协议5.6UDP协议5.7ARP/RARP协议5.8ICMP协议5.9网络服务的安全性第5章因特网与TCP/IP安全5.1TCP/IP协议栈因特网(Internet)依赖于一组称为TCP/IP的协议组。TCP/IP是一组通信协议集的缩写,它包含了一组互补和合作的协议。所有这些协议共同工作,以便在因特网上传输信息。我们知道,ISO/OSI模型将网络表示为一个垂直的模块(或分层)协议栈,每层完成特定的功能。TCP/IP协议栈只是许多支持ISO/OSI分层模型的协议栈的一种。TCP/IP通常被认为是一个四层协议系统,如图5-1所示。第5章因特网与TCP/IP安全ISO/OSI参考模型将网络设计划分成七个功能层,但此模型只起到一个指导作用——它本身并不是一个规范。例如,TCP/IP网络只使用ISO/OSI模型的五层。图5-2显示了一个简单的五层网络模型,其中每层都采用了TCP/IP协议。网络层和相应的协议层组成了该模型,数据通过此模型在应用程序和网络硬件之间进行传递。第5章因特网与TCP/IP安全图5-2中,有箭头的线表示不同的网络软件和硬件之间可能的通信信道。例如,为了和传输层通信,应用程序必须与用户数据报协议(UDP)或传输控制协议(TCP)模块对话;为了和网络层通信,应用程序必须与互联网控制报文协议(ICMP)或者互联网协议(IP)模块对话。但是,不管数据通过什么路径从应用层到网络层,数据都必须经过IP模块才能到达网络硬件。第5章因特网与TCP/IP安全图5-1ISO/OSI模型与TCP/IP协议栈应用层传输层表示层会话层RARP硬件接口ARP链路层IGMPIPICMP网络层传输层物理层数据链路层网络层UDPTCPprogramprogram应用层应用程序第5章因特网与TCP/IP安全图5-2TCP/IP协议栈各相关协议UDPTCPprogramprogram应用层应用程序programprogramRARP硬件接口ARPIGMPIPICMP传输线传输层网络层链路层物理层第5章因特网与TCP/IP安全在TCP/IP协议体系结构中,每层负责不同的网络通信功能:(1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其它任何传输媒介)的物理接口细节以及数据帧(Frame)的组装。(2)网络层,有时也称作互联网层,处理分组(Packet)在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议、ICMP协议以及IGMP协议(因特网组管理协议)。第5章因特网与TCP/IP安全(3)传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块(段:Segment)交给下面的网络层、确认接收到的分组报文、设置发送的最后确认分组的超时时钟等。由于传输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。第5章因特网与TCP/IP安全另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报(Datagram)的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必要的可靠性必须由应用层自己负责提供。这两种传输层协议在不同的应用程序中分别有不同的用途,这一点将在后面看到。第5章因特网与TCP/IP安全(4)应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:①Telnet(远程登录)②FTP(文件传输协议)③SMTP(简单邮件传输协议)④SNMP(简单网络管理协议)第5章因特网与TCP/IP安全5.2互联网地址互联网上的每个接口必须有一个惟一的互联网地址(也称作IP地址),长32比特。互联网地址并不采用平面形式的地址空间,如1、2、3等,它具有一定的层次结构。五类不同的互联网地址格式如图5-3所示。第5章因特网与TCP/IP安全图5-3五类互联网地址0网络号7位A类1网络号14位B类01网络号21位C类011多播组号28位D类0111保留27位E类0111主机号8位主机号主机号24位16位第5章因特网与TCP/IP安全图5-4各类IP地址的范围类型ABCDE范围0.0.0.0到127.255.255.255128.0.0.0到191.255.255.255192.0.0.0到223.255.255.255224.0.0.0到239.255.255.255240.0.0.0到247.255.255.255第5章因特网与TCP/IP安全这些32位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作“点分十进制表示法”(DottedDecimalNotation)。例如,作者的系统就是一个B类地址,它表示为:140.252.13.33。区分各类地址的最简单方法是看它的第一个十进制整数。图5-4列出了各类地址的起止范围,其中第一个十进制整数用加黑字体表示。需要注意的是,多接口主机(例如路由器)具有多个IP地址,其中每个接口都对应一个IP地址。第5章因特网与TCP/IP安全5.3协议封装当应用程序用TCP/IP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些头部信息(有时还要增加尾部信息),该过程如图5-5所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCPSegment)。IP传给网络接口层的数据单元称作IP分组(IPDatagram)。通过以太网传输的比特流称作帧(Frame)。第5章因特网与TCP/IP安全图5-5中帧头和帧尾下面所标注的数字是典型以太网帧头部的字节长度。以太网数据帧的物理特性是其长度必须在46~1500字节之间。有些TCP/IP协议文献也使用octet这个术语来表示字节。更准确地说,图5-5中IP和网络接口层之间传送的数据单元应该是包(Packet)。包既可以是一个IP数据报,也可以是IP数据报的一个片(Fragment)。我们将在下一节讨论IP数据报分片的详细情况。第5章因特网与TCP/IP安全图5-5在以太网上使用TCP进行数据封装以太网首部IP首部TCP首部应用数据以太网尾部1420204以太网帧46~1500字节以太网驱动程序IPIP首部TCP首部应用数据TCP首部应用数据用户数据App首部用户数据TCP应用程序第5章因特网与TCP/IP安全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协议。第5章因特网与TCP/IP安全类似地,许多应用程序都可以使用TCP或UDP来传送数据。传输层协议在生成报文首部时要存入一个应用程序的标识符。TCP和UDP都用一个16比特的端口号来表示不同的应用程序。TCP和UDP把源端口号和目的端口号分别存入传输层报文首部中。网络接口分别要发送和接收IP、ARP和RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16比特的帧类型域。以下简单介绍TCP/IP中的各协议具备的功能及其工作原理。第5章因特网与TCP/IP安全5.4IP协议网际协议IP是TCP/IP的核心,也是网络层中最重要的协议。IP层接收由更低层(网络接口层,例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层——TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP协议是不可靠的协议,因为IP并没有做任何事情来确认数据包是否按顺序发送或者有没有被破坏。IP数据包中含有发送它的主机的IP地址(源地址)和接收它的主机的IP地址(目的地址)。第5章因特网与TCP/IP安全IP数据包的格式如图5-6所示。普通的IP首部字段包含20个字节,除非含有选项部分。分析图5-6中的首部。最高位在左边,记为第0比特;最低位在右边,记为第31比特。四个字节的32比特值以下面的次序传输:首先是0~7比特,其次是8~15比特,然后是16~23比特,最后是24~31比特。这种传输次序称作大字节(BigEndian)顺序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。以其它形式存储二进制整数的机器,如小字节(LittleEndian)格式,则必须在传输数据之前把首部转换成网络字节序。第5章因特网与TCP/IP安全图5-6IP数据包格式及首部中的各字段4位版本号4位首部长度8位服务类型(TOS)16位总长度(TotalLength)16位标识符(Identifier)3位标志13位片偏移(Offset)8位生存时间(TTL,TimeToLive)8位协议(Protocol)16位首部校验和(Checksum)32位源IP地址(SourceAddress)32位目的IP地址(DestinatinAddress)32位选项(若有)数据015163120字节第5章因特网与TCP/IP安全目前的协议版本号(Version)是4,因此IP有时也称作IPv4。首部长度(HeaderLength)指的是首部以32比特为单位的长度,其中包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节。普通IP数据报(没有任何选择项)字段的值是5。总长度(TotalLength)字段是指整个IP数据报的长度,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16比特,所以IP数据包最长可达65535字节。第5章因特网与TCP/IP安全总长度字段是IP首部中必需的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节(见图5-5),但是IP数据可能会更短,如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。标识(Identifier)字段惟一地标识主机发送的每一份数据报。第5章因特网与TCP/IP安全TTL(TimeToLive,生存时间)字段设置了数据报可以经过的最多路由器数。它指定了数据包的生存时间。TTL的初始值由源主机设置(通常为128或64),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值为0时,数据包就被丢弃,并发送ICMP报文通知源主机。常用的网络工具Traceroute就是利用的该字段。第5章因特网与TCP/IP安全高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP协议包含一个选项,叫作IP源路由选项(SourceRouting),可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而设计的,利用该选项可以欺骗系统,使之放行那些通常是被禁止的网络连接。因此,许多依靠IP源地址进行身份认证的服务将会产生安全问题以至被非法入侵。第5章因特网与TCP/IP安全在我们深入讨论各种基于IP的攻击之前,将首先介绍一个很关键的概念——欺骗(Spoofing)。也就是说,伪造一个假的源IP地

1 / 234
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功