Procedimientos recomendados sobre la seguridad de la capa de transporte (TLS) con .NET Framework

El protocolo de seguridad de capa de transporte (TLS) es un estándar del sector diseñado para ayudar a proteger la privacidad de la información que se comunica a través de Internet. TLS 1.2 es un estándar que proporciona mejoras de seguridad con respecto a versiones anteriores. TLS 1.2, finalmente, se reemplazará por el estándar más reciente publicado TLS 1.3 que es más rápido y ha mejorado la seguridad. En este artículo se presentan recomendaciones para proteger las aplicaciones de .NET Framework que utilizan el protocolo TLS.

Para garantizar que las aplicaciones de .NET Framework permanezcan seguras, la versión de TLS no debe estar codificada de forma rígida. Las aplicaciones de .NET Framework deben usar la versión TLS que admita el sistema operativo (SO).

Este documento está dirigido a los desarrolladores que:

Le recomendamos lo siguiente:

  • Tenga como destino .NET Framework 4.7 o versiones posteriores en sus aplicaciones. Tenga como destino .NET Framework 4.7.1 o versiones posteriores en sus aplicaciones de WCF.
  • No especifique la versión de TLS. Configure el código para permitir que el sistema operativo decida sobre la versión de TLS.
  • Realice una exhaustiva revisión del código para comprobar que no está especificando una versión de TLS o SSL.

Cuando la aplicación permite que el sistema operativo elija la versión de TLS:

  • Aprovecha automáticamente los nuevos protocolos que se agregarán en el futuro; por ejemplo, TLS 1.3.
  • El sistema operativo bloquea los protocolos que se descubre que no son seguros.

La sección Revisión del código y aplicación de cambios en el código trata la auditoría y la actualización de código.

En este artículo se explica cómo habilitar el mayor nivel de seguridad disponible para la versión de .NET Framework que tiene como destino la aplicación y en la que esta se ejecuta. Cuando una aplicación establece explícitamente un protocolo de seguridad y una versión, deja de recibir cualquier otra alternativa y se mantiene al margen del comportamiento predeterminado de .NET Framework y el sistema operativo. Si desea que la aplicación pueda negociar una conexión TLS 1.2, el establecimiento explícito de una versión de TLS anterior impide una conexión de TLS 1.2.

Si no puede evitar la codificación rígida de una versión del protocolo, le recomendamos encarecidamente que especifique TLS 1.2. Para obtener instrucciones sobre cómo identificar y quitar dependencias de TLS 1.0, descargue el documento Solución del problema de TLS 1.0.

WCF admite TLS 1.0, 1.1 y 1.2 como valor predeterminado en .NET Framework 4.7. A partir de .NET Framework 4.7.1, WCF toma como valor predeterminado la versión configurada en el sistema operativo. Si una aplicación se configura explícitamente con SslProtocols.None, WCF utiliza los parámetros predeterminados del sistema operativo al utilizar el transporte NetTcp.

Puede formular preguntas sobre este documento en el tema de GitHub Procedimientos recomendados sobre la seguridad de la capa de transporte (TLS) con .NET Framework.

Revisión del código y aplicación de cambios en el código

Para las aplicaciones ASP.NET, inspeccione el elemento <system.web><httpRuntime targetFramework> de web.config para comprobar que está utilizando la versión deseada de .NET Framework.

Para Windows Forms y otras aplicaciones, consulte Cómo: usar una versión de .NET Framework como destino.

Consulte las siguientes secciones para comprobar que no está utilizando una versión específica de TLS o SSL.

Si la aplicación tiene como destino .NET Framework 4.7 o versiones posteriores

En las siguientes secciones se muestra cómo comprobar que no está utilizando una versión específica de TLS o SSL.

Para las redes de HTTP

ServicePointManager, con .NET Framework 4.7 y versiones posteriores, usará el protocolo de seguridad predeterminado configurado en el sistema operativo. Para obtener la mejor opción de sistema operativo de forma predeterminada, si es posible, no establezca un valor para la propiedad ServicePointManager.SecurityProtocol, que adopta como predeterminado SecurityProtocolType.SystemDefault.

