LoginSignup
22
25

More than 3 years have passed since last update.

Wireshark だけで TLS を復号できたので、もう他に何もいらない(かもしれない)

Last updated at Posted at 2020-05-24

はじめに

tcpdump や Proxy を使わずに Wireshark だけで TLS 通信の復号に成功しました。たくさんの人が同じようなことをやっていますが、自分用メモとして残しておきます。OS は Windows10 、ブラウザは Chrome です。

設定手順

TLS で暗号化する際に生成した鍵情報をファイルに出力する

Windowsキー + R で「ファイル名を指定して実行」画面を出し、「control」と入力して「OK」を押します。
image.png

「システムとセキュリティ」をクリックします。
image.png

「システム」をクリックします。
image.png

「システムの詳細設定」をクリックします。
image.png

「詳細設定」タブ → 「環境変数」をクリックします。
image.png

「システム環境変数」の「新規」をクリックします。
image.png

以下のように入力します。
変数名 SSLKEYLOGFILE
変数値 C:\temp\tls.keys

変数値は存在するパスなら何でもいいです。
image.png

「OK」をクリックし、Windows を再起動します。

Wireshark 設定

Chrome を起動し、c:\temp\tls.keys のファイルが作成されていることを確認します。
image.png

wireshark を起動し、「編集」→「設定」をクリックします。
image.png

「Protocols」の「>」をクリックし、展開します。
image.png

「TLS」までスクロールし、「(Pre)-Master-Secret log filename」に「c:temp\tls.keys」と入力し、「OK」をクリックします。
image.png

パケットキャプチャする

HTTPS のページなら何でもいいのですが、Qiita のマイページをサンプルとします。

Wireshark を起動し、パケットキャプチャするポートを指定します。わたしの場合は「イーサネット」です。
image.png

いきなりキャプチャが始まりますが、まだ心の準備ができていないので一旦止めます。
image.png

Qiita のマイページを開きます。
image.png

サメの背びれボタンを押すとキャプチャが始まります。先程少しだけキャプチャしたパケットを保存するかを聞かれるので、「Continue without Saving」をクリックします。
image.png
image.png

キャプチャが始まるので、ブラウザをリロードします。リロードが終わったらキャプチャを止めてください。

パケットを探す

「編集」→「パケットの検索」をクリックします。
image.png

左側のプルダウンで「パケットの詳細」を選択、真ん中のプルダウンで「文字列」を選択。右側のフォームに検索したい文字列を入力します。今回の場合「quora」という文字が特徴的なので、これを持つパケットを検索します。
image.png

見つかりました。ペイロードが復号されているので、他の文字も丸見えです。
image.png

まとめ

これらの操作により、ブラウザがどのような通信をしているかが簡単に見られるようになりました。
IP を絞り込むことで、拡張機能の通信なども調べられそうです。
Wireshark のフィルタや機能を改めて勉強して、更に効率よく調査ができるようになりたいと思います。

おまけ

パケット検索の際に表示される左側のプルダウンの項目は、それぞれ以下のペインを示しています。
ペイロードだけではなく、HTTP ステータスや DNS クエリでも検索できるので参考にしてください。
image.png

22
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
25