SSL証明書をインストールしたサーバの安全性を確認するサービスの一つである「Qualys SSLTest」での診断についてご説明いたします。
今回、あるドメイン(xxxxxx.jp)で証明書を設置したサイトが安全であるかテストを行ないました。
SSL Server Test (QUALYS SSL LABS)
結果、最低ランクの「F」と診断されました。
「A+」を取得する為には診断結果のサマリーに表示されている警告が以下の通りです。
- ・This server is vulnerable to MITM attacks because it supports insecure renegotiation. Grade set to F.
- MITM攻撃の脆弱性
- ・This server supports weak Diffie-Hellman (DH) key exchange parameters. Grade capped to B.
- 暗号化強度の弱い暗号化方式が有効
- ・This server does not mitigate the CRIME attack. Grade capped to C.
- CRIME攻撃の脆弱性
- ・The server supports only older protocols, but not the current best TLS 1.2. Grade capped to C.
- 古い通信プロトコルを使用している
- ・There is no support for secure renegotiation.
- 再ネゴシエーションが安全ではありません。
- ・The server does not support Forwrd Secrecy with the reference browsers.
- 参照しているブラウザでは「Forwrd Secrecy」をサポートしていません。
MITM攻撃の脆弱性について
MITM攻撃では、サーバとクライアントの両方がOpenSSLを使っている場合に、その間にいる攻撃者が SSL/TLSハンドシェーク中に特別なメッセージを割り込ませることで、攻撃者にも計算できる鍵を両者の暗号化通信に使わせることができます。 攻撃者はその鍵を使って暗号化通信を復号でき、通信内容の盗聴、改ざんが可能になります。
この攻撃を受けた状況でも、サーバとクライアントでは通常どおりの暗号化通信として認識され、異常に気づくことができません。
攻撃者が通信経路上にいなければ成立しないので、その可能性はある程度限定的だと言えますが、無線 LAN 環境や PC に感染したマルウェアなど、攻撃者が通信経路上に割り込める状況は次第に増えてきていますので、本脆弱性に対しても適切に対処することが必要です。
対応方法
OpenSSL のアップデート
暗号化強度の弱い暗号化方式が有効
SSLの設定(SSLCipherSuite)により古い暗号化強度が有効になっている
対策
SSLの設定ファイル「ssl.conf(Linux mod_ssl)」のSSLCipherSuiteの値を変更
変更前
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
変更後
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
CRIME攻撃の脆弱性
対応方法
OpenSSL のアップデート
古い通信プロトコルを使用している
対応方法
SSLの設定(SSLProtocol)でTLS1.2以外を以下のように無効にする。
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
再ネゴシエーションが安全ではありません。
対応方法
OpenSSL のアップデート
参照しているブラウザでは「Forwrd Secrecy」をサポートしていません。
SSLの設定(SSLCipherSuite)の値を変更する。
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
対策後
上記の対策を施し再度、SSL Server Testをを通した結果、無事に「A+」を取得する事ができました。