はてなブックマーク新着レポート

WiresharkでHTTPS通信を復号する方法|TLS1.3対応・パケット解析

元記事:https://eeengineer.com/description-by-wireshark/(eeengineer.com)
はてブ:2026-08-30 のブックマーク(ユーザー: ao41 / タグ: あとで読む)
記事公開:2026-08-30 08:34 (UTC)
はてブ数:211 users

記事概要

WiresharkでHTTPS通信をキャプチャしても「Application Data」と表示されるだけで、HTTPリクエスト/レスポンスの中身は見えない——これはTLSによる暗号化のためです。本記事では、Google ChromeのSSLKEYLOGFILEを使ってTLSの鍵情報を取得し、TLS 1.3 のHTTPS通信をWiresharkで復号する手順を実際のパケットキャプチャ画面付きで解説しています。

なぜTLS 1.3ではServerの秘密鍵だけでは復号できないのか

TLS 1.3では通常、Certificate認証を伴うハンドシェイクで (EC)DHEによるEphemeral(使い捨て)な鍵交換が使われます。

  1. ClientとServerは鍵交換によって共有Secretを生成
  2. そこからHandshake Traffic SecretやApplication Traffic Secretなどを導出
  3. 導出された鍵で実際の通信を暗号化・復号
前方秘匿性(Forward Secrecy)
この仕組みにより、後からServerのCertificate Private Keyが漏洩しても、その鍵だけでは過去にキャプチャしたTLS通信を復号できません。そのためWiresharkでTLS 1.3を解析するには、Client側のTLS実装からTraffic Secretなどの鍵情報を取得するのが有効な手段になります。

手順①:SSLKEYLOGFILEで鍵情報を取得する

Google Chromeなど一部のアプリケーションは、環境変数SSLKEYLOGFILEを設定して起動すると、TLS復号に使える鍵情報をファイルへ出力できます。

  1. PowerShellを起動し、環境変数SSLKEYLOGFILEを設定(例: デスクトップ上の sslkeys.log
  2. 同じPowerShellからGoogle Chromeを起動(重要:既にChromeが起動していると既存プロセスが再利用されて鍵が出力されないことがある。完全終了してから)
  3. Wiresharkでパケットキャプチャを開始し、ChromeからWebサイトにアクセス
  4. TLS通信が発生すると指定パスに sslkeys.log が出力される

sslkeys.log に記録される主な鍵情報

エントリ役割
CLIENT_HANDSHAKE_TRAFFIC_SECRETClient→Server方向のTLS Handshakeメッセージの暗号鍵導出用Secret
SERVER_HANDSHAKE_TRAFFIC_SECRETServer→Client方向のTLS Handshakeメッセージの暗号鍵導出用Secret
CLIENT_TRAFFIC_SECRET_0Handshake完了後のClient→Server方向Application Data(HTTPリクエスト等)のTraffic Key/IV導出用
SERVER_TRAFFIC_SECRET_0Handshake完了後のServer→Client方向Application Data(HTTPレスポンス等)のTraffic Key/IV導出用
EXPORTER_SECRETTLS Exporterでアプリ向け追加Keying Materialを導出するためのSecret

手順②:Wiresharkにsslkeys.logを設定する

  1. Wiresharkメニュー「Edit」→「Preferences」
  2. 「Protocols」を展開し「TLS」を選択
  3. (Pre)-Master-Secret log filename」に取得した sslkeys.log を指定(Browseで選択)
  4. 「Apply」を押して完了
設定項目名は「(Pre)-Master-Secret」となっていますが、TLS 1.3の場合もSSLKEYLOGFILEに記録されたHandshake/Application Traffic Secretなどの情報はこの同じ項目から読み込ませます。

手順③:復号結果の確認

復号できない場合の確認ポイント

まとめ

暗号化されたHTTPS通信も、検証環境などでClient側から適切な鍵情報を取得できれば、WiresharkでHTTPリクエスト/レスポンスまで詳細に解析できます。HTTPSの接続問題やアプリ間通信の調査に役立つ手法です。

⚠ セキュリティ上の注意
Key Log FileにはTLS通信の復号に利用できる重要な情報が含まれます。鍵情報を公開すると通信内容の復号に悪用される可能性があるため、商用環境での利用やファイルの保管・共有には十分注意してください。