1、介绍,网络攻击防御与安全管理技术高级培训信息产业部信息化专家、督导 王宝会 W,第二章 TCP/IP协议安全基础,What Is the Typical Hacker/Cracker Like?,Can code in C, C+, or Perl-These are general requirements, because many of the baseline security tools are written in one or more of these languages. Has an in-depth knowledge of TCP/IP Uses the Interne
2、t more than 50 hours per month Intimately knows at least two operating systems-UNIX or VMS Has (or had) a job using computers Collects old, vintage, or outdated computer hardware or software 链接网络最高安全技术指南,TCP/IP协议安全基础,网络层协议的安全性 ARP协议 IP协议 ICMP协议 IGMP协议 传输层协议的安全性 UDP协议 TCP协议 应用层协议的安全性(FTP、HTTP、SMTP、SN
3、MP、DNS ),高级TCP/IP分析(一),70年代中期,美国国防部高级计划署开始着手全美范围内异种计算机间的连接 那时,计算机与计算机间的连接使用的还只是点对点专用线路,计算机与计算机的通讯规约采用的是各厂家自行定义的专门协议,可以互连,可以互连,不可互连,高级TCP/IP分析(二),如何实现不同网络及计算机间的互操作成为计算机联网的最关键问题 到八十年代末九十年代初,有了肯定的答案:这就是采用TCP/IP协议,第1节 TCP/IP协议栈 第2节 物理层的安全威胁 第3节 网络层的安全威胁 第4节 传输层的安全威胁 第5节 应用层的安全威胁 第6节 IPSec协议 第7节 IPv6,TCP
4、/IP协议栈,TCP/IP协议的起源和发展 TCP/IP协议集 TCP/IP的体系结构和特点 VLSM和CIDR技术,协议,协议是为了在两台计算机之间交换数据而预先规定的标准。TCP/IP并不是一个协议,而是许多协议,而TCP和IP只是其中两个基本协议而已 以寄信为例,正确的地址,姓名,邮政编码以及正确的格式才可以让信寄到收信人手中,TCP/IP协议的起源和发展,在TCP/IP协议成为工业标准之前,TCP/IP协议经历了近12年的实际测试 1980年,高研署在它的网络上首先采用TCP/IP协议,TCP/IP协议集,TCP/IP(传输控制协议/网间协议)是一组网络通信协议,它规范了网络上的所有通
5、信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式,TCP/IP的安全来由,力求简单高效的设计初衷使TCP/IP协议集的许多安全因素未得以完善 安全缺陷的一些表现: TCP/IP协议数据流采用明文传输 TCP/IP协议以IP地址作为网络节点的唯一标识,此举并不能对节点上的用户进行有效的身份认证 协议本身的特点被利用实施网络攻击 ,TCP/IP的体系结构和特点,ISO/OSI网络的七层结构模型 TCP/IP网络的四层结构模型,OSI网络的七层结构模型,网络设计者在解决网络体系结构时经常使用ISO/OSI(国际标准化组织/开放系统互连)七层模型 该模型总分为7层:物理层、数据链路层、
6、网络层、传输层、会话层、表示层和应用层 每一层代表一定层次的网络功能,OSI七层示意图,OSI参考模型从上到下共分为七层, 最上层为用户面对的应用层 任何一次两个用户之间的通信都需要经过这七层的数据转换,电子邮件为例,E-mail软件:Outlook, Netscape,文字!?翻译、加密,会话方式:登录、传送、释放,无误传输:分段重组、保证服务,网络间:寻址、路径选择、交换,数据流:信道争用、数据维护,电气信号:电气、机械、功能等,Application Presentation Session Transport Network Data Link Physical,比特位,数据帧,数据包
7、,数据段,ISO/OSI数据流向,Application Process X,Application Process Y,Application Data,Communication Path,Physical Transmission medium,Outgoing Frame construction,Incoming Frame reduction,ISO/OSI参考模型各层的功能,TCP/IP网络的四层结构模型,OSI参考模型与TCP/IP模型对比,TCP/IP层次结构图,TCP/IP层次结构(一),TCP/IP层次结构(二),TCP/IP层次结构(三),3.1.4VLSM和CIDR技
8、术,IP地址 VLSM可变长子网掩码 CIDR无类别编址,IP地址(一),IP网络使用32位地址,通常由点分十进制表示如:202.112.14.1 它主要由两部分组成 一部分是用于标识所属网络的网络地址 另一部分是用于标识给定网络上的某个特定的主机的主机地址,IP地址(二),有类地址的局限性,IPv4使用32位的地址,即在IPv4的地址空间中只有232(4,294,967,296,低于43亿)个地址可用 IPv4的地址是按照网络的大小(所使用的IP地址数)来分类的,它的寻址方案使用“类”的概念。A、B、C三类IP地址的定义很容易理解,也很容易划分,但是在实际网络规划中,他们并不利于有效地分配有
9、限的地址空间,子网(一),一般地,32的IP地址被分为两部分,即网络号和主机号 为提高IP地址的使用效率,子网编址的思想是将主机号部分进一步划分为子网号和主机号,引入子网模式后,网络号部分加上子网号才能全局唯一地标识一个物理网络。,子网(二),子网编制模式下的路由表条目变为 子网掩码,目的网络地址,下一路由器地址 这样可以用子网掩码的设置来区分不同的情况,使路由算法更为简单,子网(三),子网结构 设子网掩码,子网掩码与目的地址相与,获得子网地址 特定主机 掩码32位为全“1”,将32位地址全部截下,子网(四),缺省路由 掩码为全“0”,目的地址也为全“0”,将报文直接送往缺省端口地址 无子网结
10、构 掩码中“1”的个数与网络号位数相同,可变长子网掩码,VLSM(Variable Length Subnet Mask, 可变长子网掩码) 这是一种产生不同大小子网的网络分配机制。VLSM将允许给点到点的链路分配子网掩码255.255.255.252,而给Ethernet网络分配255.255.255.0。VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用。但是需要注意的是使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2,OSPF,EIGRP和BGP,CIDR无类别编址(一),CIDR无类别编址(Classless Inter Domai
11、n Routing ),CIDR无类别编址(二),把许多C类地址合起来作B类地址分配。采用这种分配多个IP地址的方式,使其能够将路由表中的许多表项归并(summarization)成更少的数目。要使用这种归并,必须满足以下三种特性 为进行选路要对多个IP地址进行归并时,这些IP地址必须具有相同的高位地址比特; 路由表和选路算法必须扩展成根据32位IP地址和32位掩码做出选路决策的算法; 必须扩展选路协议使其除了32位地址外,还要有32位掩码。OSPF和RIP-2都能够携带第4版BGP所提出的32位掩码。,TCP/IP协议栈,3.2物理层的安全威胁,物理层介绍 物理层的安全风险分析,3.2.1物
12、理层介绍,第一层称为物理层(Physical Layer),这一层负责传送比特流 提供建立、维护和拆除物理链路所需的机械、电气、功能和规程特性 通过传输介质进行数据流的物理传输,故障检测和物理层管理,3.2.2物理层的安全风险分析,网络分段 网络拓扑,网络分段,网络分段可分为物理分段和逻辑分段两种方式,物理分段通常是指将网络从物理层和数据链路层(ISO/OSI模型中的第一层和第二层)上分为若干网段,各网段相互之间无法进行直接通讯 目前,许多交换机都有一定的访问控制能力,可实现对网络的物理分段,网络拓扑,安全管理员必须了解他们保护的网络的所有布局。黑客最常用的攻击和渗透到网络中的种方法是在公司内
13、部主机上安装一个packetsniffer。记住物理定义了介质上的电子信号。局域网使用基带传输,任何线缆上传输的数据将可被任何可以物理连接的人得到。理解你的网络布局可以帮助阻止未知的sniffer 发生。最普通的网络拓扑结构是星型,总线型,环型,和复合型,3.3网络层的安全威胁,网络层介绍 网络层的安全威胁 网络层的安全性 网络层的安全防护,3.3.1网络层介绍,网络层主要用于寻址和路由。它并不提供任何错误纠正和流控制的方法。网络层使用较高效的服务来传送数据报文,Internet 协议(IP),0 7 15 2 3 3 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
14、-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |版本号| IHL | 服务类型 | 总长度 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 识别码 |标志 | 片偏置位 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 寿命 | 协议 | 报头校验和 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 源地址 |
15、 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 目的地址 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 选项 | 填空 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+,3.3.2网络层的安全威胁,IP 欺骗 Internet 控制信息协议(ICMP),IP 欺骗(一),黑客经常利用一种叫做IP 欺骗的技术,把源IP 地址替换成
16、个错误的IP 地址。接收主机不能判断源IP 地址是不正确的 使用IP 欺骗的一种攻击很有名的一种是Smurf攻击 Smurf 攻击是种拒绝服务攻击,IP 欺骗(二),一个Smurf 攻击向大量的远程主机发送一系列的ping 请求命令。黑客把源IP 地址换成想要攻击目标主机的IP 地址。所有的远程计算机都响应这些ping 请求,然后对目标地址进行回复而不是回复给攻击者的IP 地址用。目标IP 地址将被大量的ICMP 包淹没而不能有效的工作,Internet 控制信息协议(ICMP),当用户ping 一台主机想看它是否运行时,用户端就正在产生了一条ICMP 信息。远程主机将用它自己的ICMP 信息
17、对ping 请求作出回应。这种过程在多数网络中不成问题。然而,ICMP 信息能够被用于攻击远程网络或主机,3.3.3网络层的安全性,主要优点:透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动 主要缺点:网络层一般对属于不同进程和相应条例的包不作区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需的功能,也会导致性能下降,3.3.4网络层的安全威胁,网络分段,网络安全扫描技术,入侵检测技术,VPN技术,加密技术 、数字签名和认证技术,防火墙服务,VLAN的实现,网络层的安全防护,3.4传输层的安全威胁,传输层介绍 传输层
18、的安全性,3.4.1传输层介绍,传输层控制主机间传输的数据流。传输层存在两个协议,传输控制协议(TCP)和用户数据报协议(UDP),传输层TCP 和 UDP,TCP 是一个面向连接的协议 UDP是一个非面向连接的协议,传输控制协议(TCP)(一),传输层协议,由上层协议接收任意长度的报文,并提供面向连接的传输服务 TCP接收数据流,并分成段,然后将这些段送给IP,因IP为无连接的,所以TCP必须为每个段提供顺序同步,传输控制协议(TCP)(二),TCP 握手,用户数据报协议(UDP),传输层协议,为无确认的数据报服务,只是简单的接收和传输数据 UDP比TCP传输数据快,3.4.2传输层的安全性
19、,传输层安全机制的缺点 要对传输层IPC界面和应用程序两端都进行修改 基于UDP的通信很难在传输层建立起安全机制来 传输层安全机制的主要优点它提供基于进程对进程的(而不是主机对主机的)安全服务,3.5应用层的安全威胁,应用层介绍 应用层的安全性 应用层的安全防护,3.5.1应用层介绍,简单邮件传输协议(SMTP) 文件传输协议(FTP) 超文本传输协议(HTTP) 远程连接服务标准协议(Telnet) 简单网络管理协议(SNMP) 域名系统(DNS),DNS,SNMP,Telnet,HTTP,FTP,SMTP,3.5.2应用层的安全性,想要区分一个具体文件的不同的安全性要求,那就必须借助于应用
20、层的安全性 提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段 应用层提供安全服务 对每个应用(及应用协议)分别进行修改,3.5.3应用层的安全防护,实施强大的基于用户的身份认证 实施数据加密,访问控制的理想位置 加强数据的备份和恢复措施 对资源的有效性进行控制,资源包括各种数据和服务,3.6.1IPSec协议(一),IPSec细则首先于1995年在互联网标准草案中颁布 IPSec可以保证局域网、专用或公用的广域网及Internet上信息传输的安全 IPSec的主要特征在于它可以对所有IP级的通信进行加密和认证,3.6.2IPSec协议(二),IPSec提供三种形式来保护通过IP网络
21、传送的私有数据 数据认证-可以确定所接受的数据与所发送的数据在数据完整性方面是一致的,同时可以确定申请发送者在实际上是真实发送者,而不是伪装的 完整-保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变 机密性-使相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容,3.7期望:下一代IP协议-IPv6,从IPv4向IPv6过渡 IPv6发展现状,3.7.1从IPv4向IPv6过渡,通过双协议栈实现过渡 双协议栈是保证能对IPv6和IPv4服务访问的关键,双协议栈方案的工作方式,3.7.2IPv6技术,隧道技术 翻译器技术,隧道技术,所谓隧道,就是在一
22、方将IPv6的包封装在IPv4包里,然后在目的地将其解封,得到IPv6包,翻译器技术,IPv6发展现状,IETF正在制定大量的IPv6相关标准,包括地址结构、域名解析、安全、自动配置、邻居发现、路由协议等方面 IETF于1996年建立了全球范围的试验床(Testbed),称作6Bone 1998年6月我国国家教育科研网CERNET也加入了6Bone,并于同年12月成为其骨干成员 2003年IPv6网络将进入大规模实施阶段,之后IPv4和IPv6将保持长时间共存,并最终过渡到IPv6,IPv6的特点,与原有的IPv4相比,IPv6有如下优点 更大的地址:将32比特的地址增大为128比特; 灵活的
23、首部格式:IPv6使用一种全新的不兼容的数据报格式 增强的选项:IPv6允许数据报包含可选的控制信息,也可以提供新的设施 支持资源分配:IPv6允许对网络资源的预分配,这些新的机制支持实时视像等应用 对协议扩展的保障:允许协议新增特性,这样协议就从要全面描述所有细节的状况中摆脱出来,IPv6数据报的一般形式,具有多个首部的IPv6数据报的一般形式。只有基本 首部是必需的,扩展首部是可选的。,IPv6基本首部格式,数据报首部的变化反映了协议的变化 对齐已经从32比特的整数倍改为64比特的整数倍 取消了首部长度自段,数据报长度字段被PAYLOAD LENGTH字段所取代。 源地址和目的地址字段的大
24、小都被增加成每个字段16个八位组 分片信息已从基本首部的固定字段移到了一个扩展首部中 TIME-TO-LIVE字段改为HOP LIMIT字段 SERVICE TYPE字段改为FLOW LABEL字段 PROTOCOL字段改为一个新的字段,用来指明下一个首部的类型,IPv6的扩展首部,IPv6的扩展首部同IPv4的任选项相似 每个数据报包含的扩展首部只提供那些它所需要使用的设施,IPv6数据报的分析,IPv6的分片和重组,当数据报要穿越某个网络,而数据报的长度对该网络的MTU又太大时,IPv4要求中间的路由器对数据报进行分片,而在IPv6中,分片被限制为由最初的源站来完成。IPv6基本首部中并不
25、像IPv4首部那样包含有用于分片的字段,而是在需要分片时,源站便在每每一数据报片的基本首部之后插入一个小的扩展首部,下一首部,保留,片偏移,MF,数据报标识符,端到端分片的后果,该方法可以减少路由器的开销,并允许路由器在单位时间内处理更多的帧 改变了Internet 的基本假设 使用端到端分片的互联网协议要求发送端发现到达每个目的站的路径MTU,并将发出的大于此路径MTU的数据报分片。端到端的分片并不适应用于路由变更,IPv6地址空间的大小,在IPv6中每个地址占据16个八位组,是一个IPv4地址长度的四倍。可以承受任何合理的地址分配策略 地球上的每个人都可以具有足够的地址来构成他们各自的、像
26、目前这个Internet一样大的互联网 一个16个八位组的整数可以容纳2128个值,因此地址空间大于3.4*1038。如果每秒分配一百万个地址的速率进行,需要二十年的时间才有可能分配完,三种基本IPv6地址类型,报文的目的地址可以归为以下三类之一 单播(Unicast):目的地址指明一个单一的计算机(主机或路由器);数据报将选择一条最短的路径到达目的站 群集(Cluster):目的站是共享一个地址前缀的计算机的集合(如,挂在同一个物理网络上);数据报将选择一条最短的路径到达改组,然后只提供给组中的一个成员 组播(Multicast):目的站是一组计算机,他们可能位于不同的地方。数据报将通过硬件
27、组播或广播投递给每一个成员,IPv6协议的主要变化,扩展地址扩展到128位 Ipv4的地址数40亿左右 IPv6提供的地址数: 340,282,266,920,938,463,463,374,607,431,768,211,456,IPv6的改进,简化了IPv6的报文头 对扩展和选项的支持作了改进 对流的支持 身份验证和保密,IPv4 报头 20 字节+Options : 13 字段, 包括 3 个标志位flags,0 bits,31,Ver,IHL,Total Length,Identifier,Flags,Fragment Offset,32 bit Source Address,32 b
28、it Destination Address,4,8,24,16,Service Type,Options and Padding,Time to Live,Header Checksum,Protocol,IPv6 报头40 Octets, 8 fields,0,31,Version,Traffic Class,Flow Label,Payload Length,Next Header,Hop Limit,128 bit Source Address,128 bit Destination Address,4,12,24,16,Destination Address,Source Addre
29、ss,Ver IHL,Service Type,Identification,Flags,Offset,TTL,Protocol,Header Checksum,Source Address,Destination Address,Options + Padding,Total Length,Ver,Flow Label,Payload Length,Next Header,Hop Limit,Traffic Class,IPv4 vs. IPv6 报头,IPv4 Packet Header,IPv6 Packet Header,32 bits,IPv6的路由性能,固定了报头长度 使用扩展报文
30、代替IPv4中的选项字段 报文中的字段的个数减少 不允许对包进行重新分片,通信流类型,8位的字段用来区别不同的服务. 在所选择的链路上,可以根据开销、带宽、延时或其他特性而对包进行特殊的处理 处于试验阶段,最终目标是确立对IP分组最适用的通信流分类方式.,流标签,IPv4是无连接的协议,对每个IP报文都要进行单独处理. 流指的是从一个特定源发向一个特定(单播或者是组播)目的地的包序列,源点希望中间路由器对这些包进行特殊处理。,自动配置,有状态的自动配置(V6 version of DHCP, Dynamic Host Configuration Protocol) 无状态的自动配置(使用EUI
31、-64,向路由器请求网络地址) IPv6的移动性,IPv6的安全性,认证报头的设计目的是保证报文的安全性和完整性,并提供身份验证功能。 封装安全载荷报头用来对IP报文的载荷或在隧道方式下整个IP报文加密。 透明模式 隧道模式,IPv6的地址,地址的写法 如果使用点分十进制 104.230.140.100.255.255.255.255.0.0.17.128.150.10.255.255 采取冒号16进制的写法: 68E6:8c84:FFFF:FFFF:0:1180:96A:FFFF,IPv6的地址,IPv6地址中的一长串0可以用一对冒号(:)来取代 1080:0:0:0:8:800:200c:
32、417A (一个unicast地址) 可以写为 1080:8:800:200c:417A FF01:0:0:0:0:0:0:101(一个mutlicast地址)可以写为FF01:101,IPv6的地址,0:0:0:0:0:0:0:1 (回送Loopback地址)可以写为 :1 0:0:0:0:0:0:0:0 (未定义的地址)可写为: 注意,为避免混淆,一对冒号在一个地址中只能出现一次.,IPv6的地址,在I P v 4和I P v 6的混合环境中可能有第三种方法。I P v 6地址中的最低3 2位可以用于表示I P v 4地址,该地址可以按照一种混合方式表达,即X : X : X : X :
33、X : X : d . d . d . d,其中X表示一个1 6位整数,而d表示一个8位十进制整数。例如,地址0 : 0 : 0 : 0 : 0 : 0 : 1 0 . 0 . 0 . 1,4.1流量监控与数据分析,流量监控在保护网络安全和预防网络入侵方面发挥了重要作用。通过对网络流量实施有效的监控,既可以掌握网络的内部情况,又可以在数据分析的基础上诊断网络中的故障,4.1流量监控与数据分析,2003年01月25日在全世界范围爆发的新SQL蠕虫,就造成了网络性能下降甚至瘫痪 在这次监测和诊断中,就需要对网络实行监控,并对捕获的数据分析,举例,在一个局域网内,如果有一两台主机感染病毒,则被感染的
34、主机会在短时间内向局域网发送大量的广播包,造成网络性能的下降,甚至瘫痪。此时,通过 Sinffer Pro,可以有效的监控网络流量,并可以捕获数据包,进行分析,染毒,染毒,广播包,4.2.1网络层协议包头结构,简介网际协议IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求IP协议对于网络通信有着重要的意义 通过安装IP软件,使许许多多的局域网络构成了一个庞大而又严密的通信系统 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议,4.2.2IPv4包头结构,图3-2 IP包首部,4.2.3IPv4包头详述,版本 IP头中前四位标识了IP的操作版本,比如版本4或版
35、本6 Internet头长度 头中下面4位包括头长度,以32位为单位表示,4.2.3IPv4包头详述,服务类型 总长度( Total Length),4.2.3IPv4包头详述,标识( Identifier ) 每个IP报文被赋予一个惟一的16位标识,用于标识数据报的分段分段标志(Fragmentation Flag) 下一个域包括3个1位标志,标识报文是否允许被分段和是否使用了这些域,4.2.3IPv4包头详述,分段偏移(Fragment Offest ) 8位的域指出分段报文相对于整个报文开始处的偏移。这个值以64位为单位递增 生存时间( TTL ) IP报文不允许在广域网中永久漫游。它必
36、须限制在一定的TTL内,4.2.3IPv4包头详述,协议 8位域指示IP头之后的协议,如VINES、TCP、UDP等 校验和( checksum ) 校验和是16位的错误检测域。目的机、网络中的每个网关要重新计算报文头的校验和,就如同源机器所做的一样,4.2.3IPv4包头详述,源IP地址 源计算机的IP地址目的IP地址 目的计算机的IP地址填充 为了保证IP头长度是32位的整数倍,要填充额外的0,4.2.4IP路由选项,IP时间戳选项,IP源站选路选项,源站选路(source routing) 宽松的源站选路,4.2.5IPv4的功能,IP报文头中含有使一些重要网络功能成为可能的所有必要信息
37、,包括寻址和路由分段和重组传输过程中数据损坏检测和更正,寻址和路由,IP最明显的一个功能是能使报文送到特定目的地。连接源和目的地网络中的路由器和交换机使用目的IP地址确定经过网络的最优路径,分段和重组,有时应用数据的一段不能完全包括在一个IP报文中 它们必须分段成两个或更多的报文,损坏报文补偿,IP的最后一个主要功能是检测和补偿在传输过程中遭到破坏或丢失的报文,IP结论,IP仅是一个网际协议 使其发挥作用,必须和传输协议(OSI中第四层)及数据链路层协议( OSI参考模型中第二层)一起工作,4.3.1传输层协议包头结构,简介 TCP协议提供可靠的、可流控的、全双工的信息流传输服务 TCP协议是
38、一种端对端协议 传输控制协议TCP协议利用重发技术和拥塞控制机制,向应用程序提供可靠的通信连接,使它能够自动适应网上的各种变化,4.3.2TCP包头结构(一),图3-3 TCP数据在IP数据报中的封装,TCP包头结构(二),图3-4 TCP包首部,TCP包头结构(三),TCP协议头最少20个字节,包括以下各域 TCP源端口 16位的源端口域包含初始化通信的端口号 源端口和源IP地址的作用是标识报文的返回地址 TCP目的端口 16位的目的端口域定义传输的目的 这个端口指明报文接收计算机上的应用程序地址接口,TCP包头结构(四),TCP协议头最少20个字节,包括以下各域 TCP序列号 32位的序列
39、号由接收端计算机使用,重组分段的报文成最初形式 TCP应答号 TCP使用32位的应答( ACK )域标识下一个希望收到的报文的第一个字节,TCP包头结构(五),数据偏移 这个4位域包括TCP头大小 以32位数据结构或称为“双字”为单位 保留 6位恒置0的域 为将来定义新的用途保留 标志 6位标志域,每1位标志可以打开一个控制功能 这六个标志是:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志,TCP包头结构(六),窗口大小 目的机使用16位的域告诉源主机,它想收到的每个TCP数据段大小 校验和 TCP头也包括16位的错误检查域“校验和”域,TCP包头结构(七),紧
40、急 紧急指针域是一个可选的16位指针,指向段内的最后一个字节位置,这个域只在URG标志设置了时才有效。 选项 至少一字节的可变长域标识哪个选项。,TCP包头结构(八),数据 域的大小是最大的MSS,MSS可以在源和目的机器之间协商 数据段可能比MSS小,但却不能比MSS大 填充 其目的是确保空间的可预测性、定时和规范大小 这个域中加入额外的零以保证TCP头是32位的整数倍,TCP校验算法,它也是为了确保高可靠性而设置的 它校验头部、数据和概念上的伪TCP头(pseudo header)之和 当接收方对整个数据段,包括校验和字段进行运算时,结果应为0,TCP滑动窗口,TCP使用滑动窗口为两台主机
41、间传送缓冲数据 每台TCP/IP主机支持两个滑动窗口,一个用于接收数据,另一个用于发送数据 窗口尺寸表示计算机可以缓冲的数据量大小,滑动窗口的工作原理(一),当数据报到达服务器Receive窗口,它们将按照序列号放置 一旦客户机接受认可,Send窗口将由已获得认可的数据滑动到等待发送的数据 如果数据报接受顺序错乱,那么将强制延迟ACK计时器确认,滑动窗口的工作原理(二),当TCP从文件中接受数据时,数据位于Send窗口 当每一个数据报传送时,客户机设置重传计时器,描述在重新发送数据报之前将等待ACK分组多久,4.3.3UDP介绍,UDP提供了一种基本的、低延时的称为数据报的传输 UDP的简单性
42、使UDP不适合于一些应用,但对另一些更复杂的、自身提供面向链接功能的应用却很适合,UDP协议头结构,UDP源端口号 16位的源端口是源计算机上的连接号 源端口和源IP地址作为报文的返回地址之用 UDP目的端口号 16位的目的端口号是目的主机上的连接号 目的端口号用于把到达目的机的报文转发到正确的应用,UDP协议头结构,UDP校验和 校验和是一个16位的错误检查域,基于报文的内容计算得到 目的计算机执行和源主机上相同的数学计算 UDP信息长度 信息长度域16位长,告诉目的计算机信息的大小,UDP校验和,UDP和TCP在首部中都有覆盖它们首部和数据的检验和UDP的检验和是可选的,而TCP的检验和是
43、必需的,4.4TCP握手,当一个连接建立的时候,理解和保护用户网络中使用的TCP流量的关键是要理解TCP握手的过程 用户应该不断地检查TCP握手,因为它经常被黑客操纵,TCP包头,TCP包头的标记区建立和中断一个基本的TCP连接 有三个标记来完成这些过程 SYN:同步序列号 FIN:发送端没有更多的数据要传输的信号 ACK:识别数据包中的确认信息,建立一个TCP连接,结束一个TCP连接,SYN-flood攻击,这种拒绝服务攻击利用了TCP建立连接时三方握手的弱点 攻击者可以建立很多半开连接。在这个过程中,当服务器要跟攻击者建立连接时,攻击者却终止了连接。攻击者再建立其它的连接然后再终止,直到目
44、标服务器打开成百上千的半开连接,4.6应用数据流的捕捉与威胁分析,基于TCP/IP 的应用有许多,如 文件传输协议FTP 远程登录的Telnet 用于邮件服务的SMTP 超文本传输协议HTTP等,4.6.1文件传输协议 FTP,黑客所做的是间接地破坏FTP服务器 另一种对于FTP服务器的破坏是把一些盗版软件拷贝到服务器上,4.6.2Telnet,Telnet本身的缺陷是没有口令保护 没有强力认证过程没有完整性检查传送的数据都没有加密,4.6.3SMTP,大多数邮件系统使用SMTP实现 SMTP自身没有安全问题,但处理SMTP的服务器存在安全问题,4.6.4超文本传输协议 HTTP,WEB用户可
45、能下载有破坏性的ActiveX控件或JAVA applets 这些程序在用户的计算机上执行并含有某种类别的代码,包括病毒或特洛伊木马 HTTP服务器也必须要小心保护,HTTP服务器在很多基础上类似FTP服务器,4.6.5举例:对应用数据流的捕获,我们以捕捉HTTP中的数据为例 使用Sniffer软件 Iris (一种网络监听工具) 假设甲、乙俩人通过集线器相连,实验者甲要捕获实验者乙的数据,Iris 中的设置,利用Iris 开始捕捉数据,分析捕捉的数据,4.7碎片的产生,链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP
46、层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU每一IP分片都各自路由,到达目的主机后在IP层重组,碎片攻击,IP首部有两个字节表示整个IP数据包的长度,所以IP数据包最长只能为0xFFFF,就是65535字节如果有意发送总长度超过65535的IP碎片,一些老的系统内核在处理的时候就会出现问题,导致崩溃或者拒绝服务如果分片之间偏移量经过精心构造,一些系统就无法处理,导致死机,如何阻止IP碎片攻击,Windows系统打上最新的Service Pack 目前的Linux内核已经不受影响 在网络边界上禁止碎片包通过 用IP tables限制每秒通过碎片包的数目,如何阻止IP碎片攻击,如果防火墙有重组碎片的功能,请确保自身的算法没有问题,否则被DoS攻击就会影响整个网络 Win2000系统中,自定义IP安全策略,设置“碎片检查”,哦!原来自己也可以设置,