版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.3 TCP协议及其安全缺陷TCP提供面向连接的服务,例如为 Telnet、FTR SMT 需要高度可靠性的服务。EVIAI机6图7 5 传层项到蝮通信的基本结构(RefB_p287传输层端到端通信的基本结构)M欠部 I q*1l久部 1P1X以部改装箱帧M厢-ntnfid 於何: - = - = F " - 1 .U;纯红湾般植 Em 7-6 THMJ结构以盘与IE,分”八M结构的关系(RefB_p288_TPDU结构与IP分组、帧结构的关系)IP数据包中若有已 封装好的TCP数据包,则IP将它们向 上传送到TCP层。TCP将包进行排序并进行差错检测,同时 实现虚电路(V。间的连
2、接。TCP将数据包中含序列号(SequenceNurh 和应答号/确认号(Acknowledgement),对未按顺序收到的包可以被排序, (复习:协议封装)损坏的包要求被重传。Apph dt5-5 以2、M l.ftm TCP连匕数捌力装以太网(RefC_p66_以太网上使用TCP进行数据封装)”16Hp s Hl6f>TCP*4iKH>m位系2市Hw>图5-M TCP首自£(RefC_p70_TCP 首部)1) 端口号(SrcPort, DstPort) : 包括源端口号和目的端口号。每个端口号的字段长为16比特,它分别表示发送该报文段的应用程序的端口号与接收该
3、报文段的应用程序的端口号。IP 地址没有提供表明某个特定应用的信息,即同一个IP地址可以同众多服务“绑定”,因此需要额外的头(header)信息。 端口号用于标示传输层协议和应用层的应用程序之间 的接口(interface) 。TCP 端口号可以提供运行在某台机器上每个应用服务的地址(服务器的服务地址)。通过使用端口号,可以标识一台机器上的多个目的进程。每个端口均被赋予一个小整数以便识别。IP 地址加上端口号构成一个套节字(Socket) ,即构成一个特定的TCP 连接。 客户端的端口号由TCP 协议独立分配,本地唯一。服务器端口号被标准化。常见的服务器的“大众端口“:FTP: 20, 21P
4、OP: 110Email: 25WWW: 80Telnet: 23DNS: 53当各服务器程序运行后,在各自的大众端口上等待。如果服务器收到用户请求使用某台主机的服务后,则服务器则向该服务的套节字发送数据。例如,用户希望远程登录到一台服务器上,则向该服务器的23号端口发送message服务器U到后,TCP根据端口号将messaged送到Telnet的服务程序上去。在实际情况中,TCP将端点(endpoint)定义为一对整数( IP, port) 。2) 序列号(SequenceNum) : 32比特。由于TCP 协议是面向数据流(data stream)的,它所传送的报文段可视为 连续的数据流
5、,因此它需要被发送的每一个字节 编上号。 序列号为报文段数据的第一个字节的顺序号。3) 应答(确认)号(Acknowledgemen)t: 32比特。表示接收端希望收到的下一个报文段的第一个字节的序号。4) 首部长度(HdrLen ) : 4比特。 TCP 报头(首部)以4字节(32比特)来计算,实际报头长度为 2040字节, 则这个字段的为515。5) 保留 : 6 比特。保留为今后使用,目前全部设为0。6) 标志(Flags) : 6比特。用来在TCP 对等实体间传递控制信息。i) URG: 当被设置时,紧急指针有效。意味本数据包包含紧急数据,UrgPtr 字段指明本数据段的非紧急 数据从
6、什么位置开始,而紧急 数据包含在数据段体的前部,直到包括UrgPtr 所指的字节数为止。ii) Ack: 当被设置时,确认序列号有效。iii) Psh:当被设置时,发送方调用了 push操作,告诉接收方应当尽快将这个报文上交给应用层。i) RST:连接复位reset当被设置时,说明接受方已经出现混乱,例如收到并不希望收到的数据段等,提出终止连接。ii) SYN:同步序列号,用于发起一个连接。iii) FIN : 当被设置时,表明发送端完成发送任务。7) 窗口大小(AdvertizedWindow) : 16比特。以字节为单位,窗口对应的最大数为65, 535 字节。8) 校验和(checksu
7、m) :计算整个TCP 的首部、 TCP数据、 IP 首部的源地址和目的地址以及长度字段构成的伪首部(后见UDP 介绍) 。(复习:三次握手)I:动华与与(客户)袋动参,每,版务方)国5-6二次握手0法的时时线(RefF_p227三次握手算法的时间线)典型的 TCP 协议攻击/安全缺陷1) LAND 攻击 :将 TCP 包中的源地址、端口号和目的地址、端口号设成相同。将地址字段均设成目的机器的IP 地址。若对应的端口号处于激活(等待)状态,LAND 攻击可使目的机器死机或重新启动。攻击奏效的原因出于TCP 的可靠性。攻击利用 TCP 初始连接建立期间的应答方式存在的问题。攻击的关键在于serv
8、er和client由各自的序列号。注: i) 初始序列号各方随机 自选。ii)己方针对对方序列号发出的应答(确认)号=对 方上次的序列号+1.iii)己方发出的(非初始)序列号=己方上次的序列 号+1 =己方收到的应答号。iv)各方每次发送以上iii)和ii)。例:正常情况下的三次握手与通信:客户端服务端(1) =>客 SequenceNum=1001 (初始)(2) <=服 Ack=1001 +1 = 1002服 SequenceNum=4999 (初始)(3) =>客 SequenceNum=100升 1 = 1002客 Ack=4999+1 = 5000(以上完成三次握
9、手)(4) <=服 Ack=1002+1 = 1003服 SequenceNum=4999F 1 = 5000(5) =>客 SequenceNum=1002F 1 = 1003客 Ack=5000+1 = 5001(6) <=服 Ack=1003+1=1004服 SequenceNum=5000F 1 = 5001攻击希*务尊攻击自发BLAND 攻击.汨地址川端 L1改置为极务端他骑违接股务X序列号="内)客户多例号附件= 1002暇务器nr到序例耳1002度告包内此不发坨由包的序列句= 1001吸务器序”号=§9W齐户序列号应许= 1002第等Hi8过
10、发送自己的 町始序列号JI把客户的序列号+ 1作为唐?F 职务JS*物客户端发送 网服务卷的序列»+ I作为应答.这里是 5000作为应答(1的序列表务SH4而到序列” 二 1002/答包,因此事发“务法等待客户端发电 同*芬器的华为号+ I作为龙花.UTtt 50CXH乍为应答包的序列fflsil LAND攻击示意图TCP E1 II /riXU"出 hj 仅i ill Utrm :»上1,%大 ttM m i,a*(RefC_p73_LAND攻击示意图)从第三次握手开始,因为每次服务器均得到自己的应答/确认号,即1002,而非5000,而该确认号为自己上次发出
11、的,认为有错,则重发(非超时所致),由此无限循环。由于TCP 是具有高优先权的内核级进程,可中断其它的正常操作系统以获得更多的内核资源来处理进入的数据。这样,无限循环很快就会消耗完系统资源而引起大多数系统死机。TCP 在此的安全缺陷还在于:在连接初始化成功之后无任何形式的认证机制。TCP 收到的数据包只要有正确的序列号就认为数据是可以接受的。一旦建立连接,就无法确定数据包源IP 地址的真伪。2) 去同步攻击(Desynchronization) :复习:帧滑动窗口算法归达B(RefF_p58_滑动窗口算法)发送方 维持三个变量:- SWS (send window size):发送窗口 大小,
12、能够发送未被确认的帧数目的上界,发送缓冲区。- LAR (last acknowledgment arrived): 最近收到的应答号- LFS (last frame sent): 最近发送的帧序号。维持下列不等式:LFS - LAR <= SWSSWSL、RLI'S闺发送方的沿动叟”(RefF_p58_发送方的滑动窗口)接收方维持三个变量:- RWS (receive window size):接收窗口大小,能够接收无序帧数目的上界,接收缓冲区。- LAF (last acceptable frame):最大可接收帧的 序号- LFR (last frame received
13、):最后收到的帧序号。 接收方维持下列不等式:LAF - LFR <= RWSrI上上丁千Tm ,T FR匚人甘图323接收方的可动谕I I(RefF_p58_接收方的滑动窗口)TCP 字节滑动窗口算法与帧滑动窗口算法的不同之处: 增加 流量控制 功能。 滑动窗口的尺寸不固定,由接受方向发送方通知(advertise淇窗口的大小,发送方在任意给定时刻未被确认(应答)的字节数就不能超过AdvertisedWindow字段的值。接收方根据分配给连接用于缓存数据的内存数量(缓冲区buffer) ,为AdvertisedWindow选择一个合适的值,用于存放那些到达的错序数据 以及 那些按正确顺
14、序到达但应用进程无暇读出的数据。讨论 1:用滑动窗口实现可靠有序的传输发送方 :维护三个指针(序号)LastByteAcked LastByteSent LastByteWritten显然 LastByteAcked <= LastByteSentLastByteSent <= LastByteWritten:维护三个指针(序号)LastByteReadNextByteExpectedLastByteRcvd存在关系LastByteRead < NextByteExpectedNextByteExpected <= LastByteRcvd 1IjilRvlcAckcd
15、i j【H、i <、uilly【。k xpcvledLdtstnyicRrad图工8 TCP发送缓伍”和楼收续存心的片系(RefF_p230_TCP接收和发送缓存)讨论2:流量控制接收方通知发送方一个不大于它能存放数据量的窗口,控制发送方的发送速度。接收方 避免 缓冲区溢出,其 TCP 必须保持LastByteRcvd - LastByteRead <= MaxRcvBuffer通知窗口(缓冲区剩余空间)大小为AdvertisedWindow =MaxRcvBuffer (NextByteExpected-1) LastByteRead发送方 TCP 必须保持LastByteSen
16、t - LastByteAcked <= AdvertisedWindow或EffectiveWindow =AdvertisedWindow - (LastByteSent - LastByteAcked)发送方 避免 缓冲区溢出,其 TCP 必须保持LastByteWritten - LastByteAcked <= MaxSendBuffer如果发送进程试图向TCP 写入 y 字节,造成(LastByteWritten - LastByteAcked) + y >= MaxSendBuffer 则 TCP 将阻塞发送进程,不让其产生新的数据。注:发送方周期性地发送探测数
17、据段。去同步攻击机理:客户程序通过TCP 与服务器进行通信之际,攻击者截获和 重新定向 客户与服务器之间的数据流,使之经过攻击者的机器, 攻击者采用被动攻击,即不修改客户和服务器之间的通信数据而使客户和服务器认为它们在直接进行通信。由于攻击者可以看到序列号,他可以把伪造的数据包放到TCP数据流中去,这样攻击者可以以被欺骗客户具有的特权来访问服务器。在这种情况下,攻击者甚至不需要目标机器所需 的口令,只需简单地等待客户登录到服务器, 然后劫持会话 数据流即可。客户端出务器攻山” 同小在接改击表现在可以极狭叶仁通片 客户和服务器之间的通信被函定向H 5-12 TCP会送劫持(RefC_p74_TC
18、P会话劫持)>服务端握手1:客户端SYN, CLT_SEQ (初始)客户等待服务器应答。握手2:客户端 <=服务端ACK= CLT_SEQ+1 SVR_SEQ (初始)服务器等待客户应答。握手3:攻击者出现,以客户端身份向服务器发送 连接复位 包(RST)。服务器收到该包后,认为握手过程出错而中断与客户端的连接,并侦听新的连接请求。客户端由于不知连接已关闭,向服务器发送握手3 的应答包,被服务器忽略。客户状态 :认为连接已经建立,自己处于连接状态 ,认为服务器处于激活状态。服务器状态: 认为客户端出了问题(收到攻击者的RST 包) ,关闭连接,但客户端并没有关闭连接。攻击者 现 可
19、以假冒客户端身份进行三次握手过程:握手1:攻击者(假冒客户端)=> 服务端Attack_SEQ握手2:真客户端 <=服务端ACK= Attack_SEQ+1 New_SVR_SEQ由于应答号与真客户等待的不符,ACK被真客户端忽略。握手3:攻击者(假冒客户端)=> 服务端ACK= New_SVR_SEQ +1Attack_SEQ = Attack_SEQ +1至此, 服务器和客户端一样也处于连接状态 。 但由于客户和服务器之间的序列号无法一致,它们之间不能真正进行通信,各自发往对方的数据包均将被忽略。攻击过程 :( 1) 造成去同步状态去同步状态指双方都处于连接建立 状态,
20、但还没有数据要发送,并且SVR_SEQ != CLT_ACKCLT _SEQ != SVR _ACK此时只要没有数据发送就是稳定的。若有数据要发送,则存在两种情况:( i) 若 CLT _SEQ < SVR _ACK + SVR_WIND 以及 CLT _SEQ > SVR _ACK则数据包是可以接收的,但被存储已备后用,这是因为数据流的开始部分(从序列号SVR _ACK开始)丢失了。( ii) 若 CLT _SEQ > SVR _ACK + SVR_WIND 或CLT _SEQ < SVR _ACK包不可接收,被丢弃。在以上两种情况下,虽然处于连接建立状态,数据交换不
21、可能。2) 实施攻击攻击者使连接双方处于一个去同步状态,使它们不可能进行数据交换,然后攻击者可以产生客户和服务器均能 接受的包。攻击者 假冒客户 向 服务器 发送包SEG_SEQ=SVR_ACK=(Attack_SEQ+1)SEG_ACK= New_SVR_SEQ +1 服务器接受,数据被处理。攻击者 假冒服务器向 客户 发送包SEG_SEQ= SVR_SEQ 1SEG_ACK= 上次的客户发送的CLT_SEQ + 1客户接受,数据被处理。注:去同步攻击(TCP 会话劫持攻击)假定攻击者能够对网络通信进行侦听,从而确定序列号。3) IP 欺骗攻击(IP Spoofing)伪造源于一个可信任地址
22、的数据包,以便使一台机器认证另一台机器。攻击机制 :利用应用程序之间基于IP 地址的认证机制,攻击者通过IP 地址欺骗获得远程系统的非法授权访问。设三台主机A、 B 和攻击者的主机X。 B 授予 A 某些访问特权, X 的目标是获得同A 相同的权利。内第河外部网图5*13攻击所使用的网络模型(RefC_p78攻击所使用的网络模型)攻击步骤:1) X造假A的IP地址,与建立一个虚假连接,使 B认为发来的包是由发出的。2) B对X的应答将发送到 A, X必须阻止A向B报告网络认证系统出现的问题。A、B之间的通信遵守的TCP/IP的三次握手机制SYN序列号 M>L SYM序刻“一、海谷牛" M+bACKl应答序号=川41>图514 W次握F(RefC_p78三次握手)X伪造A的IP地址步骤:1) X冒充A, X向B发送一个带有随机序列号 M的 SYN 包。2) B响应,向A发送一个应答号的 SYN+AC电,并发送自己的序列号N。3) X为了完成三次机握手,需向B回送一个应答包。设 X 与 A、 B 不在一个子网内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽涉外经济职业学院《国际物流》2025-2026学年期末试卷
- 厦门医学院《理论新闻传播学导论》2025-2026学年期末试卷
- 黑龙江省佳木斯市第一中学2022-2023学年高三上学期第二次调研考试政治答案详解
- 公考内蒙常识试题及答案
- 中式面点师安全风险测试考核试卷含答案
- 纺丝凝固浴液配制工安全实践考核试卷含答案
- 文化体育用品公司年度工作总结报告
- 印制电路机加工安全知识能力考核试卷含答案
- 电子陶瓷挤制成型工冲突解决强化考核试卷含答案
- ECMO患者镇痛镇静与谵妄管理专家共识总结2026
- 高三数学二轮培优微专题36讲30.二项分布与超几何分布
- 《设备买卖合同模板》
- 2024年西安交通大学少年班初试数学试题真题(答案详解)
- 《灰尘的旅行》导读
- GB/T 15651.7-2024半导体器件第5-7部分:光电子器件光电二极管和光电晶体管
- 光明电力公司招聘笔试题目
- 成人心理健康教育讲座
- 牛场实习报告
- 成都职业技术学院教师招聘考试历年真题
- 断绝亲情关系协议书
- 四川省高等教育自学考试毕业生登记表【模板】
评论
0/150
提交评论