WiresharkのブラウザーからTLSトラフィックを簡単に解読する方法

あなたの多くは、ネットワークの理解、問題の診断、一般的に多くのことを行う方法を知っているトラフィックアナライザーであるWiresharkに精通しています。

画像

Wiresharkの動作に関する問題の1つは、TLSなどの暗号化されたトラフィックを簡単に分析できないことです。 以前は、Wiresharkの秘密キーがあればそれを指定し、その場でトラフィックを復号化できましたが、これはRSAが排他的に使用されている場合にのみ機能しました。 この機能は、人々がPerfect Forward Secrecyを促進し始め、データを復号化するために使用されるセッションキーを取得するのにプライベートキーが十分ではなかったという事実のために壊れました。 2番目の問題は、秘密キーが配置されているクライアント、サーバー、またはHSM(ハードウェアセキュリティモジュール)から秘密キーをアンロードしない、またはアンロードできないことです。 このため、man-in-the-middle( sslstripなど )を介してトラフィックを復号化するという疑わしいトリックに頼らなければなりませんでした。

急いでセッションキーを記録します。


さて、友人、今日は簡単な方法についてお話します! FirefoxおよびChrome開発バージョンは、トラフィックの暗号化に使用される対称セッションキーのファイルへのロギングをサポートしていることが判明しました。 Wiresharkでこのファイルを指定でき、(出来上がり!)トラフィックが復号化されました。 このビジネスをセットアップしましょう。

ブラウザを設定します


環境変数を設定する必要があります。


コンピューターのプロパティを開き、「システムの詳細設定」、「環境変数...」の順に開きます

画像

新しいユーザー変数「SSLKEYLOGFILE」を追加し、保存するファイルへのパスを指定します。

LinuxおよびMac OS X
$ export SSLKEYLOGFILE=~/path/to/sslkeylog.log 

Linuxの~/.bashrcまたはOS Xの~/.MacOSX/environmentにこの行を追加して、切り替え後に毎回インストールする必要がないようにすることもできます。

次にDevチャネルからFirefoxまたはChromeを起動すると、TLSキーがこのファイルに記録されます。
UPD :OS Xで何も機能しない場合は、(元の記事の)コメントをご覧ください。 AppleはOS Xの新しいバージョンで環境変数を変更したようです。FirefoxとWiresharkを同じターミナルウィンドウから実行してみてください。

 # export SSLKEYLOGFILE=/Users/username/sslkeylogs/output.log # open -a firefox # wireshark 

このコメントをしてくれたTomiに感謝します。

非表示のテキスト
MAC OS Xでの方法はわかりませんが、Linuxでは著者が説明した方法は機能しません。 環境変数は常に同じセッション(tty、pty)内で機能するため、Firefoxは同じウィンドウから起動する必要があります。
〜ValdikSS

Wiresharkをカスタマイズする


Wiresharkバージョン1.6以降が必要です。 Wiresharkの設定を開きます。
画像

「プロトコル」セクションを展開します。

画像

ファイルへのパスを指定します。

画像

結果


TLSパケットを検査するときに通常表示されるのは次のとおりです。

画像

そして、「復号化されたSSLデータ」タブに切り替えると、次のようになります。 これで、リクエストテキストが表示されます。 勝利!

画像

おわりに


TLSをインターセプトするのがはるかに簡単になることを願っています。 この方法の注目すべき機能の1つは、TLSトラフィックを生成するコンピューターにWiresharkをインストールする必要がないことです。したがって、クライアントに不要なプログラムをインストールする必要がありません。トラフィックダンプで使用します。

読んでくれてありがとう!

Source: https://habr.com/ru/post/J253521/


All Articles