シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

ネコでも分かる SYN cookies cookies こおしいず このスライドは開発中版であり、たぶん嘘も含まれます

2.

DNS, TCP, UDP, IP OSI参照モデル * HTTP, DNS * SSL,TLS * SIP * TCP, UDP * IP, IPsec, ICMP * Ethernet, PPP, ATM * 100BASE-TX Wikipedia調べ https://a nslblog .ha ten ablog.com/en try/2019/05/22/OS I% E5%8F%8 2%E7% 85%A 7%E3% 83%A 2%E3% 83%8 7%E3% 83%A B%E3% 81%A 8TCP% EF%BC%8 FIP%E 3%81% AB%E 3%81% A4%E 3%81% 84%E 3%81% A6

3.

IP

4.

IP packet https://ja .wikipedia.org/wiki/IPv4

5.

IP packet ここにTCP / UDPのパケット構造が載る https://ja .wikipedia.org/wiki/IPv4

6.

IP 1.2.3.4 IP packet src: 1.2.3.4 dst: 5.6.7.8 data 5.6.7.8

7.

IP 1.2.3.4 IP packet src: 1.2.3.4 dst: 5.6.7.8 data 5.6.7.8

8.

IP 1.2.3.4 IP packet src: 5.6.7.8 dst: 1.2.3.4 data 5.6.7.8

9.

IP 1.2.3.4 IP packet src: 5.6.7.8 dst: 1.2.3.4 data 5.6.7.8

10.

IP spoofing 1.2.3.4 IP packet src: 4.3.2.1 dst: 5.6.7.8 data 5.6.7.8

11.

IP spoofing 1.2.3.4 IP packet src: 4.3.2.1 dst: 5.6.7.8 data 5.6.7.8

12.

IP spoofing 1.2.3.4 IP packet src: 5.6.7.8 dst: 4.3.2.1 data 5.6.7.8

13.

IP spoofing IP packet src: 5.6.7.8 dst: 4.3.2.1 data 1.2.3.4 4.3.2.1 5.6.7.8

14.

IP w/ TCP

15.

TCP 3way handshake 1. SYN 2. SYN ACK 3. ACK 4. (実データ転送...) https://www.infraexper t.com/study/tcpip9.html

16.

TCP state https://u ser s.cs.northweste rn.edu/~ag upta/cs340/proj ect2/TCPIP_State_Transitio n_Diagram.pdf

17.

IP spoofing with TCP 1.2.3.4 SYN_SENT IP packet src: 4.3.2.1 dst: 5.6.7.8 SYN 5.6.7.8 LISTEN

18.

IP spoofing with TCP 1.2.3.4 SYN_SENT IP packet src: 4.3.2.1 dst: 5.6.7.8 SYN 5.6.7.8 LISTEN

19.

IP spoofing with TCP 1.2.3.4 SYN_SENT IP packet src: 5.6.7.8 dst: 4.3.2.1 SYN ACK 5.6.7.8 SYN_RCVD

20.

IP spoofing with TCP 1.2.3.4 SYN_SENT は?誰? 4.3.2.1 IP packet src: 5.6.7.8 dst: 4.3.2.1 SYN ACK CLOSED 5.6.7.8 SYN_RCVD

21.

IP spoofing with TCP 1.2.3.4 5.6.7.8 SYN_SENT めでたし...? は?誰? 4.3.2.1 CLOSED SYN_RCVD

22.

IP spoofing with TCP 1.2.3.4 5.6.7.8 SYN_RCVD SYN_SENT は?誰? 5.6.7.8で資源枯渇する [SYN flood] TCP stateの記憶のために、メモリ を消費する。 4.3.2.1 CLOSED

23.

SYN cookies

24.

TCP 3way handshake 1. SYN 2. SYN ACK 3. ACK 4. (実データ転送...) https://www.infraexper t.com/study/tcpip9.html

25.

TCP 3way handshake 続きを読む https://www.infraexper t.com/study/tcpip9.html

26.

TCP 3way handshake 続きを読む 初期シーケンス番号(seq#)は任意。 clientからの初期seq#は任意が来る。 serverからの初期seq#は任意に選ぶ。 https://www.infraexper t.com/study/tcpip9.html

27.

TCP seq#, ack#(確認応答番号) 互いに、 ● seq#が来たら、 ● データサイズを加算し、 ● ack#に入れて 返答をする必要がある。 来たpacketのack#は、直前に送った seq#と矛盾していてはならない。 (善人的に見れば、パケットが一部 遅延/欠損したことを示す) https://www.infraexper t.com/study/tcpip9.html

28.

SYN cookies 賢い人「任意で良いところの初期seq#をうまく調整すれば、SYN_RECV時点で はメモリ確保しなくていいんじゃね?」 初期seq# := f (counter, MSS, Client IP, Client port#, Server IP, Server port#) ● MSS … クライアントとサーバー間で合意しなければならないTCPの最大ペ イロード長。IPでいうMTU。 これで多少パフォーマンスを犠牲に しながら、サーバー側のメモリ確保を 遅延できる。 http://cr .yp.to /synco okie s.html

29.

IP with TCP with SYN cookies 1.2.3.4 SYN_SENT IP packet src: 1.2.3.4 dst: 5.6.7.8 SYN seq: x 5.6.7.8 LISTEN

30.

IP with TCP with SYN cookies 1.2.3.4 SYN_SENT IP packet src: 1.2.3.4 dst: 5.6.7.8 SYN seq: x 5.6.7.8 LISTEN

31.

IP with TCP with SYN cookies 1.2.3.4 SYN_SENT IP packet src: 5.6.7.8 dst: 1.2.3.4 SYN ACK seq: f(...) ack: x+1 5.6.7.8 (stateless)

32.

IP with TCP with SYN cookies 1.2.3.4 SYN_SENT IP packet src: 5.6.7.8 dst: 1.2.3.4 SYN ACK seq: f(...) ack: x+1 5.6.7.8 (stateless)

33.

IP with TCP with SYN cookies 1.2.3.4 ESTAB IP packet src: 1.2.3.4 dst: 5.6.7.8 ACK seq: x+1 ack: f(...)+1 5.6.7.8 (stateless)

34.

IP with TCP with SYN cookies 1.2.3.4 ESTAB IP packet src: 1.2.3.4 dst: 5.6.7.8 ACK seq: x+1 ack: f(...)+1 5.6.7.8 (stateless)

35.

IP with TCP with SYN cookies 1.2.3.4 ESTAB IP packet src: 1.2.3.4 dst: 5.6.7.8 ACK seq: x+1 ack: f(...)+1 5.6.7.8 (stateless) Client IPなどから算出したf(...)の値 を使って、ack#の妥当性検査

36.

IP with TCP with SYN cookies 1.2.3.4 ESTAB IP packet src: 1.2.3.4 dst: 5.6.7.8 ACK seq: x+1 ack: f(...)+1 5.6.7.8 ESTAB !!! サーバ側で初めてメモリを確保

37.

SYN cookies SYN後のSYN ACKレスポンスを受け取ってないと、適切なack#つきでのACKが 送れない。 secret functionが適切であれば、24bitの値を当てるのはむずかしい。 http://cr .yp.to /synco okie s.html