SlideShare a Scribd company logo
1 of 30
Download to read offline
一般的なプロトコルの
パケットを覗いてみよう
  Hokkaido.cap #2
    2011.04.22
  Masayuki YAMAKI
今日の目標
• 一般的なプロトコルのパケットがどのようなもの
  か理解しましょう。
• 各プロトコルのパケットがWiresharkからどのよ
  うに見えるか確認しましょう。
• 前回に引き続き、Wiresharkの使い方を覚えま
  しょう。




             2
前回のおさらい
• 第1回目の資料「Winresharkの使い方(基礎
  編)」を以下のURLで公開しています。
  Wiresharkを初めて使う方は参照しながら進め
  てみてください。
     http://handsout.jp/slide/3623
• 操作方法がわからない場合は、遠慮せずにど
  んどん質問してください。



                 3
今日の進め方
• 「実践パケット解析 第6章 一般的なプロトコル」
  の内容をベースに進めます。本書をお持ちの方
  は演習に合わせて参照してください。
• スライドには各プロトコルの概要のみ記載して
  います。実際のパケットがこのとおりの動きをし
  ているか確認していきましょう。
• 気付いた点やわからない点があれば自由に
  ディスカッションしましょう。

            4
演習資料




 5
ARP (Address Resolution Protocol)
• サンプルファイル : arp.pcap
• RFC 826
• レイヤ3のアドレス(IPアドレス)をレイヤ2のアド
  レス(MACアドレス)に変換するプロトコル。
• 送信元のノードはARPリクエストをレイヤ2ブロー
  ドキャストアドレス(ff:ff:ff:ff:ff:ff)へ送信し、そ
  れを受け取ったノードは自分のIPアドレスと合致
  した場合、自分のMACアドレスをレスポンスとし
  て返す。
                 6
ARP (Address Resolution Protocol)
• ARPは要求と応答の2つのパケットしか使わない。




                7
DHCP (Dynamic Host Configuration Protocol)
• サンプルファイル : dhcp.pcap
• RFC2131
• ネットワーク情報(IPアドレス、コンピュータ名
  等)を提供するプロトコル。
• クライアントはDHCP Discoverパケット(DHCPサーバを
  探すためのパケット)をブロードキャストアドレス
  (255.255.255.255)へ送信し、DHCPサーバがこのアド
  レスを受け取るとクライアントにDHCP Offerパケット(ク
  ライアントに提供するネットワーク情報)を送信する。

                    8
DHCP (Dynamic Host Configuration Protocol)
• 次に、クライアントはDHCPサーバの提示したアドレス
  に問題がなければDHCP Requestパケットを送信し、正
  式にIPアドレスを要求する。
• 最後に、クライアントがDHCP Ackメッセージを受信する
  と、その内容に従いIPアドレス設定を行う。




                    9
TCP/IP と HTTP
• サンプルファイル : http.pcap
• TCP (Transmission Control Protocol) : RFC793
  - レイヤ4のプロトコル。透過的で信頼性が高く、欠損
    パケット再送などのエラー訂正機能を持つ。
• IP (Internet Protocol) : RFC791
  - レイヤ3のプロトコル。通信を可能とするためのアド
    レッシングを行うコネクションレス型のプロトコル。
• HTTP (Hypertext Transfer Protocol) : RFC2616
  - Webページを転送するためのプロトコル。

                        10
パケットヘッダ と Ethernet フレーム
パケットヘッダの階層構造
   Ethernet Header   (IP Header)       (TCP Header)                Data

                                       Ethernet ではデータ

                     IP Header         (TCP Header)                Data

                                                        IP ではデータ

                                           TCP Header              Data

Ethernetフレームフォーマット
  Destination     Source
 MAC Address    MAC Address       Type                Data                 FCS
   (6byte)        (6byte)        (2byte)          (46~1500byte)           (4byte)




                                      11
IPv4 ヘッダフォーマット
0           34         78                       15 16                                 31(bit)
     Version      IHL         Type of Service                    Total Length
    (バージョン)   (ヘッダ長)        (サービスタイプ)                          (パケット長)
                   Identification                      Flags        Flagment Offset
                     (識別子)                            (フラグ)       (フラグメントオフセット)
        Time To Live            Protocol                       Header Checksum
         (生存時間)               (プロトコル番号)                        (ヘッダチェックサム)
                                        Source IP Address
                                        (送信元IPアドレス)
                                      Destination IP Address
                                         (宛先IPアドレス)
                                       Option + Padding
                                     (オプション + パディング)

                                         Data
                         (TCP,UDP,ICMPなどのプロトコルのヘッダとデータ)



                                                 12
