Ograniczenie: protokoły TLS

Począwszy od .NET Framework 4.6, klasy i mogą używać jednego z trzech następujących System.Net.ServicePointManager System.Net.Security.SslStream protokołów: Tls1.0, Tls1.1 lub Tls 1.2. Protokół SSL3.0 i szyfr RC4 nie są obsługiwane.

Wpływ

Ta zmiana ma wpływ na:

  • Każda aplikacja korzystająca z protokołu SSL do połączenia z serwerem HTTPS lub serwerem gniazd przy użyciu dowolnego z następujących typów: HttpClient , , , i HttpWebRequest FtpWebRequest SmtpClient SslStream .

  • Dowolna aplikacja po stronie serwera, która nie może zostać uaktualniona do obsługi wersji Tls 1.0, Tls 1.1 lub Tls 1.2.

Ograniczanie ryzyka

Zalecanym ograniczeniem jest uaktualnienie aplikacji po stronie klienta do wersji Tls 1.0, Tls1.1 lub Tls 1.2. Jeśli nie jest to możliwe lub jeśli aplikacje klienckie zostaną uszkodzone, klasa może służyć do rezygnacji z tej funkcji na AppContext jeden z dwóch sposobów:

  • Programowo, przy użyciu fragmentu kodu podobnego do poniższego:

    const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";
    const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
    
    Const DisableCachingName As String = "TestSwitch.LocalAppContext.DisableCaching"
    Const DontEnableSchUseStrongCryptoName As String = "Switch.System.Net.DontEnableSchUseStrongCrypto"
    AppContext.SetSwitch(DisableCachingName, True)
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, True)
    

    Ponieważ ServicePointManager obiekt jest zainicjowany tylko raz, zdefiniowanie tych ustawień zgodności musi być pierwszą rzeczą, jaką robi aplikacja.

  • Dodając następujący wiersz do <runtime> sekcji pliku app.config pliku:

    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/>  
    

Należy jednak pamiętać, że rezygnacja z domyślnego zachowania nie jest zalecana, ponieważ sprawia, że aplikacja jest mniej bezpieczna.

Zobacz też