見出し | Network
Wireshark
Ref.
- Wireshark
- https://gist.github.com/summerwind/a482dd1f8e9887d26199
Wiresharkのフィルタ
Wiresharkのフィルタには以下の2つがある。
- キャプチャフィルタ・・・基本的に
tcpdumpと同じ構文 - 表示フィルタ・・・キャプチャフィルタとは全く異なる構文(構文がことなることに注意)
キャプチャフィルタ
※ 実際のキャプチャ設定画面のスクリーンショットは省略(例:
en0tcp port 443のように指定)
表示フィルタ
※ 実際の表示フィルタ画面のスクリーンショットは省略(例:
tcp.port == 80のように指定)
TLSを見る
TLS通信は暗号化されているのでデータを見ることはできない。
以下を参考に、SSLKEYLOGFILEで取得したセッション鍵をWiresharkに読み込ませることでTLSを復号して中身(HTTP等)を表示する。
ただしHTTP/2で配信されているコンテンツの場合、Wiresharkのバージョンによってはストリームの再構成・デコード機能が制限されており、復号はできてもHTTPリクエスト/レスポンスとして正しく表示されないことがある点に注意。
ref.
- https://gist.github.com/summerwind/a482dd1f8e9887d26199
- https://firefox-source-docs.mozilla.org/security/nss/legacy/key_log_format/index.html
- tls_key.logファイルを作成
- Wiresharkの(Pre)-Master-Secret log filenameを設定
- Google Chromeを起動
上記の順番は重要。
tls_key.logファイルを作成
SSLKEYLOGFILEに指定するファイルを作成。
ファイル名・パスは任意(例はtls_key.log)。
Wiresharkの(Pre)-Master-Secret log filenameを設定
Wireshark > Preferences > TLS > (Pre)-Master-Secret log filename にSSLKEYLOGFILEで指定したファイルを設定する。
環境変数SSLKEYLOGFILEを指定してGoogle Chromeを起動
以下のようにChromeを起動することで共通鍵をtls_key.logに出力する。
$ env SSLKEYLOGFILE=/path/to/tls_key.log "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
SSLKEYLOGFILEは絶対パスで指定しないとうまく動作しない。
参考
- https://www.youtube.com/watch?v=RvlnchPUiI4&t=504s
- https://www.youtube.com/watch?v=A69du3TBMF8
- https://www.youtube.com/watch?v=OkXOZse81tU&t=496s