Поделиться через


Устранение рисков: протоколы TLS

Начиная с .NET Framework 4.6, System.Net.ServicePointManager и System.Net.Security.SslStream классы могут использовать один из следующих трех протоколов: Tls1.0, Tls1.1 или Tls 1.2. Протокол SSL 3.0 и шифрование RC4 не поддерживаются.

Воздействие

Это изменение влияет:

  • Любое приложение, использующее SSL для взаимодействия с HTTPS-сервером или сервером сокетов, использующим любой из следующих типов: HttpClient, HttpWebRequest, FtpWebRequest, SmtpClient и SslStream.

  • Любое серверное приложение, которое не может быть обновлено для поддержки Tls1.0, Tls1.1 или Tls 1.2..

Смягчение последствий

Рекомендуется обновить серверное приложение до TLS 1.0, TLS 1.1 или TLS 1.2. Если это невозможно, или если клиентские приложения не работают, можно использовать класс AppContext, чтобы отказаться от этой функции одним из двух способов.

  • Программным способом с помощью фрагмента кода, как показано ниже:

    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 Так как объект инициализирован только один раз, определение этих параметров совместимости должно быть первым, что делает приложение.

  • Добавьте следующую строку в <раздел среды выполнения> файла app.config:

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

Обратите внимание, что отказ от поведения по умолчанию не рекомендуется, так как это делает приложение менее безопасным.

См. также