版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 2011 綠盟科技TCP協(xié)議與攻擊綠盟科技 張鋒2012年4月 1 TCP的面向連接3 TCP/IP攻擊2 TCP的可靠性Protocol LayerNetwork AssociatesTCP/IP協(xié)議棧應(yīng)用層會話層表示層傳輸層TCPUDP網(wǎng)絡(luò)層ICMPRARPARPIGMPIP數(shù)據(jù)鏈路層物理層網(wǎng)絡(luò)接口層由底層網(wǎng)絡(luò)定義的協(xié)議SMTPFTPTELNETDNSSNMPNFSTFTP提供應(yīng)用程序間接口建立端到端連接提供編址和路由功能物理介質(zhì)訪問二進(jìn)制數(shù)據(jù)流傳輸U(kuò)DP協(xié)議UDP提供無連接的不可靠的數(shù)據(jù)報服務(wù)。 l UDP是無連接的傳輸層協(xié)議n發(fā)送數(shù)據(jù)之前不需要建立連接l UDP是一個不可靠的傳輸層協(xié)
2、議n沒有確認(rèn)機(jī)制n不對報文排序n沒有超時機(jī)制n沒有流量控制機(jī)制傳輸速度快數(shù)據(jù)不可靠,易丟失和溢出使用UDP的應(yīng)用程序,需要承擔(dān)可靠性方面的全部工作偽首部源端口目的端口長 度檢驗和數(shù) 據(jù)首 部UDP長度源 IP 地址目的 IP 地址017IP 數(shù)據(jù)報字節(jié)44112122222字節(jié)發(fā)送在前數(shù) 據(jù)首 部UDP 用戶數(shù)據(jù)報用戶數(shù)據(jù)報 UDP 有兩個字段:數(shù)據(jù)字段和首部字段。首部字段有 8 個字節(jié),由 4 個字段組成,每個字段都是兩個字節(jié)。 UDP報文格式TCP協(xié)議TCP是一種可靠的、面向連接的基于字節(jié)流的傳輸層協(xié)議。由IETF的RFC 793說明。工作在OSI模型的第四層,UDP是同一層內(nèi)另一個重要傳
3、輸協(xié)議。TCP報文結(jié)構(gòu)8TCP首部目 的 端 口首部長度檢 驗 和選 項 (長 度 可 變)源 端 口序 號緊 急 指 針窗 口確 認(rèn) 號保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充TCP 數(shù)據(jù)部分TCP 首部TCP 報文段IP 數(shù)據(jù)部分IP 首部發(fā)送在前20 字節(jié)的固定首部TCP面向連接面向連接意味著兩個使用TCP的應(yīng)用(通常是一個客戶端和一個服務(wù)器)在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接。lSYN,ACK,SYN+ACK:建立TCP連接lFIN,ACK,F(xiàn)IN+ACK:主動關(guān)閉TCP連接lRST:Reset,重置連接。n錯誤的syn+ack包;n
4、直接關(guān)閉窗口(telnet,IE)lPSH:push,由應(yīng)用程序處理。建立完連接,傳輸應(yīng)用數(shù)據(jù)時,使用push+ack。 TCP連接建立與關(guān)閉TCP連接建立與關(guān)閉(Flag標(biāo)志位、序列號、確認(rèn)號)TCP連接建立TCP連接建立:三次握手發(fā)送發(fā)送 SYN ,請求建立連接請求建立連接(seq=100 ctl=SYN)Host AHost B1發(fā)送發(fā)送 SYN 、ACK(seq=300 ack101 ctl=SYN、ACK)23發(fā)送發(fā)送ACK(seq=101 ack301ctl=ACK)TCP連接關(guān)閉TCP連接關(guān)閉:四次揮手發(fā)送發(fā)送 FIN,請求斷開連接請求斷開連接(seq=101 ,ack=301,
5、ctl=FIN,ACK)Host AHost B1發(fā)送發(fā)送 ACK(seq=301,ack=102ctl=ACK)24發(fā)送發(fā)送ACK(seq=102,ack=302 ctl=ACK)Seq100Seq300Ack1013發(fā)送發(fā)送 FIN,請求斷開連接請求斷開連接(seq=301,ack=102 ctl=FIN,ACK)TCP狀態(tài)機(jī)TCP有限狀態(tài)機(jī)lTCP 有限狀態(tài)機(jī)的圖中每一個方框都是 TCP 可能具有的狀態(tài)。l每個方框中的大寫英文字符串是 TCP 標(biāo)準(zhǔn)所使用的 TCP 連接狀態(tài)名。狀態(tài)之間的箭頭表示可能發(fā)生的狀態(tài)變遷。l箭頭旁邊的字,表明引起這種變遷的原因,或表明發(fā)生狀態(tài)變遷后又出現(xiàn)什么動作
6、。l圖中有三種不同的箭頭。l粗實線箭頭表示對客戶進(jìn)程的正常變遷。l粗虛線箭頭表示對服務(wù)器進(jìn)程的正常變遷。l另一種細(xì)線箭頭表示異常變遷。 CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主動打開被動打開被動關(guān)閉主動關(guān)閉起點被動打開主動打開 發(fā)送 SYN同時打開收到 SYN,發(fā)送 SYN, ACK收到 ACK數(shù)據(jù)傳送 階段 關(guān)閉發(fā)送 FIN 關(guān)閉發(fā)送 FIN 關(guān)閉發(fā)送 FIN收到 RST 收到 SYN發(fā)送 SYN, ACK 關(guān)閉或超時收到 ACK 收到 SYN,
7、 ACK發(fā)送 ACK收到 ACK收到 ACK收到 FIN發(fā)送 ACK收到 FIN, ACK 發(fā)送 ACK收到 FIN發(fā)送 ACK同時關(guān)閉收到 FIN發(fā)送 ACK發(fā)送 SYN定時經(jīng)過兩倍報文段壽命后關(guān)閉TCP狀態(tài)機(jī)1 TCP面向連接3 TCP/IP安全2 TCP可靠性TCP可靠性TCP可靠性:l分段傳輸(MSS,建立連接時協(xié)商)l數(shù)據(jù)校驗和l流量控制滑動窗口l超時重傳l擁塞控制慢啟動、擁塞避免、快速重傳、快速恢復(fù)、SACK TCP流量控制TCP流量控制滑動窗口l滑動窗口協(xié)議:我們能夠一次發(fā)送許多數(shù)據(jù)包,然后等待收到一個確認(rèn)收到全部數(shù)據(jù)包的ACK信息。但連續(xù)發(fā)送的報文數(shù)不超過一定限制。l客戶端發(fā)送
8、一次,服務(wù)器確認(rèn)一次(ack),再發(fā)送,再確認(rèn)效率低 既能充分利用網(wǎng)絡(luò)能力,又能提供可靠性?;瑒哟翱趨f(xié)議滑動窗口協(xié)議lTCP 采用大小可變的滑動窗口進(jìn)行流量控制l當(dāng)一個連接建立時,連接的每一端分配一個緩沖區(qū)來保存輸入的數(shù)據(jù),并將緩沖區(qū)的尺寸發(fā)送給另一端。當(dāng)數(shù)據(jù)到達(dá)時,接收方發(fā)送確認(rèn),其中包含了自己剩余的緩沖區(qū)尺寸。剩余的緩沖區(qū)空間的大小被稱為窗口( w i n d o w)接收窗口l滑動窗口:通信的過程中,接收端可根據(jù)自己的資源情況,隨時動態(tài)地調(diào)整對方的發(fā)送窗口上限值。l發(fā)送端要發(fā)送 900 字節(jié)長的數(shù)據(jù),劃分為 9 個 100 字節(jié)長的報文段,而發(fā)送窗口確定為 500 字節(jié)。l發(fā)送端只要收到
9、了對方的確認(rèn),發(fā)送窗口就可前移。l發(fā)送 TCP 要維護(hù)一個指針。每發(fā)送一個報文段,指針就向前移動一個報文段的距離?;瑒哟翱趨f(xié)議l發(fā)送端已發(fā)送了 400 字節(jié)的數(shù)據(jù),但只收到對前 200 字節(jié)數(shù)據(jù)的確認(rèn),同時窗口大小不變。l現(xiàn)在發(fā)送端還可發(fā)送 300 字節(jié)。 滑動窗口協(xié)議l發(fā)送端收到了對方對前 400 字節(jié)數(shù)據(jù)的確認(rèn),但對方通知發(fā)送端必須把窗口減小到 400 字節(jié)。l現(xiàn)在發(fā)送端最多還可發(fā)送 400 字節(jié)的數(shù)據(jù)。 滑動窗口協(xié)議利用可變窗口大小進(jìn)行流量控制滑動窗口協(xié)議Host AHost B123Ack=301,win=3Seq=300,ack=101,win=3Seq=100,win=3Ack=1
10、04,win=1Seq=101,win=3Seq=102,win=3Seq=103,win=3Seq=104,win=3030132發(fā)送窗口大小為發(fā)送窗口大小為3通報窗口大小為通報窗口大小為1緩沖區(qū)滿緩沖區(qū)滿應(yīng)用程序讀取應(yīng)用程序讀取了了1個數(shù)據(jù)段個數(shù)據(jù)段實際發(fā)送窗口大小實際發(fā)送窗口大小變?yōu)樽優(yōu)?通報窗口大小為通報窗口大小為3TCP可靠性什么是TCP超時重傳?lTCP通過在發(fā)送時設(shè)置一個超時定時器來解決這個問題,如果定時器超時,TCP重傳該數(shù)據(jù)l由于IP層面的不可靠,TCP在傳輸數(shù)據(jù)時,數(shù)據(jù)本身和確認(rèn)都有可能丟失l問題:等待多長時間之后超時?n太長:低效,延時長,帶寬利用率低n太短:造成不必要的
11、重傳(占用額外的帶寬)nTCP采用的是一種自適應(yīng)的重傳計時策略TCP可靠性TCP超時重傳思路l基本思路:定時器的時間應(yīng)該比數(shù)據(jù)往返時間長一些l術(shù)語:nRTO:定時器時間(超時重傳時間)nRTT:數(shù)據(jù)往返時間data-1ack-1data-2T1T2T3RTT=T3-T1data-1data-1T1T2RTO=T2-T1未收到ack,重傳data報文lSRTT;RTTAVRTCP可靠性TCP超時重傳算法lTCP采用一種適應(yīng)性重傳算法: Timeout RTT其中 為一個大于1的常數(shù)加權(quán)因子,RTT為估算的往返時間。lRTT計算如下: RTT (舊的RTT) (1 ) (新的往返時延樣本)為修正因
12、子,決定了以前估計的RTT的權(quán)重,一般取值為7/8。TCP可靠性TCP擁塞控制lTCP要能夠感知擁塞,并緩解擁塞。l什么是擁塞?n網(wǎng)絡(luò)中數(shù)據(jù)包的總數(shù)超過了網(wǎng)絡(luò)的處理能力,路由器開始丟棄數(shù)據(jù)包,產(chǎn)生擁塞;nTCP使用超時重傳,導(dǎo)致大量報文重傳,加重?fù)砣?。l如何感知?n重傳定時器超時擁塞嚴(yán)重n亂序,收到重復(fù)確認(rèn)包擁塞程度尚可TCP可靠性TCP如何緩解擁塞?l兩個控制變量n擁塞窗口(cwnd)n慢啟動門限(ssthresh)l五個算法n慢啟動算法n擁塞避免算法n快速重傳算法n快速恢復(fù)算法n選擇性應(yīng)答算法(SACK)TCP可靠性兩個窗口l接收窗口:與接收方的可用緩存大小有關(guān),由接收方通告(rwnd);
13、l擁塞窗口:是發(fā)送方感受到的網(wǎng)絡(luò)擁塞的估計(cwnd).TCP能夠發(fā)送的字節(jié)數(shù): 許可窗口=min 擁塞窗口,接收窗口TCP可靠性慢啟動算法l剛建立連接時,cwnd=1 MSS;Host Aone segmentRTTHost Btimetwo segmentsfour segmentsackackackackl直到達(dá)到ssthresh門限或產(chǎn)生丟包l能夠正常收到ACK,cwnd呈指數(shù)增長;TCP可靠性擁塞避免算法 當(dāng)擁塞窗口cwnd的值超過了門限值ssthresh,就進(jìn)入擁塞避免階段。此時cwnd是線性增長。慢啟動擁塞避免門限值TCP可靠性慢啟動與擁塞避免工作過程l(1)初始化cwnd為1個
14、MSS, ssthresh為65535字節(jié)l(2)當(dāng)新的數(shù)據(jù)被對方確認(rèn)時,就增加cwndn如果cwnd=ssthresh,就進(jìn)行擁塞避免,cwnd線性增長l(3)擁塞發(fā)生時, ssthresh設(shè)置為cwnd的一半n如果超時,cwnd設(shè)為1 MSS,進(jìn)入慢啟動n如果收到重復(fù)確認(rèn),cwnd設(shè)置為擁塞時cwnd值的一半,進(jìn)入擁塞避免TCP可靠性TCP可靠性慢啟動和擁塞避免總結(jié)l不能完全避免擁塞l使網(wǎng)絡(luò)不容易出現(xiàn)擁塞TCP可靠性快速重傳算法l在某些情況下,不需要等待超時重傳,可更早地重傳丟失的報文段。發(fā)送方接收方發(fā)送 M1 確認(rèn) M1t 確認(rèn) M2 發(fā)送 M2發(fā)送 M3發(fā)送 M4發(fā)送 M5發(fā)送 M6
15、重復(fù)確認(rèn) M2 立即重傳 M3 重復(fù)確認(rèn) M2 重復(fù)確認(rèn) M2 t發(fā)送 M7收到三個連續(xù)的對 M2 的重復(fù)確認(rèn)立即重傳 M3丟失TCP可靠性快速恢復(fù)算法l發(fā)送端連續(xù)收到3個重復(fù)確認(rèn),將慢啟動門限設(shè)置為發(fā)送窗口的一半,然后執(zhí)行擁塞避免算法。242468101214161820220048121620傳輸輪次擁塞窗口 cwnd收到 3 個重復(fù)的確認(rèn)執(zhí)行快重傳算法慢啟動“乘法減小”擁塞避免“加法增大”TCP Reno版本TCP Tahoe 版本(已廢棄不用)ssthresh 的初始值擁塞避免“加法增大”新的 ssthresh 值慢啟動快恢復(fù)TCP可靠性SACK選擇性應(yīng)答算法(SACK)lSACK改變
16、TCP確認(rèn)機(jī)制l普通的TCP只確認(rèn)已連續(xù)收到的數(shù)據(jù)lSACK把亂序信息告訴對方,減少重傳盲目性。l例如:序號1,2,3,5,7的數(shù)據(jù)收到了,n普通TCP:只確認(rèn)1,2,3,;ack號=4nSACK:全部確認(rèn),ack號=4,同時告知5,7已經(jīng)收到。一般TCP的ACK過程data-1data-1data-2data-3data-4data-5ack-data-1data-3data-4data-5ack-data-1ack-data-1ack-data-1data-2data-3data-4data-5data-2丟失服務(wù)器中間設(shè)備客戶端ack-data-1ack-data-1ack-data-1
17、ack-data-1問題:僅有data-2丟失,雖然客戶端已經(jīng)收到其他的data,但是,服務(wù)器卻要將data-2以及data-2之后的其他Data重傳一次效率低下!TCP選項中的SACK功能就是針對這種情況提出的解決方法SACK的確認(rèn)過程data-1data-1data-2data-3data-4data-5ack-data-1data-3data-4data-5sack-data-3sack-data-4sack-data-5data-2data-2丟失服務(wù)器中間設(shè)備客戶端ack-data-1sack-data-3sack-data-4sack-data-5TCP攻擊利用TCP 重傳機(jī)制、擁
18、塞控制機(jī)制的攻擊lTCP小窗口慢啟動攻擊n降低傳輸效率,占用連接資源,消耗服務(wù)器性能。 l快速重傳、TCP SACK選擇性重傳攻擊n帶寬放大攻擊(小包換大包)n攻擊發(fā)送少量的包,占用大量下行帶寬,消耗服務(wù)器資源。 1 TCP面向連接3 TCP/IP安全2 TCP可靠性TCP/IP安全TCP/IP安全lARP安全lDHCP安全lTCP安全lUDP安全lDNS安全lHTTP安全lHTTPS安全ARP安全ARP欺騙DHCP安全DHCP私接欺騙DHCP安全DHCP Snooping利用ARP、DHCP的攻擊利用ARP、DHCP的攻擊lARP欺騙報文劫持返回錯誤DNS信息釣魚網(wǎng)站lDHCP欺騙虛假DNS
19、服務(wù)器釣魚網(wǎng)站TCP安全SYN Flood我沒發(fā)過請求SYN_RECV狀態(tài)半開連接隊列遍歷,消耗CPU和內(nèi)存SYN|ACK 重試SYN Timeout:30秒2分鐘無暇理睬正常的連接請求拒絕服務(wù)SYN (我可以連接嗎?)ACK (可以)/SYN(請確認(rèn)?。┕粽呤芎φ邆卧斓刂愤M(jìn)行SYN 請求為何還沒回應(yīng)就是讓你白等不能建立正常的連接!SYN Flood 攻擊原理攻擊表象TCP安全Connection Flood攻擊者受害者大量tcp connect這么多?不能建立正常的連接正常tcp connect正常用戶正常tcp connect攻擊表象正常tcp connect正常tcp connect正
20、常tcp connect正常tcp connect 利用真實 IP 地址(代理服務(wù)器、廣告頁面)在服務(wù)器上建立大量連接 服務(wù)器上殘余連接(WAIT狀態(tài))過多,效率降低,甚至資源耗盡,無法響應(yīng) 蠕蟲傳播過程中會出現(xiàn)大量源IP地址相同的包,對于 TCP 蠕蟲則表現(xiàn)為大范圍掃描行為 消耗骨干設(shè)備的資源,如防火墻的連接數(shù)Connection Flood 攻擊原理TCP安全CC攻擊攻擊者受害者(Web Server)正常HTTP Get請求不能建立正常的連接正常HTTP Get Flood正常用戶正常HTTP Get Flood攻擊表象利用代理服務(wù)器向受害者發(fā)起大量HTTP Get請求主要請求動態(tài)頁面,
21、涉及到數(shù)據(jù)庫訪問操作數(shù)據(jù)庫負(fù)載以及數(shù)據(jù)庫連接池負(fù)載極高,無法響應(yīng)正常請求正常HTTP Get Flood正常HTTP Get Flood正常HTTP Get Flood正常HTTP Get Flood正常HTTP Get Flood受害者(DB Server)DB連接池用完啦!DB連接池占用占用占用HTTP Get Flood 攻擊原理Attack ToolsCC & BotnetSnooping防止(SYN Flood)SYNSYN+ACKACKSYNSYN+ACKACKClient ProxyServerSnooping防止( HTTP Flood/CC)SourceAnti-SpoofingSyn(c#)Hash-function(SrcIP,port,t)ack(c#,s#)SrcIP, port#=Redirect(c#,s#)Synack(c#,s#)Syn(c#)request(c#,s#)TargetVerified connectionssynack(c#,s#)GET requestDNS安全電信主DNS電信輔DNS企業(yè)DNS代理服務(wù)器用戶根域服務(wù)器代理,緩存緩存(遞歸、查詢)服務(wù)器CN服務(wù)器HK服務(wù)器授權(quán)域
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024春季新款服裝定制合同3篇
- 2024年貨物買賣與運輸服務(wù)合同
- 杉木樁駁岸施工方案
- 化學(xué)礦在能源開發(fā)中的應(yīng)用考核試卷
- 衛(wèi)星傳輸系統(tǒng)中的衛(wèi)星電源與能源管理考核試卷
- 城際鐵路旅客運輸與新型城鎮(zhèn)化建設(shè)考核試卷
- 2025至2030年中國P型存水彎管數(shù)據(jù)監(jiān)測研究報告
- 2025年中國玻璃拉絲擺飾市場調(diào)查研究報告
- 奉化廠區(qū)綠化施工方案
- 2025至2031年中國預(yù)測分析系統(tǒng)行業(yè)投資前景及策略咨詢研究報告
- GB/T 44273-2024水力發(fā)電工程運行管理規(guī)范
- 浙江省杭州市余杭區(qū)2023-2024學(xué)年二年級上學(xué)期期末語文試題
- 傳媒互聯(lián)網(wǎng)行業(yè)幣價影響因素分析:對比利率、M2、納指、美元指數(shù)、黃金走勢
- 二年級上冊數(shù)學(xué)連算口算題卡(-打印版)
- 2025屆河南省南陽市宛城區(qū)九上數(shù)學(xué)期末監(jiān)測試題含解析
- 曳引驅(qū)動電梯調(diào)試作業(yè)指導(dǎo)書
- JT-T-617.4-2018危險貨物道路運輸規(guī)則第4部分:運輸包裝使用要求
- 2021年7月自考06087工程項目管理試題及答案含解析
- 奧爾波特價值觀量表
- 旅游商圈城市商圈oto系統(tǒng)
- 三年級加法豎式題50道
評論
0/150
提交評論