Ograniczenie: protokoły TLS

Począwszy od programu .NET Framework 4.6, System.Net.ServicePointManager klasy i System.Net.Security.SslStream mogą używać jednego z następujących trzech 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 komunikacji z serwerem HTTPS lub serwerem gniazd przy użyciu dowolnego z następujących typów: HttpClient, , HttpWebRequestFtpWebRequest, SmtpClienti SslStream.

  • Każda aplikacja po stronie serwera, której nie można uaktualnić do obsługi protokołów Tls1.0, Tls1.1 lub Tls 1.2.

Czynności zapobiegawcze

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

  • Programowo przy użyciu fragmentu kodu, takiego jak:

    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)
    

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

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

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

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

Zobacz też