Síntomas
Se supone que se ha actualizado a Microsoft.NET Framework 4.6 en el equipo. Cuando se utiliza una aplicación que utiliza SSL 3.0 junto con ServicePointManager o SslStream API para conectarse a un servidor, se produce un error en la conexión.
Causa
Este problema se produce porque ha cambiado el conjunto de protocolos SSL/TLS predeterminado utilizado por la clase ServicePointManager y SslStream .
Valor antiguo: Ssl 3.0 | TLS 1.0 | TLS 1.1
Nuevo valor: Tls 1.0 | TLS 1.1 | 1.2 de TLS
Solución alternativa
Para evitar este problema, actualice el servidor Tls 1.0, Tls 1.1 o 1.2 Tls porque SSL 3.0 ha demostrado ser vulnerables a ataques como CANICHES y no seguras.AppContext opten por esta característica. Para ello, utilice uno de los métodos siguientes:
Nota: Si no puede actualizar el servidor, utilice la clase-
Mediante programación: Debe ser la primera cosa que hace la aplicación porque ServicePointManager inicializará sólo una vez. Utilice el siguiente ejemplo de código en su aplicación:
private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true); -
Mediante el archivo AppConfig para su aplicación: agregue la línea siguiente al archivo Appconfig:
< AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/ >
Más información
Para obtener más información acerca de los cambios de control de versiones del producto y el impacto en la 4.6 de.NET Framework, vea Compatibilidad de aplicaciones en la 4.6 de.NET Framework. Notas:
-
La nueva configuración sólo se aplicará cuando la aplicación tiene como destino la 4.6 de.NET Framework. 4.5.2 de.NET Framework y en versiones anteriores no se verán afectadas aunque se ejecuten en un entorno.NET Framework 4.6.
-
Una lista de las API de nivel superior afectadas:
-
HttpClient, HttpWebRequest
-
FtpClient
-
SmtpClient
-
SslStream
-
-
SCH_USE_STRONG_CRYPTO Este indicador se va a utilizar automáticamente la 4.6 de.NET Framework y afecta al comportamiento quitando los algoritmos cifrados y hash no seguros. Para todas las plataformas de sistema operativo anteriores a Windows 10, el algoritmo RC4 se quitará del uso. Desde Windows 10, se quitarán los siguientes algoritmos inseguros adicionales: DES, NULL, Exportar y MD5