SSL Server Testは便利だけど時間がかかる
各種サーバにおけるSSL/TLSの設定テストには、SSL Server Testがよく使われます。
各種ブラウザにおけるシミュレーション結果など、非常に詳しく出してくれる反面時間がかかります。
また、TCPの443番以外のテストには対応していないため、例えばメールサーバなどのテストを行うことができません。
そこでtestssl.sh
testssl.shはシェルスクリプトベースのSSL/TLSのテストツールで、OpenSSL 1.0以降がインストールされているシステムで利用が可能です。
現時点(2015/01/28)の正式版である2.2では、以下の機能をサポートしました。
- POODLE(CVE-2014-3566)に対するチェック
- HPKP(Public Key Pinning Extension for HTTP)への対応
- OCSP Staplingへの対応
- サービスの検出(HTTP, IMAP, POP, SMTP)
など
以下の脆弱性のテストをサポートしています。
CVE番号 | 名称 | 概要 |
---|---|---|
CVE-2014-0160 | Heartbleed | OpenSSL 1.0.1系列などに存在した有名な脆弱性 |
CVE-2014-0224 | CCS Injection | OpenSSLのChangeCipherSpecメッセージの処理に関する脆弱性 |
CVE-2014-3566 | POODLE | SSL3に存在する脆弱性 |
CVE-2011-3389 | BEAST | TLS1.0までにおけるCBCモードの暗号への攻撃 |
CVE-2013-3587 | BREACH | TLS上でやりとりされた圧縮データの特徴を使った攻撃 |
CVE-2012-4929 | CRIME | TLSのプロトコルレベル圧縮に対する攻撃 |
CVE-2009-3555 | - | TLSのrenegotiationに存在する脆弱性 |
(3/13追記) GitHubにある開発版ではFREAK(CVE-2015-0204)のテストに対応しています。
使い方
とりあえず使えるようにするには、testssl.shをダウンロードして実行権限を付与するだけでOKです。
$ wget https://testssl.sh/testssl.sh
$ chmod +x testssl.sh
testssl.shをPATHの通ってるところに置いたりとかしておくと便利です。
たとえば、example.com:443をチェックするには以下のコマンドを実行します。
$ ./testssl.sh example.com
(HTTPS:443は省略できます)
便利なオプション
あるサーバがサポートしている暗号スイートの一覧を表示するには、-e
オプションを使います。
$ ./testssl.sh -e example.com
脆弱性テストは単体でも実行可能で、例えばPOODLEのテストは-0
オプションです。
$ ./testssl.sh -0 example.com