Příznaky
Předpokládejme, že jste provedli upgrade na Microsoft rozhraní.NET Framework 4.6 ve vašem počítači. Při použití aplikace, která používá protokol SSL 3.0 Třída ServicePointManager nebo SslStream API pro připojení k serveru, připojení se nezdaří.
Příčina
K tomuto problému dochází, protože došlo ke změně výchozí sadu protokolů SSL/TLS, který používá Třída ServicePointManager a SslStream .
Původní hodnota: Ssl 3.0 | TLS 1.0 | Protokoly TLS 1.1
Nová hodnota: Tls 1.0 | Protokoly TLS 1.1 | TLS 1.2
Jak potíže obejít
Chcete-li tento problém vyřešit, aktualizujte server na Tls 1.0, Tls 1.1 a Tls 1.2, protože protokol SSL 3.0 ukázala být nezabezpečené a zranitelné vůči útokům, jako je například co.AppContext třída Odhlásit se od této funkce. Chcete-li to provést, použijte jednu z následujících metod:
Poznámka: Pokud nelze aktualizovat na serveru, použijte-
Programově: Musí být úplně první věcí, kterou aplikace provede, protože Třída ServicePointManager bude inicializovat pouze jednou. Následující příklad kódu lze použijte v aplikaci:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Pomocí souboru AppConfig aplikace: Appconfig souboru přidejte následující řádek:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Další informace
Další informace o změny verzí produktu a dopad 4.6 rozhraní.NET Framework naleznete v tématu Kompatibilita aplikací rozhraní.NET Framework 4.6. Poznámky
-
Nová konfigurace bude použito pouze v případě, že je aplikací cílena rozhraní.NET Framework 4.6. Rozhraní.NET Framework 4.5.2 a dřívějších verzích nebudou ovlivněny, i když jejich spouštění v prostředí rozhraní.NET Framework 4.6.
-
Seznam ohrožených nejvyšší úrovně rozhraní API:
-
HttpClient HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Tento příznak bude automaticky použita v 4.6 rozhraní.NET Framework a ovlivňuje chování odstraněním nebezpečných kryptografické algoritmy a algoritmy hash. U všech operačních systémů starších než Windows 10 algoritmus RC4 budou odebrány z používání. Z Windows 10 budou odebrány následující další bezpečné algoritmy: DES, NULL, EXPORT a MD5