Dado que el valor SecurityProtocolType.SystemDefault hace que ServicePointManager use el protocolo de seguridad predeterminado configurado por el sistema operativo, la aplicación puede ejecutarse de forma diferente en función del sistema operativo en el que se ejecuta. Por ejemplo, Windows 7 SP1 usa TLS 1.0, mientras que Windows 8 y Windows 10 usan TLS 1.2.

El resto de este artículo no es pertinente si se toma como destino la versión .NET Framework 4.7 o una posterior para las redes de HTTP.

Para las redes de sockets de TCP

SslStream, que usa .NET Framework 4.7 y versiones posteriores, elige el sistema operativo predeterminado teniendo en cuenta la mejor opción en cuanto a protocolo de seguridad y versión. Para obtener la mejor opción de sistema operativo predeterminado, si es posible, no use las sobrecargas del método de SslStream que toman un parámetro SslProtocols explícito. De lo contrario, pase SslProtocols.None. Se recomienda no usar Default; el parámetro SslProtocols.Default fuerza el uso de SSL 3.0/TLS 1.0 y evita TLS 1.2.

No establezca un valor para la propiedad SecurityProtocol (para las redes de HTTP).

No use las sobrecargas del método de SslStream que toman un parámetro SslProtocols explícito (para redes de sockets TCP). Al cambiar el destino de la aplicación a .NET Framework 4.7 o versiones posteriores, estará siguiendo la recomendación de los procedimientos recomendados.

El resto de este tema no es pertinente si se toma como destino la versión .NET Framework 4.7 o una posterior para las redes de sockets TCP.

Para transporte TCP de WCF que usa seguridad de transporte con credenciales de certificado

WCF usa la misma pila de redes que el resto de .NET Framework.

Si tiene como destino 4.7.1, WCF está configurado para permitir que el sistema operativo elija el mejor protocolo de seguridad de forma predeterminada a menos que se configure explícitamente:

  • En el archivo de configuración de aplicación.
  • O bien, en el código fuente de la aplicación.

De forma predeterminada, .NET Framework 4.7, así como las versiones posteriores, está configurado para usar TLS 1.2 y permite conexiones con TLS 1.1 o TLS 1.0. Configure WCF para permitir que el sistema operativo elija el mejor protocolo de seguridad mediante la configuración de su enlace para usar SslProtocols.None. Se puede establecer en SslProtocols. Se puede tener acceso a SslProtocols.None desde Transport. Se puede tener acceso a NetTcpSecurity.Transport desde Security.

Si usa un enlace personalizado:

  • Configure WCF para permitir que el sistema operativo elija el mejor protocolo de seguridad configurando SslProtocols para que utilice SslProtocols.None.
  • O bien configure el protocolo utilizado con la ruta de acceso de configuración system.serviceModel/bindings/customBinding/binding/sslStreamSecurity:sslProtocols.

Si no utiliza un enlace personalizado y está estableciendo los ajustes del enlace de WCF con la configuración, determine el protocolo utilizado con la ruta de acceso de configuración system.serviceModel/bindings/netTcpBinding/binding/security/transport:sslProtocols.

Para la seguridad de mensaje de WCF con credenciales de certificado

.NET Framework 4.7, así como sus versiones posteriores, utiliza de forma predeterminada el protocolo especificado en la propiedad SecurityProtocol. Cuando Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols de AppContextSwitch se establece en true, WCF elige el mejor protocolo hasta TLS 1.0.

Si la aplicación tiene como destino una versión de .NET Framework anterior a 4.7

Siga estas secciones para examinar el código a fin de comprobar que no está configurando una versión específica de TLS o SSL:

Para .NET Framework 4.6 - 4.6.2 y no WFC

Establezca el conmutador DontEnableSystemDefaultTlsVersions AppContext en false. Vea Configuring security via AppContext switches (Configuración de la seguridad mediante conmutadores AppContext).

