OS: Windows 10 pro version 1809
Wireshark 2.6.6 64-bit
Google Chrome 72.0.3626.96
或るサイトから取得されるファイルのURLを探ろうとしてWiresharkを立ち上げ通信を捕えても近頃はすっかりHTTPSでのやり取りである。中身を覗き見ようとしてもEncrypted Application Dataという具合に、暗号化されて出鱈目な文字が躍るだけであって具体的な内容は確認できない。そうするとリクエストヘッダであるとかレスポンスヘッダが全く定かでなくなるから一寸内容を知りたいときにこまる。
Google Chromeのショートカットアイコンを右クリックしてプロパティを開くと「リンク先」の欄にGoogle Chromeのexeファイルを示すパスが記載されている。その後にひとつ、半角スペースを付け加えてから --ssl-key-log-file
オプションと値を続けて記す。値は、暗号化にまつわる情報を書き出してゆくファイルのパスを指定するのである。デスクトップへssl.txtとして情報をダンプするならこういう具合でよかった。
--ssl-key-log-file=%userprofile%\desktop\ssl.txt
Google Chromeをすっかり終了させ改めて起動するとデスクトップへssl.txtがひとりでに作成され暗号化に使われている各種の情報が詳らかに記載されてゆく。悪いやつの手に落ちると大変危険であるから厳重な管理のもとに扱わねばならない。
今度はWiresharkを起動して「編集」の「設定」を開く。
「Protocols」の項目を展開するとおびただしい数のプロトコルがずらりと並ぶからそのうち「SSL」を見つけて「(Pre)-Master-Secret log filename」という設定項目に、先に作成された暗号化にかかわる情報が溢れているファイルのパスを指定する。
そうして改めてWiresharkで以ってHTTPSの通信内容をキャプチャして中身を確認するとこういった具合である。
目論見通り暗号化された情報が復号されて具体的な内容が確認できる。
ショートカットのプロパティを編集する方法であると、のちに復号の必要がなくなったというのに設定を消し忘れて痛い目を見る恐れもある。そこで一時的に利用する手立てとして、コマンドプロンプトを開いて SSLKEYLOGFILE
という環境変数を定めてからGoogle Chromeを起動してやればのちに禍根を残す蓋然性が低くなって良いとおもう。
>set sslkeylogfile=%userprofile%\desktop\ssl.txt >start "" "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"