TCP ヘッダフォーマット
0            34               9 10                    15 16                          31(bit)
                    Source Port                                   Destination Port
                  (送信元ポート番号)                                      (宛先ポート番号)
                                              Sequence Number
                                               (シーケンス番号)
                                         Acknowledgement Number
                                              (確認応答番号)
    Data           Reserved     U    A    P   R   S   F
                                                                    Window Size
                                R    C    S   S   Y   I
    Offset        (予約領域)                                          (ウィンドウサイズ)
                                G    K    H   T   N   N
                    Checksum                                      Urgent Pointer
                    (チェックサム)             Code bit                 (緊急ポインタ)
                                            Option + Padding
                                          (オプション + パディング)

                                               Data (データ部)




                                                       13
TCP コネクション管理

 SYN (コネクション確立要求)
    ACK (SYNに対する確認応答)
    SYN (コネクション確立要求)        コネクション確立
                            (3 -Way Handshake)
 ACK (SYNに対する確認応答)

コネクション確立後 データデータ転送開始

 FIN/ACK (コネクション切断要求)
     ACK (FINに対する確認応答)
     FIN/ACK (コネクション切断要求)   コネクション切断

 ACK (FINに対する確認応答)


               14
TCP ヘッダ Codebit
     Codebit                        説明
      URG           このビットが1の場合、緊急処理すべきデータが含まれることを意味する。
    (Urgent)
       ACK          このビットが1の場合、確認応答番号のフィールドが有効であることを意
(Acknowledgement)   味する。コネクション確立時の最初のSYNセグメント以外は必ず1である必
                    要がある。
      PSH           このビットが1の場合、受信したデータをすぐに上位のアプリケーションに
     (Push)         渡す。0の場合はバッファリングを許す。

       RST          このビットが1の場合、コネクションが強制的に切断される。
     (Reset)        何らかの異常を検出した場合に送信される。

      SYN           このビットが1の場合、コネクション確立の意思表示を表す。また、シーケ
  (Synchronize)     ンス番号のフィールドに格納されている番号でシーケンス番号の初期化
                    が行われる。
       FIN          このビットが1の場合、今後送信するデータがないことを意味する。それぞ
      (Fin)         れのFINに対して確認応答されるとコネクションが切断される。



                              15
サンプル HTTP ファイル
• 4番目のパケットがGETリクエスト
 - Follow TCP Stream を使うと一連の通信の流れを特
   定しやすい。




                16
サンプル HTTP ファイル
• 38番目のパケットがOKパケット




            17
DNS (Domain Name System)
• サンプルファイル : dns.pcap
• RFC1034
• ドメイン名(www.google.comなど)をIPアドレス
  に変換する。
• たいていの場合、DNSサーバへの名前解決要
  求→応答 という2つのパケットで事足りる。




                18
DNS (Domain Name System)
• 実際にキャプチャしてみると1つのWebページ
  で複数のDNSパケットが流れていたり、レスポン
  スにCNAME(別名に対する正規名)が含まれて
  いることがわかる。




               19
FTP (File Transfer Protocol)
• サンプルファイル : ftp.pcap
• RFC959
• クライアント/サーバ間のデータ転送のためのプロトコル。
• 21番ポートを 制御コネクションとして使用し、選択した
  モードに従いデータ転送コネクションを確立する。
   - ACTIVEモード : 20番ポートを使用し、サーバ側から
     データ転送コネクションを確立する。
   - PASSIVEモード : 任意のポートを使用し、クライアント
     側からデータ転送コネクションを確立する。

                   20
FTP (File Transfer Protocol)
• FTPの場合、パケット一覧を確認するだけでも十
  分な情報が得られる。
 - パスワードも見えてしまう。




                 21
TELNET
• サンプルファイル : telnet.pcap
• RFC854
• コンピュータ、ネットワーク機器などをリモートか
  ら操作するためのプロトコル。
• 転送レートやデータ転送モードを指定するオプ
  ションを指定し、通信を始める前にそれらを同
  期する必要がある。



                 22
TELNET
• 平文で通信するため、セキュリティ上問題となる
  場合がある。
 - 重要なデータは、より安全なSSHを使用したほうがよ
   い。




             23
