までサポートするサーバーと通信するためのデフォルトのセキュリティプロトコルは何TLS 1.2
ですか?ウィル.NET
デフォルトでは、サーバー側でサポートされる最高レベルのセキュリティプロトコルを選択するか、私は明示的にこのコード行を追加する必要があります:
System.Net.ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
コードを変更する以外に、このデフォルトを変更する方法はありますか?
最後に、.NET 4.0
までしかサポートしていTLS 1.0
ませんか?つまり、サポートするにはクライアントプロジェクトを4.5にアップグレードする必要がありますTLS 1.2
。
私の動機はSSLv3
、サーバーがサポートしている場合でもクライアント側でのサポートを削除し(マシンのレジストリでこれを無効にするPowerShellスクリプトを既に持っている)、サーバーがサポートする最高のTLSプロトコルをサポートすることです。
更新:
のServicePointManager
クラス.NET 4.0
を見るTLS 1.0
と、およびの列挙値はありません1.1
。どちらの.NET 4.0/4.5
場合も、デフォルトはSecurityProtocolType.Tls|SecurityProtocolType.Ssl3
です。うまくいけば、このデフォルトはSSLv3
、レジストリで無効にすることによって壊れることはありません。
ただし、すべてのアプリケーションをすべてのアプリケーションのすべてのブートストラップコードにアップグレードして.NET 4.5
、明示的に追加する必要があると判断しましたSecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
。
これにより、ダウングレードしないようにさまざまなAPIとサービスに送信リクエストが送信されSSLv3
、最高レベルのを選択する必要がありますTLS
。
このアプローチは合理的または過剰に聞こえますか?私は多くのアプリケーションを更新する必要があり、TLS 1.0
プロバイダーによっては近い将来廃止される可能性があると聞いているので、それらを将来的に証明したいと考えています。
APIへのアウトバウンドリクエストを作成するクライアントとして、レジストリでSSL3を無効にすると、.NETフレームワークにも影響がありますか?デフォルトでTLS 1.1および1.2が有効になっていないことがわかりました。レジストリを使用して有効にする必要がありますか?RE http://support.microsoft.com/kb/245030。
少し調査した結果、レジストリ設定はIIS(サーバーサブキー)とブラウザ(クライアントサブキー)に適用されるため、影響がないと思います。
申し訳ありませんが、この投稿は複数の質問になり、その後「たぶん」の回答が続きました。