このトピックは、思いやりのあるWebサーバー管理者の声が聞こえた前の投稿の議論によって促されました 。TLS1.2とAEADは健康な人の選択ですが、「時代遅れの」ブラウザーのユーザーを後悔するのは誰ですか?これについて話し合いましょう-「最新の」TLSと「レガシー」ブラウザの間の非互換性の疑い。
仮説は次のとおりです。TLSトランスポート層セキュリティプロトコル(1.2および1.3)の安定したバージョンと暗号スイート(AEAD)のみがWebサーバーに残っている場合、「古い」ブラウザーのユーザーはサイトにアクセスできません。
オプションのエクスカーションを歴史に取り入れましょう... 2005年(つまり16年前)に、米国国家安全保障局は、暗号化アルゴリズムの使用に関する標準、ガイドライン、推奨事項、およびその他のサポートドキュメントのコーパスを発表しました-NSA SuiteB暗号化。
2009年にIETFはRFC5430を公開し ましたNSA要件に準拠するためにHTTPS接続に使用するプロトコルと暗号スイートを確立したトランスポート層セキュリティのスイートBプロファイル。それでも、これらの要件を満たすために、WebサーバーとWebブラウザーは、TLSバージョン1.2と、暗号スイートTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256およびTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384をサポートする必要がありました。
つまり、少なくとも過去11年間、開発者は、米国政府の命令を受ける資格を得るために製品が満たす必要のある要件を知っていました。したがって、おそらく驚くことなく次の事実に気付くでしょう。今日実際に使用されているすべてのブラウザは、128ビットの暗号鍵と多くの(すべてではない)バージョンの256ビットの暗号スイートをサポートしています。
これで記事の終わりになる可能性があります。すべてのWebサーバー管理者がTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256のみのサポートを残し、ニュアンスがない場合でも、TLS1.2と「古い」ブラウザーとの非互換性についての神話に煩わされないようにすることをお勧めします。デジタル署名アルゴリズムはTLS証明書のアルゴリズムと暗号的に一致している必要があり、.RUドメインゾーンでECDSAアルゴリズムを使用して署名された証明書を持つWebサーバーの 6%未満が、残りはRSA署名に使用されます。
誰のせいにするかは別の研究の問題です;私たちは何をすべきかに興味がありますか?最初に、NSAが推奨するECDHE + ECDSA + AESの組み合わせだけでなく、他の組み合わせも今日の強力な暗号セットの1つであることを思い出してください。
メナジェリー全体
TLS_DHE_RSA_WITH_AES_128_CCM;
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_256_CCM;
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_128_CCM;
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_256_CCM;
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256.
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_256_CCM;
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_128_CCM;
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_256_CCM;
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256.
合計19の強力な暗号スイートですが、すべてがパブリックWebサーバーでの実際の使用に適しているわけではありません。CCMモードのAESのようなCAMELLIA暗号化アルゴリズムは、CHACHA20とその忠実なユーザーによってサポートされています。コンパニオンPOLY1305は、比較的馴染みのある最新のブラウザーであり、ECDSAベースの暗号スイートを使用するには、すでに述べたように、適切なTLS証明書が必要です。したがって、
残りの「追加の」暗号スイートは4つだけです 。TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384。
ブラウザがECDHE + ECDSAの組み合わせをサポートしている場合、ECDHE + RSAに確実に対応すると思いがちですが、常にそうであるとは限りません。多くの場合、DHE + RSAしか実行できず、次の要求を満たすためです。すべての古いブラウザ、RSA証明書のあるサイトでは、次の2つの暗号スイートをサポートする必要があります
。TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256。
これにより、少なくとも次のオペレーティングシステムおよびブラウザとの互換性が得られます
。Android4.4.2+ Androidブラウザ(Chrome)。
Windows XP + Chrome 49 / Firefox 49 / Opera 12.18;
Windows 7 + Internet Explorer 11 / Chrome 31 / Firefox 31;
OS X + Firefox 29 / Chrome 37;
iOS 9 + Safari 9;
Java8b。
* nixシステムについては言いません-アセンブリによって異なりますが、問題がそれ自体存在しないことは明らかです。唯一の問題は、1つの安定した組み合わせ(ECDHE + ECDSA)のみをサポートするWindows Phone 8.1 + IE10で発生します。
しかし、Windows XP + IE6または一部のAndroid2.3のユーザーは何をすべきでしょうか? -思いやりのある管理者が尋ねます。 継続する現代のインターネットにアクセスせずに座ってください-私は答えます-ウェブサーバープロトコルSSL2.0のサポートでさえ彼らを助けないからです。実際のところ、Windows XPでリリースされたすべての更新(2019年5月まで)をロールバックし、標準ブラウザーをバージョン8に更新しても、TLS 1.2のみがサポートされ、安定した暗号スイートはサポートされません。さらに、Windows XPは、Server Name Indication(SNI)、
頑固な「1.5ディガー」のために、サイト専用のIPを保持し、レイアウトを更新しない準備はできていますか?次に、TLS_RSA_WITH_AES_256_CBC_SHA256などのサポートを追加しますが、最近のWindows XPユーザーは、TLS1.3をサポートする代替ブラウザーを長い間使用していると想定する必要があります。同じことがAndroid2.3にも当てはまります。Firefox27をインストールすると、TLS 1.2とAEAD暗号スイートが完全にサポートされます。インストールしないと、HTTP経由でも最新のサイトの大部分を使用できなくなります。
もちろん、上記のすべては、最新のブラウザで要求され、そもそも交渉のために提案されるべき、より強力な暗号スイートのサポートを放棄することを求めるものではありません。
二度起きないように、楕円曲線の状況を簡単に考えてみましょう。 NSA Suite B暗号化は、NISTP-384とNISTP-256の2つのみを認識します。これらのサポートにより、Webサーバー上で最新のブラウザーと「レガシー」ブラウザーの両方のサイトへのアクセスが提供されます。実際には、「オールディーズ」の場合はNIST P-384のみ、最新のブラウザの場合はCurve25519のみをサポートするだけで十分です。まあ、おそらくNIST P-521を追加することを除いて、いくつかの「高度なオールディーズ」のために。
要約すると、「古い」ブラウザでサイトにアクセスできるようにしたいが、同時にトランスポート層セキュリティプロトコルと暗号スイートの安定したバージョンのみをサポートしたい場合は、次のように進めます。 ECDSA
アルゴリズムを使用して署名されたTLS証明書を持つサイトの場合 、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256暗号スイートのサポートを有効にします。 RSAアルゴリズム
を使用して署名されたTLS証明書を持つサイトの 場合、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256およびTLS_DHE_RSA_WITH_AES_128_GCM_SHA256暗号スイートのサポートを有効にします。 両方のサイトのために、我々は、上記セットおよび曲線は、マッチングのためのブラウザに提供されるに従って、NIST P-384又はNIST P-256楕円曲線のためのサポートを有効にし、暗号セットと楕円曲線のための優先順位を設定し、 後に、より安定したもの、例えば、TLS_ECDHE_RSA_WITH_AES_後 256 _GCM_SHA 384それぞれとCurve25519、。