web-dev-qa-db-ja.com

nginx構成でのssl_prefer_server_ciphersディレクティブの設定

この質問は、nginxの構成中にssl_prefer_server_ciphersの正しい値を設定することについてです。

Mozillaによって提案されたかなり典型的な設定によると、値はoffである必要があります(ソース: https://ssl-config.mozilla.org/#server=nginx&server-version=1.17.7&config=中間&openssl-version = 1.0.1g )。

Nginx自身のドキュメントによると、これを常にonに設定する必要があります: https://www.nginx.com/blog/nginx-https-101-ssl-basics-getting-started/ssl_prefer_server_ciphersのドキュメントを検索します)。

どのアドバイスに従うべきか悩んでいます。どちらのソースもかなりしっかりしています。

これをoffに変更するタイミングとonを変更するタイミングについて、業界の専門家が声を上げることはできますか?理論的根拠も知りたいです。

9
Hassan Baig

では、このパラメータをオンまたはオフに選択するための3つのカテゴリがあります。

**Modern** : Services with clients that support TLS 1.3 and don't need backward compatibility
**Intermediate** : General-purpose servers with a variety of clients, recommended for almost all systems
**Old** : Compatible with a number of very old clients, and should be used only as a last resort

このパラメーターを延期する必要があるのは、下位互換性を必要としない最新の構成のみであり、そのような場合、クライアントはtlsv1.3以外の古いssl/tlsに接続できません。

1
asktyagi

ssl_prefer_server_ciphersonに設定されている場合、Webサーバーの所有者は、使用可能な暗号を制御できます。

この制御が好まれた理由は、SSLとTLS v1.0およびTLS v1.1で利用可能であった古くて安全でない暗号です。

サーバーが古いTLSバージョンをサポートし、ssl_prefer_server_ciphersがオフの場合、攻撃者はハンドシェイクを妨害し、接続に弱い暗号を使用するように強制するため、接続の復号化が可能になります。

弱い暗号スイートはTLS v1.2およびv1.3で非推奨になり、サーバーが優先暗号を指定する必要がなくなりました。

最新のセットアップで推奨される設定はssl_prefer_server_ciphers offです。これは、クライアントデバイスがクライアントデバイスのハードウェア機能に基づいて優先する暗号化方法を選択できるためです。

たとえば、モバイルデバイスにAESアクセラレーションがない場合、ChaCha暗号を使用してパフォーマンスを向上させることができます。

8
Tero Kilkanen