LoginSignup
34

More than 5 years have passed since last update.

暗号化された Application Data を復号する

Last updated at Posted at 2015-03-17

暗号化された Application Data を Wireshark で復号するためには 2 つの方法があります。

一つはよく知られている Wireshark に秘密鍵を指定する方法、もう一つは Premaster Secret または Master Secret を指定する方法です。

後者の方法では、鍵交換に DH や ECDH を選択した場合でも復号可能です。

今回は、後者の方法で、WebRTC の data channel の中身を確認してみます。

SSLKEYLOGFILE 環境変数

SSLKEYLOGFILE 環境変数に Premaster Secret や Master Secret, Client Random を出力するファイルを指定した後に、下記のように Firefox を立ち上げます。

$ export SSLKEYLOGFILE=/tmp/sslkeylog.log
$ open /Applications/Firefox.app/

SSLKEYLOGFILE 環境変数で指定したファイルには、DTLS 通信時に Client Random と Master Secret が出力されます。

/tmp/sslkeylog.log
CLIENT_RANDOM dbc21d5193ef6e7b86f366b80a1c0f46558e17eaa8aef6e6b2b8a63e33992537 3d6bac539f19f05a4a6f86fcaa46964ae0079aaaf0e096cac116a453c3a379fa7fb60744a95ab6cc6855111d5dbadcf9

Wireshark の設定

秘密鍵を指定する場合と同様に、[Preferences] -> [Protocols] -> [DTLS] を選択します。

[(Pre)-Master-Secret log filename] に SSLKEYLOGFILE に設定したファイルを指定します。

スクリーンショット 2015-03-17 10.18.48.png

復号

WebRTC の data channel の場合は動的にポートが決まるため、dtls でフィルタをかけて、パケットの取得を開始します。

スクリーンショット 2015-03-16 22.53.21.png

Decrypted DTLS data に、送信したメッセージ(JSON)が復号されて表示されます。

参考

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
34