パケットが暗号スイートで暗号化されているクライアント/サーバーのパッシブスニッフィングトラフィックダンプがあります
Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
Logjam攻撃により、DH秘密鍵を見つけることができました。
パケットを復号化するようにWiresharkを設定するにはどうすればよいですか?
この投稿 に記載されているように、WiresharkはTLS復号化を有効にするシークレットを提供するためのいくつかのオプションをサポートしています。この場合、ランダムなバイトをClient HelloメッセージからプリマスターシークレットにマップするPMS_CLIENT_RANDOM
キーの使用をお勧めします(両方が16進エンコードされています)。
DH鍵交換の場合、プリマスターシークレットは共有DHシークレットです。プライベートDH値と、ServerKeyExchangeメッセージからのパブリックパラメータと値( RFC 5246、page 51 を参照)を使用して、共有シークレットを計算できます。 (これは、有限フィールドを使用する一時的なDHを想定しています。ECDHEについては、代わりに RFC 4492、セクション5.4を参照してください。 )
次に、共有シークレットを計算した後、それを適切にエンコードする必要があります( RFC 5246、セクション8.1.2。 を参照):
従来のDiffie-Hellman計算が実行されます。ネゴシエートされたキー(Z)はpre_master_secretとして使用され、上記のようにmaster_secretに変換されます。すべてゼロのビットを含むZの先頭バイトは、pre_master_secretとして使用される前に取り除かれます。
秘密を見つけたとすると、次のようなテキストファイルを作成できます。
PMS_CLIENT_RANDOM 9c39b93ced5c48db094a502f7ed4ef6b77a1ccb751964c04cac8c7e75837ddc8 2b1f6108824ef0c7e38443dda437c43177d8a1ac73221b6515c9df7d854bc503
次に、 "(Pre)master secret log filename" SSLプロトコル設定を使用して、通常どおりWiresharkを構成します。失敗した場合は、SSLプロトコル設定でデバッグオプションを設定し、それを読んでさらにヒントを得ることができます。