HTTPSセキュリティ強度を上げるApache httpdの設定

皆さん こんにちは @infocircus です。
SSLの脆弱性対応や緊急度の高いセキュリティ対応が多かった2014年ですが、2014年度の年度末と言うこともあり設定を再確認しています。

まずは、Linuxディストリビューションの標準設定で SSLを有効にした場合のSSL強度を測定してみました。
設定した項目は、SSLの秘密鍵と証明書・中間証明書だけの状態です。
新しいディストリビューションを使用しましたので、最低限 SSLv2 や SSLv3は無効になっています。

SSLのチェックは、GlobalSignの「SSLチェックツール」を使用します。
URL : https://sslcheck.globalsign.com/ja/sslcheck

mod-ssl-config-01

診断の結果は、グレードC。暗号強度などは スコア0でひどい状態です。
見つかった指摘事項は、次のような項目です。

  • セッションはBEAST攻撃を受けやすいかもしれません
  • サーバの設定に弱いcipher suitesを含んでいます
  • サーバはHTTP Strict-Transport-Securityが有効になっていません

このような設定で運用すると、SSLの脆弱性を攻撃される可能性が非常に高くなります。
ディストリビューション標準の設定では、まともな運用は難しいと言うことが確認できました。

これらを直した設定が、以下の設定です。
※) 本設定は Apache 2.2系 2015/03/17時点で有効な設定です。

SSLProtocol -ALL -SSLv2 -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:!RC4:HIGH:!EXP:!IDEA:!SEED:!EDH:!aNULL:!eNULL
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=315360000; includeSubDomains"

再度「SSLチェックツール」で検査したところ、グレードA-まで改善。
BEAST攻撃の対策が残っていますが、実運用上は問題ない設定になりました。

mod-ssl-config-02

2014年は SSLなどで非常に危険な脆弱性が発見されました。HTTPS/SSLの設定が正しいか、HTTPS通信に弱い部分が無いかを見直してみてはいかがでしょうか。