Para WCF que usa .NET Framework 4.6 - 4.6.2 y seguridad de transporte TCP con credenciales de certificado

Debe instalar las revisiones más recientes del sistema operativo. Consulte Actualizaciones de seguridad.

La plataforma de WCF elige automáticamente el protocolo más alto disponible hasta TLS 1.2, a menos que configure explícitamente una versión de protocolo. Para obtener más información, consulte la sección anterior Para transporte TCP de WCF que usa seguridad de transporte con credenciales de certificado.

Para .NET Framework 3.5 - 4.5.2 y no WCF

Se recomienda que actualice la aplicación a .NET Framework 4.7 o versiones posteriores. Si no puede actualizar, siga estos pasos.

Establezca las claves del Registro SchUseStrongCrypto y SystemDefaultTlsVersions en 1. Vea Configuración de seguridad mediante el Registro de Windows. La versión 3.5 de .NET Framework admite la marca SchUseStrongCrypto solo cuando se pasa un valor explícito de TLS.

Si está ejecutando en .NET Framework 3.5, debe instalar una revisión para que pueda especificarse TLS 1.2 por el programa:

KB3154518 Paquete acumulativo de actualizaciones de confiabilidad HR-1605: compatibilidad para versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5.1 en Windows 7 SP1 y Server 2008 R2 SP1
KB3154519 Paquete acumulativo de actualizaciones de confiabilidad HR-1605: compatibilidad para versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5 en Windows Server 2012
KB3154520 Paquete acumulativo de actualizaciones de confiabilidad HR-1605: compatibilidad para versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5 en Windows 8.1 y Windows Server 2012 R2
KB3156421 Paquete acumulativo de revisiones 1605 3154521 para .NET Framework 4.5.2 y 4.5.1 en Windows

Para WCF que usa .NET Framework 3.5 - 4.5.2 y seguridad de transporte TCP con credenciales de certificado

Estas versiones de la plataforma WCF se han codificado de forma rígida para usar los valores SSL 3.0 y TLS 1.0. Estos valores no pueden modificarse. Debe actualizar y cambiar el destino a .NET Framework 4.6 o versiones posteriores para utilizar TLS 1.1 y 1.2.

Si la aplicación tiene como destino .NET Framework 3.5

Si se debe establecer explícitamente un protocolo de seguridad en lugar de permitir a .NET o el sistema operativo seleccionar el protocolo de seguridad, agregue las enumeraciones SecurityProtocolTypeExtensions y SslProtocolsExtension a su código. SecurityProtocolTypeExtensions y SslProtocolsExtension incluyen valores para el valor Tls12, Tls11 y SystemDefault. Para obtener más información, consulte Compatibilidad para las versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5 en Windows 8.1 y Windows Server 2012 R2.

Configuración de seguridad a través de conmutadores AppContext (para .NET Framework 4.6 o versiones posteriores)

Los conmutadores AppContext descritos en esta sección son pertinentes si su aplicación tiene como destino .NET Framework 4.6 o versiones posteriores o se ejecuta en estas plataformas. Ya sea de forma predeterminada, o estableciéndolos de forma explícita, los conmutadores deberían ser false si fuera posible. Si desea configurar la seguridad a través de uno o los dos conmutadores, no especifique un valor de protocolo de seguridad en el código; de hacerlo, se reemplazarían los conmutadores.

Los conmutadores tienen el mismo efecto si utiliza redes de HTTP (ServicePointManager) o redes de sockets de TCP (SslStream).

Switch.System.Net.DontEnableSchUseStrongCrypto

Un valor de false para Switch.System.Net.DontEnableSchUseStrongCrypto hace que la aplicación utilice una criptografía robusta. Un valor de false para DontEnableSchUseStrongCrypto utiliza protocolos de red más seguros(TLS 1.2, TLS 1.1 y TLS 1.0) y bloquea los protocolos que no son seguros. Para obtener más información, consulte La marca SCH_USE_STRONG_CRYPTO. Un valor de true deshabilita la criptografía robusta para la aplicación.

