この質問は、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
を変更するタイミングについて、業界の専門家が声を上げることはできますか?理論的根拠も知りたいです。
では、このパラメータをオンまたはオフに選択するための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に接続できません。
ssl_prefer_server_ciphers
がon
に設定されている場合、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暗号を使用してパフォーマンスを向上させることができます。