MSNMS (MSNメッセンジャーサービス)
• サンプルファイル : msnms.pcap
• Microsoft社が提供しているインスタントメッセン
  ジャーサービスのプロトコル。
• インスタントメッセンジャーにはいくつか種類が
  あり、それぞれ似てはいるが独自のプロトコル
  を使用している。




              24
ICMP (Internet Control Message Protocol)
• サンプルファイル : icmp.pcap
• RFC792
• IPのエラーメッセージや制御メッセージを転送す
  るプロトコル。
• ICMPパケットには必ず数字で表わされるタイプ
  が含まれており、その数字によって送信先コン
  ピュータでの処理方法が変わる。



                   25
ICMP タイプの例
タイプ                        説明
 0    エコー応答 (Echo Reply)
 3    宛先到達不能 (Destination Unreachable)
 4    発信元抑制 (Source Quench)
 5    リダイレクト (Redirect)
 8    エコー要求 (Echo Request)
 9    ルータアドバタイズ (Router Advertisement)
10    ルータ選択 (Router Selection)
11    時間超過 (Time Exceeded)
12    パラメータ問題 (Parameter Problem)


                     26
タイプ 3 (宛先到達不能)のコード
コード                説明                コード                     説明
 0    Netwrok Unreachable                8    Source Host Isolated
 1    Host Unreachable                   9    Network Administartively
                                              Prohibited
 2    Protocol Unreachable               10   Destinantion Host
                                              Administartively Prohibited
 3    Port Unreachable                   11   Network Unreachable For TOS
 4    Fragmentation Needed and           12   Host Unreachable For TOS
      DF (Don't Fragment) set
 5    Source Route Failed                13   Communication Administratively
                                              Prohibited
 6    Destination Network Unknown        14   Host Precedence Violation
 7    Destination Host Unknown           15   Precedence Cutoff in Effect



                                    27
まとめと参考資料




   28
この演習のまとめ
• 一般的なプロトコルのパケットがWiresharkでど
  のように見えるか確認しました。
• 実際のトラブルシューティングでは「プロトコル
  の本来の動き」とはどういうものか知っていると
  問題の早期解決に繋がります。
• テキストに載っていないプロトコルについても、
  興味があればキャプチャして覗いてみましょう。



             29
参考資料
• 実践パケット解析 - Wiresharkを使ったトラブ
  ルシューティング
 - http://www.oreilly.co.jp/books/9784873113517
 - ISBN978-4-87311-351-7
• RFC Editor (RFCの公開および管理機関)
 - http://www.rfc-editor.org
• RFC 日本語版リスト (原文へのリンクもあり)
 - http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html


                        30

More Related Content

What's hot

TCAMのしくみ
TCAMのしくみTCAMのしくみ
TCAMのしくみ
ogatay
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
(^-^) togakushi
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashing
Kumazaki Hiroki
 

What's hot (20)

Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)Hokkaido.cap#1 Wiresharkの使い方(基礎編)
Hokkaido.cap#1 Wiresharkの使い方(基礎編)
 
TCAMのしくみ
TCAMのしくみTCAMのしくみ
TCAMのしくみ
 
CTFとは
CTFとはCTFとは
CTFとは
 
Are Design Patterns Dead?
Are Design Patterns Dead?Are Design Patterns Dead?
Are Design Patterns Dead?
 
AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
Rustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミングRustで楽しむ競技プログラミング
Rustで楽しむ競技プログラミング
 
CRDT in 15 minutes
CRDT in 15 minutesCRDT in 15 minutes
CRDT in 15 minutes
 
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説
 
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
 
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
 
暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
形態素解析
形態素解析形態素解析
形態素解析
 
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashing
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 

Viewers also liked

Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Panda Yamaki
 
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめHokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
Panda Yamaki
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Panda Yamaki
 
Hokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィングHokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィング
Panda Yamaki
 
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Panda Yamaki
 

Viewers also liked (20)

Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
 
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめHokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
 
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
 
目視パケット解析入門
目視パケット解析入門目視パケット解析入門
目視パケット解析入門
 
Wireshark入門 (2014版)
Wireshark入門 (2014版)Wireshark入門 (2014版)
Wireshark入門 (2014版)
 
Hokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィングHokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィング
 
パケットで遊ぼう! #ssmjp 2015/04
パケットで遊ぼう! #ssmjp 2015/04 パケットで遊ぼう! #ssmjp 2015/04
パケットで遊ぼう! #ssmjp 2015/04
 
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
 
