QUIC通信のパケットキャプチャと復号 (2)

2026/03/24

R.Suzuki

Media over QUIC (MoQ)

QUIC通信のパケットキャプチャ分析の初歩として,MS EdgeやFirefoxを用いる場合の復号方法をご紹介します。


はじめに

こんにちは。鈴木です。

リアルタイムコミュニケーション(RTC)仕様の標準化と,キャリア網機能を提供するAPIの標準化を担当し,技術調査・仕様提案を行っています。

本記事では,前回の記事でご紹介したQUIC通信のパケットキャプチャの復号について,MS EdgeやFirefoxを使って行う際のポイントをご紹介します。

実験条件

今回も公開されているHTTP/3対応のサーバに対してWebブラウザからアクセスする通信のパケットキャプチャを行いました。

  • OS
    • Windows11 25H2 (26200.7623)
  • Web Browser
    • MS Edge (145.0.3800.82)
    • Mozilla Firefox (148.0)
  • 接続先Website
    • google.com (Google)

パケットキャプチャ

パケットキャプチャツール

前回の記事と同様にWindows上で端末外部との通信のパケットキャプチャを行うためWiresharkを利用しました。

シークレット情報の取得

MS Edge,Firefoxは共にNSS Key Log Format1で,TLSハンドシェイク中に生成されるシークレット情報を書き出す機能に対応しています。QUICに統合されたTLS 1.3の鍵交換にも対応しており,QUIC通信を復号するためのシークレット情報をテキストファイルとして書き出すことができます。

Windows上のMS Edgeでシークレット情報を出力するには,Chromeと同様に下記のようにssl-key-log-fileオプションでシークレット情報のテキストファイルを書き出すファイルパスを指定します。<OUTPUTDIR>は書き込み権限があればどこでも問題ありませんが,マルチバイト文字を含まないパスを指定するのが確実です。

また既存プロファイルに影響されずに実験するため,--user-data-dirでプロファイルパスを指定して環境を分離します。(存在しないパスを指定すると新規プロファイルが作成されます。)MS Edge含むChromium系のブラウザでは,同じユーザプロファイルで起動済のプロセスがあると,コマンドラインで起動引数をつけてWebブラウザを起動しても設定が反映されません。

専用のプロファイルを利用することで確実にシークレット情報の書き出しを行うことができます。

※以下コード例はPowerShellで実行

& "${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe" `
    --user-data-dir="$env:TEMP\edge_quic_session" `
    --ssl-key-log-file="<OUTPUTDIR>\sslkeys.txt"

Firefoxの場合は--ssl-key-log-fileオプションがないため,環境変数で指定します。-profileはChromium系の--user-data-dirと異なり存在しないパスを指定するとエラーとなるため事前作成が必要となります。

$env:SSLKEYLOGFILE = "<OUTPUTDIR>\sslkeys.txt"
& "${env:ProgramFiles}\Mozilla Firefox\firefox.exe" `
    -profile "$env:TEMP\firefox_quic_session" `
    -no-remote

上記で起動されたMS Edge/Firefoxは,QUIC通信で利用したシークレット情報を<OUTPUTDIR>\sslkeys.txtに書き込みます。

キャプチャされたパケットの復号

パケットキャプチャの復号には前回同様Wiresharkを利用します。 Wiresharkの 編集>設定>Protocols>TLSに以下のようにシークレット情報のテキストファイルのパスを指定することで,対応するシークレットをルックアップし自動でキャプチャされたパケットの復号が行われます。

MS Edgeの場合:

MS Edgeのパケットキャプチャ
MS Edgeのパケットキャプチャ

Firefoxの場合:

Firefoxのパケットキャプチャ
Firefoxのパケットキャプチャ

画像中では,復号されたHTTP/3 SETTINGSフレームが表示されていますが,Webブラウザによって設定されるパラメータが異なることが確認できます。

まとめ

今回は前回の記事でご紹介したQUIC通信のパケットキャプチャの復号方法について,Chrome以外のブラウザについてご紹介しました。またHTTP/3のSETTINGSフレームのみを取り出してもWebブラウザごとに差分があることを確認できました。

次回以降はQUIC・HTTP/3通信の中身や,QUIC上で動作するメディア通信プロトコル等をご紹介いたします。


チーム紹介

本記事は,NTTネットワークサービスシステム研究所 ネットワーク基盤技術研究プロジェクト ノード処理基盤研究グループの RTC (Real-Time Commmunication) チームが執筆しています。 当チームでは,商用サービス開発とは独立した立場から,将来のRTCサービスを支える基盤技術の創出を目的としたコア研究として,RTC関連技術の研究開発および3GPPやCAMARA等における標準化活動に取り組んでいます。

本記事に関するお問い合わせは,下記アドレスまでご連絡ください。

お問い合わせ先メールアドレス