Si la aplicación tiene como destino .NET Framework 4.6 o versiones posteriores, el conmutador se establece de manera predeterminada en false. Este es un valor predeterminado seguro, así que lo recomendamos. Si la aplicación se ejecuta en .NET Framework 4.6, pero tiene como destino una versión anterior, el modificador se establece de manera predeterminada en true. En ese caso, debe establecerlo explícitamente en false.

DontEnableSchUseStrongCrypto solo debe tener un valor de true si necesita conectarse a servicios heredados que no son compatibles con la criptografía robusta y no se pueden actualizar.

Switch.System.Net.DontEnableSystemDefaultTlsVersions

Un valor de false para Switch.System.Net.DontEnableSystemDefaultTlsVersions hace que la aplicación permita que el sistema operativo elija el protocolo. Un valor de true hace que la aplicación utilice protocolos seleccionados por .NET Framework.

Si la aplicación tiene como destino .NET Framework 4.7 o versiones posteriores, el conmutador se establece de manera predeterminada en false. Este es un valor predeterminado seguro, así que lo recomendamos. Si la aplicación se ejecuta en .NET Framework 4.7 o versiones posteriores, pero tiene como destino una versión anterior, el modificador se establece de manera predeterminada en true. En ese caso, debe establecerlo explícitamente en false.

Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols

Un valor de false para Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols hace que la aplicación utilice el valor definido en ServicePointManager.SecurityProtocols para la seguridad de los mensajes mediante credenciales de certificado. Un valor de true usa el protocolo más alto disponible, hasta TLS 1.0.

Para aplicaciones que tienen como destino .NET Framework 4.7 y versiones posteriores, este valor se establece de manera predeterminada en false. Para aplicaciones que tienen como destino .NET Framework 4.6.2 y versiones anteriores, este valor se establece de manera predeterminada en true.

Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions

Un valor de false para Switch.System.ServiceModel.DontEnableSystemDefaultTlsVersions establece la configuración predeterminada para permitir que el sistema operativo elija el protocolo. Un valor de true establece como valor predeterminado el protocolo más alto disponible, hasta TLS 1.2.

Para aplicaciones que tienen como destino .NET Framework 4.7.1 y versiones posteriores, este valor se establece de manera predeterminada en false. Para aplicaciones que tienen como destino .NET Framework 4.7 y versiones anteriores, este valor se establece de manera predeterminada en true.

Para obtener más información sobre protocolos TLS, consulte Mitigación: protocolos TLS. Para obtener más información acerca de los conmutadores de AppContext, vea <AppContextSwitchOverrides> Element.

Configuración de seguridad mediante el Registro de Windows

Advertencia

La configuración de las claves del Registro afecta a todas las aplicaciones del sistema. Use esta opción solo si tiene el control total de la máquina y puede controlar los cambios realizados en el registro.

Si la configuración de uno o los dos conmutadores de AppContext no es una opción, puede controlar los protocolos de seguridad que usa su aplicación con las claves del Registro de Windows que se describen en esta sección. Quizá no pueda utilizar uno de los conmutadores de AppContext, o los dos, si la aplicación se ejecuta en .NET Framework 4.5.2 o en versiones anteriores, o no puede editar el archivo de configuración. Si desea configurar la seguridad con el Registro, no especifique un valor de protocolo de seguridad en el código; de hacerlo, se reemplazará la configuración del Registro.

Los nombres de las claves del Registro son similares a los nombres de los conmutadores de AppContext correspondientes, pero sin DontEnable antepuesto al nombre. Por ejemplo, el conmutador de AppContext``DontEnableSchUseStrongCrypto es la clave del Registro llamada SchUseStrongCrypto.

Estas claves están disponibles en todas las versiones de .NET Framework para las que existe una revisión de seguridad reciente. Consulte Actualizaciones de seguridad.