COD2013「ネットワーク パケット解析・基本の基本」
COD2013「ネットワーク パケット解析・基本の基本」COD2013「ネットワーク パケット解析・基本の基本」
COD2013「ネットワーク パケット解析・基本の基本」
 
フレッシャーズのためのパケット解析入門
フレッシャーズのためのパケット解析入門フレッシャーズのためのパケット解析入門
フレッシャーズのためのパケット解析入門
 
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
 
Wireshark入門
Wireshark入門Wireshark入門
Wireshark入門
 
Wireshark入門(3)
Wireshark入門(3)Wireshark入門(3)
Wireshark入門(3)
 
Wireshark入門(2)
Wireshark入門(2)Wireshark入門(2)
Wireshark入門(2)
 
パケット解析ノススメ
パケット解析ノススメパケット解析ノススメ
パケット解析ノススメ
 
Wireshark入門(4)
Wireshark入門(4)Wireshark入門(4)
Wireshark入門(4)
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 

Similar to Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう

法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
Ruo Ando
 
パケットフィルタリングの考え方
パケットフィルタリングの考え方パケットフィルタリングの考え方
パケットフィルタリングの考え方
Koiwa Hidekazu
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
Akira Kanaoka
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
Ruo Ando
 
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
Ruo Ando
 

Similar to Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう (20)

Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
 
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
 
IPsecについて
IPsecについてIPsecについて
IPsecについて
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎
 
パケットフィルタリングの考え方
パケットフィルタリングの考え方パケットフィルタリングの考え方
パケットフィルタリングの考え方
 
20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門20120519 #qpstudy インターフェース入門
20120519 #qpstudy インターフェース入門
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
 
PFI Seminar 2010/01/21
PFI Seminar 2010/01/21PFI Seminar 2010/01/21
PFI Seminar 2010/01/21
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
Scapy presentation
Scapy presentationScapy presentation
Scapy presentation
 
コンピューターネットワーク入門
コンピューターネットワーク入門コンピューターネットワーク入門
コンピューターネットワーク入門
 
20220602コンピュータネットワーク.pdf
20220602コンピュータネットワーク.pdf20220602コンピュータネットワーク.pdf
20220602コンピュータネットワーク.pdf
 
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
 
20060520.tcp
20060520.tcp20060520.tcp
20060520.tcp
 
システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8
 
SPDYの話
SPDYの話SPDYの話
SPDYの話
 
Richard high performance fuzzing ja
Richard  high performance fuzzing jaRichard  high performance fuzzing ja
Richard high performance fuzzing ja
 
Inside winnyp
Inside winnypInside winnyp
Inside winnyp
 

More from Panda Yamaki (6)

U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介
 
Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介
 
U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版
 
せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~
 
5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCAL5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCAL
 
