TLSバージョンの不耐性をテストする方法は?

TLSバージョンの不耐性をテストする方法は?

Mozilla Firefox 38 にアップデートした後、一部の HTTPS ウェブサイトで「セキュア接続に失敗しました」というメッセージが表示されます。

「security.tls.insecure_fallback_hosts」を使用してウェブサイトを除外リストに配置すると、TLSv1.2を介して接続できることがわかります。https://addons.mozilla.org/en-us/firefox/addon/calomel-ssl-validation/)

サーバーの問題は、互換性のないTLSバージョンが原因であると思われます。

質問:特定のWebサーバーに特定のポートのTLSバージョン不耐性があるかどうかをテストするスクリプトまたはソリューションはありますか?これらのサーバーはインターネット上で公に利用できません。

ベストアンサー1

たとえば、開始点としてテストにOpenSSLコマンドラインツールを使用できます。

$ openssl s_client -connect example.com:443 -verify 1 -tls1_2

どこ:

-tls1_2 - TLSv1.2のみを使用

ヘルプ(openssl s_client -hまたはman s_client)では、さまざまなオプションについて説明します。たとえば、パスワードのリストを指定できます。このオプションも制限されています/最新のクライアント/サーバーが明示的に設定できるため、接続に失敗する可能性があります。特に、古いサーバー/クライアントに接続するとき、または古いサーバー/クライアントから接続するとき。

他の結果を示す例:

$ echo | openssl s_client -verify 1  -connect www.cebitec.uni-bielefeld.de:443
[..]
verify return:1
[..]
SSL-Session:
  Protocol  : TLSv1
  Cipher    : AES128-SHA
  Session-ID: [non-empty]
[..]
---
DONE
$ echo $?
0

これは最小バージョンを適用せず、TLS 1.2の要件があります。

$ echo \
  | openssl s_client -verify 1 -tls1_2 -connect www.cebitec.uni-bielefeld.de:443
[..]
[..]:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:347:
--
no peer certificate available
[..]
SSL-Session:
  Protocol  : TLSv1.2
  Cipher    : 0000
  Session-ID: 
  Session-ID-ctx: 
  Master-Key:
[..]
---
$ echo $?
1

サーバーがTLS 1.2をサポートしていないことを意味します。

それはおそらくかなり古いバージョンのopensslを使っているからです。

おすすめ記事