WebサーバのSSL設定が不安な時は? Mozillaオススメの設定を使ってみよう

  • 9
    いいね
  • 0
    コメント

これはVAddy Adventカレンダー13日目の記事です。
VAddyは、継続的なWeb脆弱性検査が簡単に実現できるSaaSです。

海外のカンファレンスに行くと懇親会は立食パーティの場合が多いです。そこではビールが振舞われますが、ラグニタスIPAやストーンIPAなど人気のクラフトビールが入っているのが嬉しいですね。
国内でもiOSDCや、私たちが定期的に開催してるVAddyミートアップでは、懇親会でクラフトビールを出しています。完全に私の趣味です・・・

WebサーバのSSL設定

WebサーバのSSLの設定は主に、SSL証明書関係の設定、利用する暗号スイートやプロトコルの設定があります。
利用するプロトコル(SSLv3など)と暗号スイートですが古い設定のまま使い続けていると、脆弱なプロトコルになっているものまで使っている可能性があります。
そこで、暗号スイートとプロトコルの設定は見直しが必要なのですが、Webサーバのバージョンや、接続してくるブラウザのバージョンまで気にするとどの設定をするのが良いかわからなくなってきます。
そこで、Mozillaが便利なツール(サイト)を提供しています。

Mozilla SSL設定ツール

それがMozilla SSL Configuration Generatorです。

スクリーンショット 2016-12-13 10.13.36.png

Webサーバの種類(Apache, Nginxなど)とバージョンを指定するだけで、オススメの設定が出てきます。
そして、Modern, Intermediate, Oldというラジオボタンを選択すると、対応するブラウザのバージョンが出てきますので、ここで必要な要件の確認ができます。基本的にはModernが良いですが、Android5よりも下のバージョンを使っているユーザをサポートしないといけない場合などは、Intermediateを使うか検討が必要になります。

2016年12月の時点の対応ブラウザは表のようになってます。

Type 対応ブラウザ
Modern Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, Java 8
Intermediate Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7
OLD Windows XP IE6, Java 6

HSTS Enabledはデフォルトでチェックが入っています。HSTS(HTTP Strict Transport Security)は最初のHTTP接続以降は全てHTTPSに強制するため基本的には入れておいたほうが良いですが、HTTP接続も一部残す必要がある場合は無効にするか検討が必要です。

ModernとIntermediateの比較

Apache2.4.18をベースに、ModernとIntermediateの違いを見てみます。
(2016年12月時点のものです。内容は将来変わると思います)

利用するプロトコル

Type プロトコル
Modern TLSv1.2
Intermediate TLSv1.2, TLSv1.1, TLSv1

暗号スイート

Type 暗号スイート
Modern ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
Intermediate ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-SHA384
ECDHE-RSA-AES256-SHA384
ECDHE-ECDSA-AES128-SHA256
ECDHE-RSA-AES128-SHA256
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-SHA
ECDHE-RSA-AES128-SHA
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

色がついている箇所がModernに含まれない暗号スイートです。
つまり、Intermediateは、Modernの暗号スイートに加えて、色がついている暗号スイートとなります。

より詳細な比較

詳細は、Mozillaのドキュメントを参照ください。細かい比較まで載っています。
https://wiki.mozilla.org/Security/Server_Side_TLS