Logjam に応じて、サービスを強化したことを証明したいと思います。 DHパラメータは少なくとも2048ビットで、自己生成する必要があることを知っています。しかし、HTTPSサイト以外で実際にこれを確認する方法を見つけることができません。 ( ここで私ができること )他のSSLで保護されたサービスでもこれを確認したいと思います。
openssl s_client -starttls smtp -crlf -connect localhost:25
しかし、その結果、
CONNECTED(00000003) depth=3 C = SE, O = ME, OU = Also ME, CN = Me again verify error:num=19:self signed certificate in certificate chain
verify return:0 Server certificate
-SNIPED SOME VALUES-
--- SSL handshake has read 6118 bytes and written 466 bytes
--- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression:
NONE Expansion: NONE SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 6EAA8A5B22E8C18E9D0E78A0B08447C8449E9B9543601BC53F57CB2059597754
Session-ID-ctx:
Master-Key: <MASTERKEY>
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1432213909
Timeout : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)
--- 250 DSN
DHパラメータをテストするにはどうすればよいですか?そして、私が危険にさらされているかどうかを知るために何に注意すべきですか?
煙のテストを行います:( OpenSSL blog 。(Archived here 。)から盗まれます))
openssl s_client -connect www.example.com:443 -cipher "EDH" | grep "Server Temp Key"
RSA-2048に匹敵する快適なセキュリティマージンを提供するには、キーは少なくとも2048ビットである必要があります。 1024ビットより短いキーの接続は、今日すでに問題になっている可能性があります。 (注:OpenSSL 1.0.2が必要です。以前のバージョンのクライアントでは、この情報は表示されません。)
(接続がすぐに失敗した場合、サーバーは一時的なDiffie-Hellman(OpenSSL-speakでは「EDH」、別の場所では「DHE」)をまったくサポートしておらず、Logjamから安全です。)
[...]
最後に、エクスポート暗号が無効になっていることを確認します。
$ openssl s_client -connect www.example.com:443 -cipher "EXP"
接続は失敗するはずです。
言い換えると:
-cipher "EDH"
オプションを接続文字列に追加します。そのため、このメソッドで実際にキー交換を詳細に分析できるので、新しい投稿で「StackzOfZtuff」の回答にコメントを付けることにしました。この回答は this からコピーされたもので、superuser.comに投稿されています(Thomas Porninに感謝します)。
-msgオプションを指定してopensslを使用すると、必要な情報が得られます
openssl s_client -connect mail.example.com:143 -starttls imap -cipher EDH -msg
これは、次のような完全なTLS ServerKeyExchangeメッセージを示しています。
<<< TLS 1.2 Handshake [length 030f], ServerKeyExchange 0c 00 03 0b 01 00 ff ff ff ff ff ff ff ff c9 0f da a2 21 68 c2 34 c4 c6 62 8b 80 dc 1c d1 29 02 4e 08 8a 67 cc 74 02 0b be a6 3b 13 9b 22 51 4a
thomas Porninによると、この方法で読むことができます(次のとおり逐語的にコピーしました)。
この方法を使用すると、サーバーがRFC 3526で事前定義されたDHグループを使用していないことを確認することもできます(Ubuntu 14.04を使用する私のApache2.4.7は、まだ使用しています http://httpd.Apache.org/ docs/2.4/mod/mod_ssl.html は、このバージョンではPEMエンコードされたSSLCertificateFileに追加されたDHパラメータを使用する必要があることを示しています。
これら二つは私に矛盾した答えを与えます。リンクされた研究者たちは、悪用されるように構成できる方法が存在する場合、サイトが脆弱であると報告しています。 2番目のリンクがより実用的なことを示しているように、「今は脆弱か?」情報。