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