TLSは、インターネットの通信内容を暗号化技術のことで、現在はTLS 1.2が広く使われています。
徐々に最新版のTLS 1.3に対応したブラウザーやサーバーが増えてきました。
- TLS 1.3に対応しているブラウザやサーバー
- TLS 1.0とTLS 1.1を無効化するサーバー設定
- apacheでTLS 1.0とTLS 1.1を無効化する
- nginxでTLS 1.0とTLS 1.1を無効化する
- tomcatでTLS 1.0とTLS 1.1を無効化する
- Windows ServerでTLS 1.0とTLS 1.1を無効化する
- dovecotでTLS 1.0とTLS 1.1を無効化する
- eximでTLS 1.0とTLS 1.1を無効化する
- postfixでTLS 1.0とTLS 1.1を無効化する
- mysqlでTLS 1.0とTLS 1.1を無効化する
- postgresqlでTLS 1.0とTLS 1.1を無効化する
- mongodbでTLS 1.0とTLS 1.1を無効化する
- proftpdでTLS 1.0とTLS 1.1を無効化する
- vsftpdでTLS 1.0とTLS 1.1を無効化する
TLS 1.3に対応しているブラウザやサーバー
TLS 1.3は、TLS 1.2に比べてセキュリティ面の強化はもちろん速度向上が期待できます。
大手ブラウザーでは、ChromeやFirefoxの最新版がすでにTLS 1.3に対応しています。
IE 11やEdgeはTLS 1.3のテスト段階です。設定メニュー上に存在していて選べる場合があります。
Safariはまだ対応していませんがアップデートで入ったとき自動的にTLS 1.3に対応すると思われます。
サーバー側は、OpenSSLがTLS 1.3に対応済です。
古い仕様であるTLS 1.0やTLS 1.1は、2020年3月にはFirefoxやSafariといったブラウザ側で接続が無効化される予定になっています。
インターネット上にいまだにTLS 1.0鯖が残っています。サーバーがTLS 1.2に対応出来ていない場合、早急に対処する必要があります。
サーバー管理者は、TLS 1.2やTLS 1.3を有効にするようアップデートし、利用者にTLS 1.0とTLS 1.1の接続を無効化する旨を一定期間周知させたうえで無効化するようにします。
告知なく急にまったくアクセスできなくなると、なぜアクセスできないのか利用者からは知ることが出来ません。
サーバーサイドのTLSに関する記述は、設定ファイルの中に記述項目があることが多いので、TLS 1.2やTLS 1.3を有効にするように設定ファイルを書き換えます。
TLS 1.0とTLS 1.1を無効化するサーバー設定
セキュリティー上の問題があるTLS 1.0とTLS 1.1を無効化するサーバ側の設定を書きます。
ちゃんと設定で明示的に無効化しておかないとTLS 1.0やTLS 1.1で接続することが出来てしまって、サーバや利用者を危険にさらしたり情報を流出させてしまう恐れがあります。
apacheでTLS 1.0とTLS 1.1を無効化する
apacheサーバの場合、旧式を無効化する設定を書きます。
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
oraclehttpも同じです。
nginxでTLS 1.0とTLS 1.1を無効化する
nginxの場合は有効にしたい暗号化プロトコルだけを設定に記述します。
ssl_protocols TLSv1.2 TLSv1.3;
tomcatでTLS 1.0とTLS 1.1を無効化する
tomcatは有効にしたい暗号化プロトコルだけをSSLHostConfigのなかに記述します。
<SSLHostConfig …(略) protocols="TLSv1.2 TLSv1.3">
Windows ServerでTLS 1.0とTLS 1.1を無効化する
Windows Serverのバージョンによって、自動で有効、自動で無効になっている暗号化プロトコルが異なっています。
以下のMicrosoftサポートが参考になります。
インターネット インフォメーション サービスで PCT 1.0、SSL 2.0、SSL 3.0、または TLS 1.0 を無効にする方法
Schannel.dll で特定の暗号アルゴリズムおよびプロトコルの使用を制限する方法
dovecotでTLS 1.0とTLS 1.1を無効化する
dovecotは暗号化プロトコルの下限を記述します。
ssl_min_protocol = TLSv1.2
メールサーバとウェブサーバーの違う点として、メールサーバはメールサーバ同士が相互に通信してメールを送受信する仕組みです。
自前のサーバでTLS 1.0とTLS 1.1を無効化したときに、もし相手側が旧TLS 1.0とTLS 1.1にしか対応していないままだと、そのメールサーバと通信が出来なくなる(メールの送受信が上手く出来ない)ということがあります。
中小零細企業の半ば放置されたようなメールサーバの場合、アップデートを怠っている可能性があり、そうなるかもしれません。
だからといって、それらとの通信のためだけに脆弱性を残すことは危険です。TLS 1.0とTLS 1.1は無効化してしまうのが正解です。
eximでTLS 1.0とTLS 1.1を無効化する
eximでは禁止したい暗号化プロトコルを設定に列挙します。
openssl_options = +no_sslv2 +no_sslv3 +no_tlsv1 +no_tlsv1_1
postfixでTLS 1.0とTLS 1.1を無効化する
postfixも無効化したい暗号化プロトコルを設定に列挙します。
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
mysqlでTLS 1.0とTLS 1.1を無効化する
maysqlは有効にする暗号化プロトコルだけを設定に記述します。
tls_version = TLSv1.2,TLSv1.3
postgresqlでTLS 1.0とTLS 1.1を無効化する
postgresqlは暗号化プロトコルの下限を記述します。
ssl_min_protocol_version = 'TLSv1.2'
mongodbでTLS 1.0とTLS 1.1を無効化する
mongodbは無効化したいtlsを設定のnet.tls内に記述します。
net: tls: (略) disabledProtocols: TLS1_0,TLS1_1
proftpdでTLS 1.0とTLS 1.1を無効化する
proftpdは有効にしたいtlsだけを設定に記述します。
TLSProtocol TLSv1.2 TLSv1.3
vsftpdでTLS 1.0とTLS 1.1を無効化する
vsftpdは設定のなかに許可か無効を列挙します。
ssl_sslv2=NO ssl_sslv3=NO ssl_tlsv1=NO ssl_tlsv1_1=NO ssl_tlsv1_2=YES ssl_tlsv1_3=YES