Todas las claves del Registro descritas a continuación tienen el mismo efecto si utiliza redes de HTTP (ServicePointManager) o redes de sockets de TCP (SslStream).

SchUseStrongCrypto

La clave del Registro HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SchUseStrongCrypto tiene un valor de tipo DWORD. Un valor de 1 hace que la aplicación utilice una criptografía robusta. La criptografía robusta utiliza protocolos de red más seguros(TLS 1.2, TLS 1.1 y TLS 1.0) y bloquea los protocolos que no son seguros. Un valor de 0 deshabilita la criptografía robusta. Para obtener más información, consulte La marca SCH_USE_STRONG_CRYPTO.

Si la aplicación tiene como destino .NET Framework 4.6 o versiones posteriores, la clave se establece de manera predeterminada en un valor de 1. Este es un valor predeterminado seguro, así que lo recomendamos. Si su aplicación tiene como destino .NET Framework 4.5.2 o versiones anteriores, el valor predeterminado de la clave es 0. En ese caso, debe establecer su valor explícitamente en 1.

Esta clave solo debe tener un valor de 0 si necesita conectarse a servicios heredados que no son compatibles con la criptografía robusta y no se pueden actualizar.

SystemDefaultTlsVersions

La clave del Registro HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\<VERSION>: SystemDefaultTlsVersions tiene un valor de tipo DWORD. Un valor de 1 hace que la aplicación permita que el sistema operativo elija el protocolo. Un valor de 0 hace que la aplicación utilice protocolos seleccionados por .NET Framework.

<VERSION> debe ser v4.0.30319 (para .NET Framework 4 y versiones posteriores) o v2.0.50727 (para .NET Framework 3.5).

Si la aplicación tiene como destino .NET Framework 4.7 o versiones posteriores, la clave se establece de manera predeterminada en un valor de 1. Este es un valor predeterminado seguro, así que lo recomendamos. Si su aplicación tiene como destino .NET Framework 4.6.1 o versiones anteriores, el valor predeterminado de la clave es 0. En ese caso, debe establecer su valor explícitamente en 1.

Para obtener más información, consulte Actualización acumulativa para Windows 10 versión 1511 y Windows Server 2016 Technical Preview 4: 10 de mayo de 2016.

Para obtener más información con .NET Framework 3.5.1, consulte Compatibilidad para las versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5.1 en Windows 7 SP1 y Windows Server 2008 R2 SP1.

El siguiente archivo . REG establece las claves del Registro y sus variantes en sus valores más seguros:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

Configuración de protocolos de Schannel en el Registro de Windows

Puede utilizar el registro para un control más preciso sobre los protocolos que negocia la aplicación servidor o cliente. Las redes de la aplicación pasan a través de Schannel (que es otro nombre para canal seguro). Mediante la configuración de Schannel, puede configurar el comportamiento de la aplicación.

Inicie con la clave del Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Bajo esa clave, puede crear cualquier subclave en el conjunto SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1 y TLS 1.2. En cada una de esas subclaves, puede crear subclaves Client o Server. En Client y Server, puede crear valores DWORD DisabledByDefault (0 o 1) y Enabled (0 o 1).

La marca SCH_USE_STRONG_CRYPTO

Cuando está habilitada (de forma predeterminada, por un conmutador AppContext o por el Registro de Windows), .NET Framework usa la marca SCH_USE_STRONG_CRYPTO cuando la aplicación solicita un protocolo de seguridad TLS. La marca SCH_USE_STRONG_CRYPTO puede estar habilitada de forma predeterminada, con el conmutador AppContext o con el Registro. El sistema operativo pasa la marca a Schannel para indicarle que deshabilite algoritmos criptográficos que se sabe que no son robustos, conjuntos de cifrado y versiones de protocolo TLS/SSL que pueden habilitarse en caso contrario para mejorar la interoperabilidad. Para obtener más información, consulte:

La marca SCH_USE_STRONG_CRYPTO también se pasa a Schannel cuando se utiliza explícitamente Tls (TLS 1.0), Tls11 o valores enumerados Tls12 de SecurityProtocolType y SslProtocols.

