Dotyczy
.NET Framework 4.6.2

Objawy

Założono, że przeprowadzono aktualizację do programu Microsoft.NET Framework 4.6 na komputerze. Korzystając z aplikacji, która używa protokołu SSL 3.0 wraz z ServicePointManager lub SslStream API, aby połączyć się z serwerem, nie można nawiązać połączenia.

Przyczyna

Ten problem występuje, ponieważ zmieniono domyślny zestaw protokołów SSL/TLS używanego przez ServicePointManager i SslStream .

Stara wartość: Ssl 3.0 | Protokół TLS 1.0 | TLS 1.1

Nowa wartość: protokół Tls 1.0 | TLS 1.1 | TLS 1.2

Obejście problemu

Aby obejść ten problem, należy zaktualizować serwer Tls 1.0, Tls 1.1 lub Tls 1.2 ponieważ SSL 3.0 wykazano być podatny na ataki, takie jak PUDEL i bez zabezpieczeń.Uwaga Jeśli serwer nie może zaktualizować, użyj AppContext klasa zrezygnować z tej funkcji. Aby to zrobić, użyj jednej z następujących metod:

  • Programowo: Musi być pierwszą rzeczą, jaką aplikacja nie zainicjowany ServicePointManager tylko raz. Użyć następującego kodu w aplikacji:

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";        private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";        AppContext.SetSwitch(DisableCachingName, true);        AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
  • Przy użyciu pliku AppConfig aplikacji: Dodaj następujący wiersz do pliku Appconfig:< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >

Aby uzyskać więcej informacji o znanych problemach 4.6.NET Framework Zobacz znane problemy 4.6.NET Framework.

Więcej informacji

Aby uzyskać więcej informacji na temat zmiany wersji produktu i wpływu 4.6.NET Framework Zobacz Zgodność aplikacji.NET Framework 4.6.Uwagi

  • Nowa konfiguracja ma zastosowanie tylko w przypadku, gdy aplikacja jest platformą.NET Framework 4.6. .NET Framework 4.5.2 i wcześniejszych wersjach pozostaną nienaruszone, nawet jeśli są uruchamiane w środowisku.NET Framework 4.6.

  • Listę interfejsów API, którego dotyczy najwyższego poziomu:

    • HttpClient, HttpWebRequest

    • FtpClient

    • SmtpClient

    • SslStream

  • SCH_USE_STRONG_CRYPTO Ta flaga jest będzie automatycznie używany w 4.6.NET Framework i wpływa na zachowanie przez usunięcie niebezpiecznych algorytmy kryptograficzne i mieszania. Dla wszystkich platform systemu operacyjnego wcześniejszych niż Windows 10 algorytm RC4 zostaną usunięte z użycia. Od 10 systemu Windows zostaną usunięte następujące dodatkowe algorytmy niebezpieczny: DES, NULL, EKSPORTOWANIE i MD5

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.