ユーザ用ツール

サイト用ツール


05_network:05_tcpdump_wireshark

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
05_network:05_tcpdump_wireshark [2014/06/24 03:22] matsui05_network:05_tcpdump_wireshark [2014/06/24 04:37] (現在) matsui
行 1: 行 1:
 +====== 05 tcpdump Wireshark ======
  
 +tcpdump が出力したファイルをWiresharkで読み込む事ができます。
 +
 +=== Wiresharkダウンロード ===
 +
 +[[http://sourceforge.jp/projects/wireshark/]]
 +
 +===== tcpdumpでWiresharkで読めるように出力 =====
 +
 +
 +<code console>
 +# tcpdump -nne -i eth0  -X  -s 0 -w tcpdump.log
 +</code>
 +
 +出力されたファイルを、Wiresharkで読み込む。
 +
 +
 +===== WiresharkでSSLを復号 =====
 +
 +Wiresharkでは、秘密鍵を設定することでSSL通信を復号することが可能です。
 +
 +
 +[[http://d.hatena.ne.jp/ozuma/20140413/1397397632|ここがすごく詳しく説明してくれてます。]]
 +
 +
 +  - メニューの[Edit]→[Preferences]から、Preferencesウィンドウの[Protocols]→[SSL]
 +  - [RSA keys list]の[Edit]をクリックします。
 +  - [SSL Decrypt]のProfile設定画面となるので、[New]をクリックします。
 +以下のように入力します。
 +
 +|項目|入力値|
 +|IP address|対象のIPアドレス|
 +|Port|対象のポート番号。普通は443でしょう|
 +|Protocol|ここはhttpsではなくhttpと記述します|
 +|Key File|秘密鍵ファイル。クリックするとファイル選択ダイアログが開きます|
 +|Password|鍵ファイルのパスフレーズ。パスを付けていないならば、空のままにしておく|
 +
 +
 +==== デバックログでエラー ====
 +
 +<code>
 +ssl_load_key: can't import pem data: Base64 unexpected header error.
 +</code>
 +
 +このエラーの場合は、鍵が間違っている。
 +鍵はPem形式である必要があります。
 +
 +下記のような(一部XXXにしてあります。)
 +<code>
 +-----BEGIN RSA PRIVATE KEY-----
 +MIICXAIBAAKBgQCva0tWYJ+9Uk7STht248aoLnm1jIhsrNOy4EcfKy9sghiM83fL
 +ODPhzi7kT8G6fb0d2DqlXoO+KEOJs1j4QGWe2SVnXqpZMN3gk+0m4zEBqbeu4C9D
 +D6imsqOYWYz3b89Sl8IE4pgalzWLVeNIWrY6Yt5Jp3Gsq8VukamIYKwbdQIDAQAB
 +AoGARTh8mRA12JpTGi/SLJ8DNDhqtJZI+0FTpGFWD1mWNCY+E9i7K8j4yCD5ZgSG
 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 +yte5jl2xHXQyvkLK+EmCNKlVHZNuJn+YAlrdLLtU28SOTXKLAMF4CgVL1DECQDxu
 +Ah5dEh/vbqc6H/mALB94Z5RZjvSzkqqhfBaFq4ghCzvrV6qxHvYYvMIVKYvCL+zz
 +vBXKTqHy4NNlF270VBkCQEfaCb3iBHBh/z/DH0o12N0i50u1B7b7B80YBXs7+zPU
 +SjUCVp+OqpuTSV4jOybpwvp9ske8DVaqcsv9Gh4SEhM=
 +-----END RSA PRIVATE KEY-----
 +</code>
 +
 +
 +==== 失敗例: 暗号化が解けずにそのままEncryptedで出ちゃう ====
 +
 +SSLでApplication Dataが流れているところまでは分かりますが、肝心のデータが暗号化されたままになっています。
 +<code>
 +Encrypted Application Data: e127673d4e5fb04ce09ebaed1702a6dd8e2eaeeed12852f4..
 +</code>
 +
 +SSLでは通信を開始する前に鍵交換をするわけですが、一つ一つのリクエスト全てに対して鍵交換をするのはコスト的によろしくありません。
 +そのため、SSLキャッシュを導入し、いったん作った鍵はしばらく使い回すのが普通です。
 +セッションの一番はじめからキャプチャしていないと、暗号化された通信を復号することができません。
 +「ClientKeyExchange」があるかどうかがポイントです。
 +
 +
 +=== SSLのキャッシュを無効にする場合 ===
 +
 +<code>
 +SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
 +SSLSessionCacheTimeout  300
 +    ↓
 +SSLSessionCache  none
 +</code>
 +
 +
 +==== 失敗例:鍵交換のアルゴリズムが違う ====
 +
 +Client Key Exchange で Diffie-Hellman と出て、暗号解読できない。
 +
 +Firefoxは、DH鍵交換を優先して使うようです。
 +IEは、DH鍵交換を使わないようなので、RSAが選択されるよう。
 +
 +=== ssl.confに下記を設定すると、DH鍵交換を行わなくする事ができる ===
 +
 +<code>
 +SSLCipherSuite kRSA
 +</code>