Apacheで古いTLSとSSLバージョンを無効にする方法(そしてその理由) - TechRepublic

Apacheで古いTLSとSSLバージョンを無効にする方法(そしてその理由) - TechRepublic

2018年6月30日以降、ウェブサイトはPCI準拠を維持するために、トランスポート層セキュリティ(TLS)バージョン1.0のサポートを停止する必要があります。TLS 1.0/1.1およびSecure Sockets Layer 2.0/3.0プロトコルは非推奨であり、安全なデータ転送に必要な暗号化技術が不十分です。特にTLSバージョン1.0には、特定のマルウェア攻撃に対する脆弱性が存在します。これら4つの旧式プロトコルはすべて、特に高いセキュリティレベルが求められる環境では使用を停止する必要があります。

Apacheウェブサーバー(全ウェブサイトの約半数を占める)でTLS 1.0/1.1およびSSL 2.0/3.0を廃止し、TLS 1.2のみを利用するのは簡単です。しかし、これらのサイトに接続する古いクライアントやアプリケーションは、TLS 1.2をサポートしていないと影響を受ける可能性があることに注意することが重要です。これらのクライアントやアプリケーションについては、事前に対応状況を確認し、必要に応じてアップグレードする必要があります。

最新の Web ブラウザは TLS 1.2 をサポートしており、変更による問題は発生しないはずですが、この種の変更は必ず最初に開発システムで実施し、実稼働システムに移行する前に機能を確認してください。

参照:現実のテクノロジーをフィクションとして描いた休暇中の読書20選(無料PDF)(TechRepublic)

これを実現するには、次の手順に従います。

1. vi (または vim) を使用して、/etc/httpd/conf.d/ssl.conf (またはこの Apache インストールに関連する ssl.conf ファイルがある場所) を編集します。

2.「SSLプロトコルサポート」セクションを探します。おそらく以下のようになっているはずです。

# SSL Protocol support:# List the enable protocol levels with which clients will be able to# connect. Disable SSLv2 access by default:SSLProtocol all -SSLv2

3.「SSLProtocol all -SSLv2」をコメントアウトし、その下に次の行を追加します。

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

このセクションは次のようになります。

# SSL Protocol support:# List the enable protocol levels with which clients will be able to# connect. Disable SSLv2 access by default:#SSLProtocol all -SSLv2

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

この設定は、TLS 1.0/1.1 および SSL 2.0/3.0 をオフにします。

4. SSL暗号スイートのセクションを探します。おそらく次のように記載されているでしょう。

# SSL Cipher Suite:# List the ciphers that the client is permitted to negotiate.# See the mod_ssl documentation for a complete list.SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

5.「SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA」をコメントアウトし、その下に次の行を追加します。

SSLCipherSuite HIGH:!aNULL:!MD5:!3DES

このセクションは次のようになります。

# SSL Cipher Suite:# List the ciphers that the client is permitted to negotiate.# See the mod_ssl documentation for a complete list.#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEASSLCipherSuite HIGH:!aNULL:!MD5:!3DES

この設定により、セキュリティの高い SSL 暗号のみが使用されるようになります。

次に、「SSLCipherSuite HIGH:!aNULL:!MD5:!3DES」の下に「SSLHonorCipherOrder on」を追加するか、「Speed-optimized SSL Cipher configuration:」セクションまでスクロールしてその下に追加します(これらの設定を実際にどこに追加するかは重要ではありませんが、すべての構成ファイルに適切な設定セクションが含まれるように統一感を保つのに役立ちます)。

# Speed-optimized SSL Cipher configuration:

# If speed is your main concern (on busy HTTPS servers e.g.),

# you might want to force clients to specific, performance# optimized ciphers. In this case, prepend those ciphers

# to the SSLCipherSuite list, and enable SSLHonorCipherOrder.

# Caveat: by giving precedence to RC4-SHA and AES128-SHA

# (as in the example below), most connections will no longer

# have perfect forward secrecy - if the server's key is

# compromised, captures of past or future traffic must be
# considered compromised, too.SSLHonorCipherOrder on

この設定により、一貫性を保つために、クライアントではなくサーバーの暗号設定が遵守されるようになります。

エディターでファイルを保存し、変更を有効にするために Apache サービスを再起動します。

service httpd restart

関連するクライアントやアプリケーションを使ってWebサーバーへのアクセスを徹底的にテストし、成功を確認してください。問題が発生した場合は、ssl.confファイルを編集し、追加した設定をコメントアウトし、元の設定のコメントアウトを解除してファイルを保存し、httpdサービスを再起動することで、変更を元に戻すことができます。

以下も参照:

  • ApacheGUI を使用して Apache を構成、監視、管理する方法 (TechRepublic)
  • Varnish HTTP キャッシュを使って Apache を高速化する方法 (TechRepublic)
  • 2018年第1四半期のマルウェアとランサムウェアの急増の原因の一つにSSLが関係している理由(TechRepublic)
  • Let's Encrypt が TLS-SNI-01 検証を​​無効化 (ZDNet)
  • HTTPS を使うか使わないか:ウェブサイトを安全にする方法 (ZDNet)
Tagged: