SSLの設定を見直しました

どうも、imo@入江です。
かなりお久しぶりです。
色々やってはいましたが、書けず終いでした…

ということで表題の通りですが、サイトのSSL設定を全体的に見直しました。
具体的には接続を受けるプロトコルをTLS 1.2だけにして、cipherの設定も単純化しています。

TLSに関して、今まで古いOSからのアクセスも考慮してTLS1.1までは許可していましたが、ふと
「TLS1.1までサポートのブラウザとTLS1.0までのとではほぼ変わりない」
と気づきました。
TLS1.1までは脆弱性もあるので、この機会にTLS1.2のみ有効に変更してあります。
apacheでは
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
ですね。
Windows XPやVistaのIEサポートを切った格好ですが、さすがにそろそろいいでしょう。

次はcipherについて。
今まではSSLCipherSuiteに EECDH+AESGCM+AES128:EECDH+AES128:… といったように直指定などしていたものの、見直してみると穴だらけでした。
実際Qualys SSL Labsで見ても指摘点が多かったです。
それを今後のメンテナンス性も考えて下記に変更しています。
SSLCipherSuite AESGCM:HIGH:!ADH:!aNULL:!eNULL:!EXP:!DES:!3DES:!MD5:!DSS:!RC4:!PSK:!SRP:!KRB5:!DH:!kRSA
要はOpenSSLのHIGH設定をベースにして無効方式を列記しただけですね。
RSAでの鍵交換はForward Secrecyがサポートされないので !kRSA で無効化しています。
この方法だと、今後HIGHに推奨されるものが増えたときにも、コンフィグを触らなくていい利点があります。
(非推奨を追加する際は修正が必要ですが)
先のSSL Labsで見ると使える方式が6つだけになってしまったのでちょっとやりすぎかとは思いましたが、ほとんどの環境が
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
あたりを使ってくれているのでひとまずこれで様子を見ようと思います。
もし問題が発生しましたら都度対処しますので教えてください。

サーバー負荷を考えると将来的にはECDHE-ECDSAも使ってみたいのですが、これは後からゆっくり考えることにします。

そんな感じの。
CentOS8への移行に向けて、全体的にコンフィグを見直していきます。
変更点は都度お知らせできればいいなと。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です