web-dev-qa-db-ja.com

ブラウザーWebサーバー通信で、使用する暗号化プロトコルを決定するユーザー

私のIEブラウザでは、詳細設定でSSLv3.0、TLS 1.0、1.1、および1.2が有効になっています。

(サーバー管理者から通知を受けた)WebサーバーはSSLv3.0およびTLS 1.0でデータを暗号化できる

これで、どのシステム(サーバーまたはブラウザー)がどのプロトコルを使用するかを決定します。 TLS 1.0が使用されていることは知っています。しかし、私は今、どのシステムが決定を下す必要がある。

6
nJoshi

サーバーは、安全なチャネルを確立するために使用する暗号スイートを選択します。

クライアント(ブラウザ)は、受け入れるプロトコルと暗号化アルゴリズムを提示します。サーバーは、(それ自体の受け入れ可能なプロトコルのリストに基づいて)最も安全であると見なし、安全なチャネルに使用されるものを選択します。サーバーが適切と見なす暗号スイートを検出しない場合、接続は拒否されます。

詳しくは SSL/TLSの仕組み をご覧ください。

11
RoraΖ

@razからの回答を補足するには、Protocol Downgrade Attacksに注意する必要があります。 IEがサポートする最大バージョンを送信してから、サーバーが選択します(あなたの場合、IEは「TLS 1.2まで知っています」と言い、サーバーが「TLS 1.0を実行します」と応答します。ただし、ブラウザにはバグのあるサーバーが存在することがわかっているため、クライアントが「TLS 1.2まで知っている」と言うと、てんかん発作を起こすだけです。接続が途絶えた場合、ブラウザは「TLS 1.1まで知っています」と言って再試行します。失敗すると、「TLS 1.0まで知っています」で再試行します。失敗した場合、クライアントは再度試行し、SSL 3.0サポートのみを要求します。

この動作の問題は、攻撃者がSSL 3.0以外の操作を試みる接続の試行を単純に強制終了できることです。クライアントから見ると、これは、SSL 3.0以外を許容できないバグの多いサーバーのように見えます。サーバーから見ると、これはSSL 3.0しか認識していない古いクライアントのように見えます。最終的な結果として、クライアントとサーバーはどちらもTLS 1.0をサポートしていますが、SSL 3.0を使用します。

概要:ただし、名目上、SSL/TLSではクライアントが提案し、サーバーが選択しますが、ほとんどのブラウザーのtry-again-with-lower-version動作は、実際にはクライアントが提案することを意味しますが攻撃者が選択します。それは残念です。

このため、ブラウザでSSL 3.0サポートを無効にする必要があります。

13
Tom Leek