SSLKEYLOGFILE
SSLKEYLOGFILEとは、TLS 通信時に使用した鍵情報のダンプ先となるファイルパスを指定するための環境変数。
Wireshark で HTTP/2 over TLS の通信をダンプする方法 · GitHub
firefoxの65でこの環境変数を設定したけど全く出力されなかった。 どうもNSS_ALLOW_SSLKEYLOGFILEの設定がdisableになったっぽい。
1519209 - Disable NSS_ALLOW_SSLKEYLOGFILE
なのでfirefoxの62をダウンロードしたら動いた。
Wiresharkで覗いたらTLS1.2(TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)だったので以下のフォーマット。
CLIENT_RANDOM <client hello random(32byte(=64byteの16進数))> <master secret(48byte(=96byteの16進数))>
client hello randomはSSL/TLSハンドシェイクのClientHelloで送信されるclient生成の乱数。
master secretはClientRandom、ServerRandom、PreMasterSecretによって生成されたセッションキー(共通鍵を生成する元データ)。 このセッションキーをサーバ/クライアント間で共有し、暗号化/復号に利用する。 クライアントがサーバに対して実際に送信するのはPreMasterSecret。PreMasterSecretと乱数情報からmaster secretが作られる。
TLS Security 5: Establishing a TLS Connection | Acunetix