Actualizaciones de seguridad

Los procedimientos recomendados en este artículo dependen de las actualizaciones de seguridad recientes que se están instalando. Estas actualizaciones incluyen la posibilidad de utilizar las características avanzadas de .NET Framework 4.7 y versiones posteriores. Las actualizaciones de seguridad recientes son importantes si la aplicación se ejecuta en .NET Framework 4.7 y versiones posteriores (incluso si tienen como destino una versión anterior).

Para actualizar .NET Framework a fin de permitir que el sistema operativo elija la mejor versión de TLS para usar, debe instalar al menos:

Vea también:

Compatibilidad con TLS 1.2

Para que la aplicación pueda negociar con TLS 1.2, el sistema operativo y la versión de .NET Framework requieren compatibilidad con TLS 1.2.

Requisitos del sistema operativo para admitir TLS 1.2

Para habilitar o volver a habilitar TLS 1.2 o TLS 1.1 en un sistema que los admita, consulte Configuración del registro de seguridad de la capa (TLS) de transporte.

SO Compatibilidad con TLS 1.2
Windows 10
Windows Server 2016
Compatible, y habilitado de manera predeterminada.
Windows 8.1
Windows Server 2012 R2
Compatible, y habilitado de manera predeterminada.
Windows 8.0
Windows Server 2012
Compatible, y habilitado de manera predeterminada.
Windows 7 SP1
Windows Server 2008 R2 SP1
Compatible, pero no habilitado de manera predeterminada. Consulte la página web Configuración del registro de seguridad de la capa (TLS) de transporte para obtener más información sobre cómo habilitar TLS 1.2.
Windows Server 2008 La compatibilidad con TLS 1.2 y TLS 1.1 requiere una actualización. Vea Actualización para agregar compatibilidad con TLS 1.1 y TLS 1.2 en Windows Server 2008 SP2.
Windows Vista No se admite.

Para obtener información acerca de qué protocolos TLS/SSL protocolos están habilitados de forma predeterminada en cada versión de Windows, vea Protocols in TLS/SSL (Schannel SSP) (Protocolos en TLS/SSL [SSP de Schannel]).

Requisitos para admitir TLS 1.2 con .NET Framework 3.5

En esta tabla se muestra la actualización del sistema operativo que necesitará para admitir TLS 1.2 con .NET Framework 3.5. Es recomendable que aplique todas las actualizaciones del sistema operativo.

SO Actualización mínima necesaria para admitir TLS 1.2 con .NET Framework 3.5
Windows 10
Windows Server 2016
Actualización acumulativa para Windows 10 versión 1511 y Windows Server 2016 Technical Preview 4: 10 de mayo de 2016
Windows 8.1
Windows Server 2012 R2
Support for TLS System Default Versions included in .NET Framework 3.5 on Windows 8.1 and Windows Server 2012 R2 (Compatibilidad para las versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5 en Windows 8.1 y Windows Server 2012 R2)
Windows 8.0
Windows Server 2012
Support for TLS System Default Versions included in .NET Framework 3.5 on Windows 8.1 and Windows Server 2012 R2 (Compatibilidad para las versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5 en Windows 8.1 y Windows Server 2012 R2)
Windows 7 SP1
Windows Server 2008 R2 SP1
Support for TLS System Default Versions included in the .NET Framework 3.5.1 on Windows 7 SP1 and Server 2008 R2 SP1 (Compatibilidad para versiones predeterminadas del sistema TLS incluidas en .NET Framework 3.5.1 en Windows 7 SP1 y Server 2008 R2 SP1)
Windows Server 2008 Support for TLS System Default Versions included in the .NET Framework 2.0 SP2 on Windows Vista SP2 and Server 2008 SP2 (Compatibilidad para las versiones predeterminadas del sistema TLS incluidas en .NET Framework 2.0 SP2 en Windows Vista SP2 y Server 2008 SP2)
Windows Vista No compatibles