Administrar protocolos SSL/TLS y conjuntos de aplicaciones de cifrado para AD FS

En la siguiente documentación se proporciona información sobre cómo habilitar y deshabilitar determinados protocolos TLS/SSL y conjuntos de aplicaciones de cifrado que se usan en Servicios de federación de Active Directory (AD FS).

TLS/SSL, SChannel y conjuntos de aplicaciones de cifrado en AD FS

El protocolo Seguridad de la capa de transporte (TLS) proporciona comunicaciones seguras cifradas a través de la red. El protocolo Capa de sockets seguros (SSL) cifra los intercambios de datos confidenciales transmitidos entre un servidor web y un explorador web similar a TLS. Los Servicios de federación de Active Directory (AD FS) usan estos protocolos para las comunicaciones. Actualmente existen varias versiones de estos protocolos.

SChannel es un proveedor de compatibilidad para seguridad (SSP) que implementa los protocolos de autenticación estándar de Internet de SSL y TLS y DTLS. La interfaz del proveedor de compatibilidad para seguridad (SSPI) es una API que usan los sistemas Windows para realizar funciones basadas en la seguridad, incluida la autenticación. SSPI funciona como una interfaz común a varios SSP, incluido el Schannel SSP.

Un conjunto de cifrado es un conjunto de algoritmos criptográficos. En la implementación SSP de SChannel de los protocolos TLS/SSL se usan algoritmos de un conjunto de aplicaciones de cifrado para crear claves y cifrar la información. Un conjunto de cifrado especifica un algoritmo para cada una de las siguientes tareas:

  • Intercambio de claves
  • Cifrado masivo
  • Autenticación de mensajes

AD FS usa Schannel.dll para realizar sus interacciones de comunicaciones seguras. Actualmente, AD FS admite todos los protocolos y conjuntos de aplicaciones de cifrado compatibles con SChannel.dll.

Administrar los protocolos TLS/SSL y los conjuntos de aplicaciones de cifrado

Importante

En esta sección se incluyen los pasos para modificar el Registro. Pero pueden producirse problemas graves si modifica incorrectamente el Registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente.

Tenga en cuenta que cambiar la configuración de seguridad predeterminada para SCHANNEL podría interrumpir o impedir las comunicaciones entre determinados clientes y servidores. Este caso puede darse si se requiere una comunicación segura y no existe un protocolo con el que negociar las comunicaciones.

Si aplica estos cambios, debe aplicarlos a todos los servidores de AD FS de su granja de servidores. Después de aplicar estos cambios, es necesario reiniciar.

En los tiempos que corren, reforzar los servidores y eliminar los conjuntos de cifrado antiguos o débiles se está convirtiendo en una prioridad para muchas organizaciones. Existen conjuntos de software que prueban los servidores y proporcionan información detallada sobre estos protocolos y conjuntos de aplicaciones. Para seguir cumpliendo la normativa o lograr clasificaciones seguras, eliminar o desactivar los protocolos o conjuntos de cifrado más débiles se ha convertido en una necesidad. En el resto de este documento se proporcionan instrucciones sobre cómo habilitar o deshabilitar determinados protocolos y conjuntos de aplicaciones de cifrado.

Las siguientes claves del Registro se encuentran en la misma ubicación: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Use Editor del Registro o PowerShell para habilitar o deshabilitar estos protocolos y conjuntos de aplicaciones de cifrado.

Screenshot of the Registry Editor showing the registry keys located in the Protocols folder.

Habilitar y deshabilitar SSL 3.0

Use las siguientes claves del Registro y sus valores para habilitar y deshabilitar SSL 3.0.

Habilitar SSL 3.0

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000000

Deshabilitar SSL 3.0

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000001

Usar PowerShell para deshabilitar SSL 3.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

Habilitar y deshabilitar TLS 1.0

Use las claves del Registro siguientes y sus valores para habilitar o deshabilitar TLS 1.0.

Importante

Al deshabilitar TLS 1.0, se interrumpe la confianza de AD FS en WAP. Si deshabilita TLS 1.0, debe habilitar la autenticación segura para las aplicaciones. Para más información, consulte Habilitación de la autenticación segura para aplicaciones .NET

Habilitar TLS 1.0

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000000

Deshabilitación de TLS 1.0

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000001

Usar PowerShell para deshabilitar TLS 1.0

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

Habilitar y deshabilitar TLS 1.1

Use las claves del Registro siguientes y sus valores para habilitar y deshabilitar TLS 1.1.

Habilitación de TLS 1.1

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client habilitado 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000000

Deshabilitar TLS 1.1

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000001

Usar PowerShell para deshabilitar TLS 1.1

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

Deshabilitar TLS 1.2

TLS 1.2 está habilitado de forma predeterminada a partir de Windows Server 2012. Puede usar las claves del Registro siguientes y sus valores para deshabilitar TLS 1.2.

Nota:

No se recomienda deshabilitar TLS 1.2.

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client habilitado 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client DisabledByDefault 00000001

Usar PowerShell para deshabilitar TLS 1.2

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

Habilitar o deshabilitar hashes, cifrados y conjuntos de aplicaciones de cifrado

No se admite el control de cifrados, hashes y algoritmos de intercambio de claves, excepto el de Tamaño de clave, a través del Registro. Los hashes, los cifrados y los algoritmos de intercambio de claves se controlan mediante PowerShell, MDM u Orden de conjuntos de cifrado.

Para ver una lista completa de los conjuntos de aplicaciones de cifrado admitidos, consulte Conjuntos de cifrado en TLS/SSL (SChannel SSP). En este documento se proporciona una tabla de conjuntos de aplicaciones habilitados de forma predeterminada y aquellos que se admiten, pero que no están habilitados de forma predeterminada. Para clasificar en orden de prioridad los conjuntos de aplicaciones de cifrado, consulte Priorización de conjuntos de cifrado de SChannel.

Habilitar la autenticación segura para aplicaciones .NET

Las aplicaciones de .NET Framework 3.5, 4.0 y 4.5.x pueden cambiar el protocolo predeterminado a TLS 1.2 habilitando la clave del Registro SchUseStrongCrypto. Estas claves de registro obligarán a las aplicaciones .NET a usar TLS 1.2.

Importante

Para AD FS en Windows Server 2016 y Windows Server 2012 R2, debe usar la clave de .NET Framework 4.0 o 4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

Para .NET Framework 3.5, use la siguiente clave del Registro:

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

Para .NET Framework 4.0 o 4.5.x, use la siguiente clave del Registro:

Ruta de acceso Nombre del valor Datos del valor
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Screenshot of Registry Editor that highlights the SchUseStrongCrypto key

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

Información adicional