
サーバーバージョン(NGINX 1.16.0)とOpenSSLバージョン(1.0.2k)を入力すると、Mozilla SSL 設定ジェネレーターSSL 暗号の長いリストが表示されます。
例えば、
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
しかし私が訪問すると暗号リストNginx には 2 つの SSL 暗号のみが提供されます。
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
利用可能な暗号の数が少ないと、セキュリティが低下したり、危険にさらされたりしますか? クライアントに提供する暗号オプションを少なくすると、パフォーマンスが向上したり、他の重要な特性が調整されたりしますか?
答え1
TLS (およびそれ以前の SSL) の許可事項の 1 つは、安全な接続が開始されたときに、サーバーとクライアントが相互にサポートする暗号をネゴシエートして合意できること (通常は必須) です。
その理由は主に互換性のためです。新しい暗号を段階的に導入できるため、新しい暗号をまだサポートしていないクライアントとサーバー間の接続が切断されることはありません。
これは、ネゴシエーションなしで 1 つの暗号だけが使用される場合に発生します。その後、一方の当事者が古い暗号を破棄して新しい暗号にアップグレードすることを決定し、もう一方の当事者と調整せずにそれを実行すると、接続が切断されます。単一の組織でサーバーとクライアントの両方の同時アップグレードを調整することは、可能ではあるものの、すでにかなりの作業ですが、インターネット全体では、このような大規模なアップグレードは当然ほぼ不可能です。
したがって、暗号ネゴシエーションは良好です。(少なくとも互換性の点では)
利用可能な暗号の数が少ないと、セキュリティが低下したり、危険にさらされたりするのでしょうか?
いいえ。暗号の数セキュリティを決定するものではありません。
セキュリティを提供するのは暗号そのものです。
いくつかの暗号は他の暗号よりも比較的安全ですが(異なるアルゴリズム、または同じアルゴリズムでも鍵長が長く、前方セキュリティあるものは他のものより安全になる可能性があり、他のものは弱かったり壊れていたりします。セキュリティ要件を満たすすべての暗号ではなく、一部の暗号のみをサポートしても、セキュリティ上の追加の利点はありません。
(ただし、サポートする各暗号にはソフトウェアでの実装も必要であるという注意点があります。したがって、暗号が増える == コードが増える == バグや実装エラーの可能性が高くなります...)
クライアントに提供する暗号オプションを少なくすると、パフォーマンスが向上したり、他の重要な特性が調整されたりしますか?
いいえ、異なる暗号はパフォーマンス統計と使用例が大きく異なりますが、暗号が少ないほどコードが少なくなり、ゼロデイ攻撃のリスクが低くなるという上記の警告を除きます。の暗号の数サーバー側をサポートしてもパフォーマンスに影響はありません関連する方法では、セキュリティ要件を満たすすべての暗号ではなく、一部の暗号のみをサポートしても、パフォーマンス上の利点は追加されません。
サポートされる暗号が少ないと、互換性も低くなります。(通常、サーバーを最新かつ最も強力な暗号に制限するため、古いクライアントはサポートしていない可能性があり、計算コストが高すぎる可能性があります。)
User-Agent文字列を記録し、次のような表を参照して、Webサーバーのセキュリティ設定を更新した場合の影響を調べます。SSL Lab のユーザーエージェント機能 予め。