ユーザ用ツール

サイト用ツール


サイドバー



最近の更新



Tag Cloud

タグ数量
9
10
1
3
1
2
17
7
1
1
4
13
4
1
2
314
1
9
2
7
21
5
1
31
3
3
1
6
1
1
46
1
3
3
1
1
1
1
1
1
33
46
7
9
10
8
10
3
21
2
9
2
2
6
9
1
1
6
12
4
3
3
2
1
8
2
4
1
6
30
2
12
5
3
1
1
2
3
2
1
3
4
3
3
4
2
2
1
1
2
1
2
1
2
1
27
2
1
3
2
2
1
1
2
3
17
5
9
1
1
2
17
2
6
1
2
12
1
3
1
1
4
11
1
6
4
2
7
1
3
3
13
1
4
1
1
10
3
1
17
3
1
5
1
2
1
1
2
9
2
2
3
2
1
3
1
3
1
2
2
2
1
2
6
1
4
3
5
1
3
1
3
3
2
1
1
30
1
3
3
1
1
1
5
5
1
36
2
4
2
1
2
2
3
1
1
1
4
1
2
1
3
1
1
1
2
5
2
5
2
1
1
1
5
3
2
4
6
1
2
2
27
1
1
3
4
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
20
7
1
6
1
1
3
1
2
2
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
5
2
1
1
2
2
2
1
1
2
1
1
12
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
05_network:05_tcpdump_wireshark

05 tcpdump Wireshark

tcpdump が出力したファイルをWiresharkで読み込む事ができます。

Wiresharkダウンロード

tcpdumpでWiresharkで読めるように出力

# tcpdump -nne -i eth0  -X  -s 0 -w tcpdump.log

出力されたファイルを、Wiresharkで読み込む。

WiresharkでSSLを復号

Wiresharkでは、秘密鍵を設定することでSSL通信を復号することが可能です。

ここがすごく詳しく説明してくれてます。

  1. メニューの[Edit]→[Preferences]から、Preferencesウィンドウの[Protocols]→[SSL]
  2. [RSA keys list]の[Edit]をクリックします。
  3. [SSL Decrypt]のProfile設定画面となるので、[New]をクリックします。

以下のように入力します。

項目入力値
IP address対象のIPアドレス
Port対象のポート番号。普通は443でしょう
Protocolここはhttpsではなくhttpと記述します
Key File秘密鍵ファイル。クリックするとファイル選択ダイアログが開きます
Password鍵ファイルのパスフレーズ。パスを付けていないならば、空のままにしておく

デバックログでエラー

ssl_load_key: can't import pem data: Base64 unexpected header error.

このエラーの場合は、鍵が間違っている。
鍵はPem形式である必要があります。

下記のような(一部XXXにしてあります。)

-----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-----

失敗例: 暗号化が解けずにそのままEncryptedで出ちゃう

SSLでApplication Dataが流れているところまでは分かりますが、肝心のデータが暗号化されたままになっています。

Encrypted Application Data: e127673d4e5fb04ce09ebaed1702a6dd8e2eaeeed12852f4..

SSLでは通信を開始する前に鍵交換をするわけですが、一つ一つのリクエスト全てに対して鍵交換をするのはコスト的によろしくありません。
そのため、SSLキャッシュを導入し、いったん作った鍵はしばらく使い回すのが普通です。
セッションの一番はじめからキャプチャしていないと、暗号化された通信を復号することができません。
「ClientKeyExchange」があるかどうかがポイントです。

SSLのキャッシュを無効にする場合

SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
    ↓
SSLSessionCache  none

失敗例:鍵交換のアルゴリズムが違う

Client Key Exchange で Diffie-Hellman と出て、暗号解読できない。

Firefoxは、DH鍵交換を優先して使うようです。
IEは、DH鍵交換を使わないようなので、RSAが選択されるよう。

ssl.confに下記を設定すると、DH鍵交換を行わなくする事ができる

SSLCipherSuite kRSA
05_network/05_tcpdump_wireshark.txt · 最終更新: 2014/06/24 13:37 by matsui

Yesterday:1556 Today:1536 Total:28695