LDD13is 先行告知
LDD13is 先行告知LDD13is 先行告知
LDD13is 先行告知
 

Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう

  • 2. 今日の目標 • 一般的なプロトコルのパケットがどのようなもの か理解しましょう。 • 各プロトコルのパケットがWiresharkからどのよ うに見えるか確認しましょう。 • 前回に引き続き、Wiresharkの使い方を覚えま しょう。 2
  • 3. 前回のおさらい • 第1回目の資料「Winresharkの使い方(基礎 編)」を以下のURLで公開しています。 Wiresharkを初めて使う方は参照しながら進め てみてください。 http://handsout.jp/slide/3623 • 操作方法がわからない場合は、遠慮せずにど んどん質問してください。 3
  • 4. 今日の進め方 • 「実践パケット解析 第6章 一般的なプロトコル」 の内容をベースに進めます。本書をお持ちの方 は演習に合わせて参照してください。 • スライドには各プロトコルの概要のみ記載して います。実際のパケットがこのとおりの動きをし ているか確認していきましょう。 • 気付いた点やわからない点があれば自由に ディスカッションしましょう。 4
  • 6. ARP (Address Resolution Protocol) • サンプルファイル : arp.pcap • RFC 826 • レイヤ3のアドレス(IPアドレス)をレイヤ2のアド レス(MACアドレス)に変換するプロトコル。 • 送信元のノードはARPリクエストをレイヤ2ブロー ドキャストアドレス(ff:ff:ff:ff:ff:ff)へ送信し、そ れを受け取ったノードは自分のIPアドレスと合致 した場合、自分のMACアドレスをレスポンスとし て返す。 6
  • 7. ARP (Address Resolution Protocol) • ARPは要求と応答の2つのパケットしか使わない。 7
  • 8. DHCP (Dynamic Host Configuration Protocol) • サンプルファイル : dhcp.pcap • RFC2131 • ネットワーク情報(IPアドレス、コンピュータ名 等)を提供するプロトコル。 • クライアントはDHCP Discoverパケット(DHCPサーバを 探すためのパケット)をブロードキャストアドレス (255.255.255.255)へ送信し、DHCPサーバがこのアド レスを受け取るとクライアントにDHCP Offerパケット(ク ライアントに提供するネットワーク情報)を送信する。 8
  • 9. DHCP (Dynamic Host Configuration Protocol) • 次に、クライアントはDHCPサーバの提示したアドレス に問題がなければDHCP Requestパケットを送信し、正 式にIPアドレスを要求する。 • 最後に、クライアントがDHCP Ackメッセージを受信する と、その内容に従いIPアドレス設定を行う。 9
  • 10. TCP/IP と HTTP • サンプルファイル : http.pcap • TCP (Transmission Control Protocol) : RFC793 - レイヤ4のプロトコル。透過的で信頼性が高く、欠損 パケット再送などのエラー訂正機能を持つ。 • IP (Internet Protocol) : RFC791 - レイヤ3のプロトコル。通信を可能とするためのアド レッシングを行うコネクションレス型のプロトコル。 • HTTP (Hypertext Transfer Protocol) : RFC2616 - Webページを転送するためのプロトコル。 10
  • 11. パケットヘッダ と Ethernet フレーム パケットヘッダの階層構造 Ethernet Header (IP Header) (TCP Header) Data Ethernet ではデータ IP Header (TCP Header) Data IP ではデータ TCP Header Data Ethernetフレームフォーマット Destination Source MAC Address MAC Address Type Data FCS (6byte) (6byte) (2byte) (46~1500byte) (4byte) 11
  • 12. IPv4 ヘッダフォーマット 0 34 78 15 16 31(bit) Version IHL Type of Service Total Length (バージョン) (ヘッダ長) (サービスタイプ) (パケット長) Identification Flags Flagment Offset (識別子) (フラグ) (フラグメントオフセット) Time To Live Protocol Header Checksum (生存時間) (プロトコル番号) (ヘッダチェックサム) Source IP Address (送信元IPアドレス) Destination IP Address (宛先IPアドレス) Option + Padding (オプション + パディング) Data (TCP,UDP,ICMPなどのプロトコルのヘッダとデータ) 12
  • 13. TCP ヘッダフォーマット 0 34 9 10 15 16 31(bit) Source Port Destination Port (送信元ポート番号) (宛先ポート番号) Sequence Number (シーケンス番号) Acknowledgement Number (確認応答番号) Data Reserved U A P R S F Window Size R C S S Y I Offset (予約領域) (ウィンドウサイズ) G K H T N N Checksum Urgent Pointer (チェックサム) Code bit (緊急ポインタ) Option + Padding (オプション + パディング) Data (データ部) 13
  • 14. TCP コネクション管理 SYN (コネクション確立要求) ACK (SYNに対する確認応答) SYN (コネクション確立要求) コネクション確立 (3 -Way Handshake) ACK (SYNに対する確認応答) コネクション確立後 データデータ転送開始 FIN/ACK (コネクション切断要求) ACK (FINに対する確認応答) FIN/ACK (コネクション切断要求) コネクション切断 ACK (FINに対する確認応答) 14
  • 15. TCP ヘッダ Codebit Codebit 説明 URG このビットが1の場合、緊急処理すべきデータが含まれることを意味する。 (Urgent) ACK このビットが1の場合、確認応答番号のフィールドが有効であることを意 (Acknowledgement) 味する。コネクション確立時の最初のSYNセグメント以外は必ず1である必 要がある。 PSH このビットが1の場合、受信したデータをすぐに上位のアプリケーションに (Push) 渡す。0の場合はバッファリングを許す。 RST このビットが1の場合、コネクションが強制的に切断される。 (Reset) 何らかの異常を検出した場合に送信される。 SYN このビットが1の場合、コネクション確立の意思表示を表す。また、シーケ (Synchronize) ンス番号のフィールドに格納されている番号でシーケンス番号の初期化 が行われる。 FIN このビットが1の場合、今後送信するデータがないことを意味する。それぞ (Fin) れのFINに対して確認応答されるとコネクションが切断される。 15
  • 16. サンプル HTTP ファイル • 4番目のパケットがGETリクエスト - Follow TCP Stream を使うと一連の通信の流れを特 定しやすい。 16
  • 17. サンプル HTTP ファイル • 38番目のパケットがOKパケット 17
  • 18. DNS (Domain Name System) • サンプルファイル : dns.pcap • RFC1034 • ドメイン名(www.google.comなど)をIPアドレス に変換する。 • たいていの場合、DNSサーバへの名前解決要 求→応答 という2つのパケットで事足りる。 18
  • 19. DNS (Domain Name System) • 実際にキャプチャしてみると1つのWebページ で複数のDNSパケットが流れていたり、レスポン スにCNAME(別名に対する正規名)が含まれて いることがわかる。 19
  • 20. FTP (File Transfer Protocol) • サンプルファイル : ftp.pcap • RFC959 • クライアント/サーバ間のデータ転送のためのプロトコル。 • 21番ポートを 制御コネクションとして使用し、選択した モードに従いデータ転送コネクションを確立する。 - ACTIVEモード : 20番ポートを使用し、サーバ側から データ転送コネクションを確立する。 - PASSIVEモード : 任意のポートを使用し、クライアント 側からデータ転送コネクションを確立する。 20
  • 21. FTP (File Transfer Protocol) • FTPの場合、パケット一覧を確認するだけでも十 分な情報が得られる。 - パスワードも見えてしまう。 21
  • 22. TELNET • サンプルファイル : telnet.pcap • RFC854 • コンピュータ、ネットワーク機器などをリモートか ら操作するためのプロトコル。 • 転送レートやデータ転送モードを指定するオプ ションを指定し、通信を始める前にそれらを同 期する必要がある。 22
  • 23. TELNET • 平文で通信するため、セキュリティ上問題となる 場合がある。 - 重要なデータは、より安全なSSHを使用したほうがよ い。 23
  • 24. MSNMS (MSNメッセンジャーサービス) • サンプルファイル : msnms.pcap • Microsoft社が提供しているインスタントメッセン ジャーサービスのプロトコル。 • インスタントメッセンジャーにはいくつか種類が あり、それぞれ似てはいるが独自のプロトコル を使用している。 24
  • 25. ICMP (Internet Control Message Protocol) • サンプルファイル : icmp.pcap • RFC792 • IPのエラーメッセージや制御メッセージを転送す るプロトコル。 • ICMPパケットには必ず数字で表わされるタイプ が含まれており、その数字によって送信先コン ピュータでの処理方法が変わる。 25
  • 26. ICMP タイプの例 タイプ 説明 0 エコー応答 (Echo Reply) 3 宛先到達不能 (Destination Unreachable) 4 発信元抑制 (Source Quench) 5 リダイレクト (Redirect) 8 エコー要求 (Echo Request) 9 ルータアドバタイズ (Router Advertisement) 10 ルータ選択 (Router Selection) 11 時間超過 (Time Exceeded) 12 パラメータ問題 (Parameter Problem) 26
  • 27. タイプ 3 (宛先到達不能)のコード コード 説明 コード 説明 0 Netwrok Unreachable 8 Source Host Isolated 1 Host Unreachable 9 Network Administartively Prohibited 2 Protocol Unreachable 10 Destinantion Host Administartively Prohibited 3 Port Unreachable 11 Network Unreachable For TOS 4 Fragmentation Needed and 12 Host Unreachable For TOS DF (Don't Fragment) set 5 Source Route Failed 13 Communication Administratively Prohibited 6 Destination Network Unknown 14 Host Precedence Violation 7 Destination Host Unknown 15 Precedence Cutoff in Effect 27
  • 29. この演習のまとめ • 一般的なプロトコルのパケットがWiresharkでど のように見えるか確認しました。 • 実際のトラブルシューティングでは「プロトコル の本来の動き」とはどういうものか知っていると 問題の早期解決に繋がります。 • テキストに載っていないプロトコルについても、 興味があればキャプチャして覗いてみましょう。 29
  • 30. 参考資料 • 実践パケット解析 - Wiresharkを使ったトラブ ルシューティング - http://www.oreilly.co.jp/books/9784873113517 - ISBN978-4-87311-351-7 • RFC Editor (RFCの公開および管理機関) - http://www.rfc-editor.org • RFC 日本語版リスト (原文へのリンクもあり) - http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html 30