適用先
.NET Framework 4.6.2

現象

コンピューターに Microsoft.NET Framework 4.6 にアップグレードすることを想定しています。ServicePointManagerまたはSslStream Api との SSL 3.0 を使用してサーバーに接続するアプリケーションを使用する場合、接続は失敗します。

原因

ServicePointManagerとSslStreamによって使用される SSL や TLS プロトコルの既定のセットが変更されたために、この問題が発生します。

古い値: Ssl 3.0 |Tls 1.0 |Tls 1.1

新しい値: Tls 1.0 |Tls 1.1 |Tls 1.2

回避策

この問題を回避するには、セキュリティ保護されていない、POODLE などの攻撃に対する脆弱性が SSL 3.0 が表示されたため Tls 1.0、Tls 1.1 または Tls 1.2 にサーバーを更新します。注: サーバーを更新することはできません、する場合は、この機能を無効にするAppContextクラスを使用します。これを行うには、次の方法のいずれかの手順に従います。

  • ServicePointManagerを 1 回だけ初期化されるため、アプリケーションでは非常に最初にプログラムを使用して: する必要があります。アプリケーションで次のコード例を使用します。

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • AppConfig ファイルを使用して、アプリケーションの: Appconfig ファイルに次の行を追加します。< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >

.NET Framework の 4.6 では、既知の問題に関する詳細については、既知の問題については、.NET Framework の 4.6を参照してください。

詳細

製品のバージョン管理の変更と.NET Framework の 4.6 に影響する方法の詳細については、 .NET Framework の 4.6 におけるアプリケーションの互換性を参照してください。注:

  • 新しい構成は、アプリケーションが.NET Framework の 4.6 を対象とする場合にのみ適用されます。.NET Framework 4.5.2 と以前のバージョンを受けない場合でも、.NET Framework 4.6 環境で実行します。

  • 影響を受ける最上位の Api のリストです。

    • HttpClient、HttpWebRequest

    • FtpClient

    • SmtpClient

    • SslStream

  • SCH_USE_STRONG_CRYPTOこのフラグは、.NET Framework の 4.6 に自動的に使用する予定が、安全ではない暗号化アルゴリズムとハッシュ アルゴリズムを削除することによって動作に影響します。すべてのオペレーティング システム プラットフォームの Windows の 10 より前のRC4アルゴリズムから削除されます使用します。Windows 10 では、次の他の安全でないアルゴリズムを削除する: DES、 NULL、エクスポートおよびMD5

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。