Exchange Server procedimientos recomendados de configuración de TLS
En esta documentación se describen los pasos necesarios para configurar correctamente (habilitar o deshabilitar) versiones específicas de TLS en Exchange Server 2013, Exchange Server 2016 y Exchange Server 2019. En el artículo también se explica cómo optimizar los conjuntos de cifrado y los algoritmos hash utilizados por TLS. Si TLS no está configurado correctamente, puede enfrentarse a varios problemas al interactuar con Microsoft 365 u otros sistemas, que se configuran de forma que requieran un determinado estándar TLS mínimo.
Si desea obtener más información sobre los protocolos TLS (y SSL), lea el artículo Protocolo de seguridad de la capa de transporte .
Importante
Lea detenidamente, ya que algunos de los pasos descritos aquí solo se pueden realizar en sistemas operativos específicos o versiones específicas de Exchange Server.
Al principio de cada sección hay una matriz que muestra si se admite o no una configuración y si ya se ha configurado previamente desde una determinada versión de Exchange Server.
Aspectos a tener en cuenta antes de deshabilitar una versión de TLS
Sugerencia
Puede usar el script HealthChecker de Exchange para comprobar la configuración tls actual del servidor exchange.
Asegúrese de que todas las aplicaciones admiten las versiones de TLS, que permanecen habilitadas. Consideraciones como (pero sin limitarse a):
- ¿Los controladores de dominio y los servidores de catálogo global admiten, por ejemplo, una configuración de SOLO TLS 1.2?
- ¿Las aplicaciones asociadas (como SharePoint, Lync, Skype Empresarial, etc.) admiten, por ejemplo, una configuración solo de TLS 1.2?
- ¿Ha actualizado los escritorios anteriores de Windows 7 con Outlook para admitir TLS 1.2 a través de WinHTTP?
- ¿Los equilibradores de carga admiten el uso de TLS 1.2?
- ¿Las aplicaciones de escritorio, móvil y explorador admiten TLS 1.2?
- ¿Los dispositivos como las impresoras multifunción admiten TLS 1.2?
- ¿Las aplicaciones internas de terceros o personalizadas que se integran con Exchange Server o Microsoft 356 admiten una implementación tls fuerte?
Por lo tanto, se recomienda encarecidamente que los pasos que realice para realizar la transición a TLS 1.2 y alejados de los protocolos de seguridad anteriores se realicen primero en laboratorios que simulan los entornos de producción antes de empezar a implementarlos lentamente en producción.
Los pasos que se usan para deshabilitar una versión específica de TLS, como se describe a continuación, se aplicarán a las siguientes funcionalidades Exchange Server:
- Protocolo simple de transporte de correo (SMTP)
- Conectividad de cliente de Outlook (Outlook en cualquier lugar/ MAPI/HTTP)
- Exchange Active Sync (EAS)
- Outlook en la Web (OWA)
- Centro de Administración de Exchange (EAC) y Exchange Panel de control (ECP)
- Detección automática
- Servicios Web Exchange (EWS)
- REST (Exchange Server 2016/2019)
- Uso de PowerShell por Exchange a través de HTTPS
- POP e IMAP
Requisitos previos
Se agregó compatibilidad con TLS 1.2 con Exchange Server 2013 CU19 y Exchange Server 2016 CU8. Exchange Server 2019 admite TLS 1.2 de forma predeterminada.
Exchange Server no se puede ejecutar sin Windows Server y, por lo tanto, es importante tener instaladas las actualizaciones más recientes del sistema operativo para ejecutar una implementación de TLS estable y segura.
También es necesario tener la versión más reciente de .NET Framework y las revisiones asociadas compatibles con la CU .
En función del sistema operativo, asegúrese de que las siguientes actualizaciones también están en su lugar (deben instalarse si el servidor está actual en Windows Novedades):
Si el sistema operativo está Windows Server 2012 o Windows Server 2012 R2, KB3161949 y KB2973337 deben instalarse antes de que TLS 1.2 se pueda habilitar.
Advertencia
Windows Server 2012 y Windows Server 2012 soporte extendido de R2 finalizaron el 10 de octubre de 2023. Estos servidores ya no recibirán Seguridad de Windows Novedades sin una ESU. Se recomienda encarecidamente migrar a una versión compatible lo antes posible.
Asegúrese de reiniciar el Exchange Server una vez aplicada la configuración de TLS. Se activa después de reiniciar el servidor.
Preparación de .NET Framework para heredar valores predeterminados de Schannel
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server con la configuración predeterminada de herencia Schannel de .NET Framework:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 CU14 o posterior | Cualquiera | Yes | Sí (solo nuevas instalaciones) |
Exchange Server 2019 | Cualquiera | Yes | Parcialmente (SchUseStrongCrypto se debe configurar manualmente) |
Exchange Server 2016 | Cualquiera | Yes | No (se usarán los valores predeterminados del sistema operativo) |
Exchange Server 2013 | Cualquiera | Yes | No (se usarán los valores predeterminados del sistema operativo) |
El SystemDefaultTlsVersions
valor del Registro define qué valores predeterminados de versión del protocolo de seguridad usará .NET Framework 4.x. Si el valor está establecido en 1
, .NET Framework 4.x hereda sus valores predeterminados de los valores del Registro de Canal seguro de Windows (Schannel DisabledByDefault
). Si el valor no está definido, se comporta como si el valor estuviera establecido en 0
.
La criptografía segura (configurada por el valor del SchUseStrongCrypto
Registro) usa protocolos de red más seguros (TLS 1.2 y TLS 1.1) y bloquea los protocolos que no son seguros.
SchUseStrongCrypto
afecta solo a las conexiones de cliente (salientes) de la aplicación. Al configurar .NET Framework 4.x para heredar sus valores de Schannel, se obtiene la capacidad de usar las versiones más recientes de TLS compatibles con el sistema operativo, incluido TLS 1.2.
Habilitación de la herencia Schannel de .NET Framework 4.x
Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar la herencia Schannel de .NET Framework 4.x:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Habilitación de la herencia Schannel de .NET Framework 3.5
Nota:
Exchange Server 2013 y versiones posteriores no necesitan esta configuración. Sin embargo, se recomienda configurarlo de forma idéntica a la configuración de .NET 4.x para garantizar una configuración coherente.
Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar la herencia Schannel de .NET Framework 3.5:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Pasos para configurar TLS 1.2
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server en las que se admite TLS 1.2. La tabla también muestra la configuración predeterminada:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Yes | Sí (enabled ) |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Cualquiera | Yes | No |
Habilitar TLS 1.2
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para habilitar TLS 1.2 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 1 -Type DWord
Deshabilitar TLS 1.2
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar TLS 1.2 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 0 -Type DWord
Pasos para configurar TLS 1.1
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server en las que se admite TLS 1.1. La tabla también muestra la configuración predeterminada:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Yes | Sí (disabled ) |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Cualquiera | Yes | No |
Habilitar TLS 1.1
Nota:
La implementación de Microsoft TLS 1.1 no tiene vulnerabilidades de seguridad conocidas. Pero debido a la posibilidad de futuros ataques de degradación de protocolos y otras vulnerabilidades de TLS, se recomienda planear y deshabilitar TLS 1.1 cuidadosamente. El error al planear cuidadosamente puede provocar que los clientes pierdan conectividad.
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para habilitar TLS 1.1 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 1 -Type DWord
Deshabilitar TLS 1.1
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar TLS 1.1 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 0 -Type DWord
Pasos para configurar TLS 1.0
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server en las que se admite TLS 1.0. La tabla también muestra la configuración predeterminada:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Yes | Sí (disabled ) |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Cualquiera | Yes | No |
Habilitar TLS 1.0
Nota:
La implementación de TLS 1.0 de Microsoft no tiene vulnerabilidades de seguridad conocidas. Pero debido a la posibilidad de futuros ataques de degradación de protocolos y otras vulnerabilidades de TLS, se recomienda planear y deshabilitar TLS 1.0 cuidadosamente. El error al planear cuidadosamente puede provocar que los clientes pierdan conectividad.
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para habilitar TLS 1.0 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 1 -Type DWord
Deshabilitar TLS 1.0
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar TLS 1.0 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 0 -Type DWord
Procedimientos recomendados de algoritmos de cifrado y hash
Importante
Los pasos descritos en esta sección son opcionales a los pasos descritos anteriormente. Es necesario configurar TLS 1.2 y deshabilitar completamente TLS 1.0 y 1.1 antes de realizar los pasos siguientes.
Considere la posibilidad de aplicar esta configuración de forma independiente a la deshabilitación de TLS 1.0 y TLS 1.1 para aislar los problemas de configuración con clientes problemáticos.
Configuración del modo estricto de renegociación tls de cliente y servidor
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server con la configuración predeterminada del modo estricto de renegociación TLS:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Yes | Sí (strict mode enabled ) |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Cualquiera | No | N/D |
Esta configuración se usa para configurar el modo estricto de renegociación tls. Esto significa que el servidor solo permite que los clientes a los que se aplica esta actualización de seguridad configuren y renegocien las sesiones TLS. El servidor no permite que los clientes a los que no se aplica esta actualización de seguridad configuren la sesión tls. En este caso, el servidor finaliza dichas solicitudes de los clientes.
De forma similar, si esta actualización de seguridad se aplica al cliente y el cliente está en modo estricto, el cliente puede configurar y renegociar sesiones TLS con todos los servidores a los que se aplica esta actualización de seguridad. Los clientes no pueden configurar sesiones TLS en absoluto con servidores a los que no se aplica esta actualización de seguridad. El cliente no puede continuar con un intento de negociación tls con dichos servidores.
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para habilitar el modo estricto de renegociación:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 0 -Type DWord
Habilitar conjuntos de cifrado recomendados
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server con la configuración predeterminada de conjuntos de cifrado recomendados:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Sí | Sí |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Windows Server 2012 (R2) | Yes | No |
Windows Server 2012 y Windows Server 2012 R2
Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar los conjuntos de cifrado recomendados:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" -Name "Functions" -PropertyType MultiString -Value "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" -Force
Windows Server 2016 o superior
Nota:
Es posible configurar los conjuntos de cifrado mediante el uso de un objeto directiva de grupo (GPO). No se pueden configurar manualmente a través del Enable/Disable-TLSCipherSuite
cmdlet si ya se han configurado a través de GPO o si la clave del Functions
Registro ya existe en la siguiente ruta de acceso: HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar los conjuntos de cifrado recomendados.
La primera tarea consiste en deshabilitar todos los conjuntos de cifrado existentes:
foreach ($suite in (Get-TLSCipherSuite).Name) {
if (-not([string]::IsNullOrWhiteSpace($suite))) {
Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
}
}
La segunda tarea consiste en habilitar solo los conjuntos de cifrado recomendados de TLS 1.2:
$cipherSuites = @('TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256')
$suiteCount = 0
foreach ($suite in $cipherSuites) {
Enable-TlsCipherSuite -Name $suite -Position $suiteCount
$suiteCount++
}
Deshabilitación de cifrados y hash obsoletos
En la tabla siguiente se muestran las combinaciones Exchange Server/Windows Server con la configuración predeterminada de cifrados y hashes obsoletos:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Sí | Sí |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Windows Server 2012 (R2) | Yes | No |
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar cifrados y hash obsoletos:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Hashes" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Ciphers" -ErrorAction SilentlyContinue
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("DES 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("NULL")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 64/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 128/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("Triple DES 168")
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes" -Name "MD5" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5" -Name "Enabled" -Value 0 -Type DWord
Configuración de la preferencia de curva elíptica
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server con la configuración predeterminada de la preferencia de curva elíptica:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 | Cualquiera | Sí | Sí |
Exchange Server 2016 | Windows Server 2016 | Yes | No |
Exchange Server 2013 | Cualquiera | No | N/D |
Nota:
Se recomienda deshabilitar la curva elíptica curve25519
, ya que no está disponible en el modo FIPS. Para obtener más información, vea: Curvas elípticas tls en Windows 10 versión 1607 y posteriores
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para configurar la preferencia de curva elíptica:
Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1
Validación de que se usa TLS 1.2
Una vez habilitado TLS 1.2, puede resultar útil validar que el trabajo se realizó correctamente y el sistema puede negociar TLS 1.2 para las conexiones entrantes (servidor) y salientes (cliente). Hay algunos métodos disponibles para validar el uso de TLS; algunos de ellos se describen en las secciones siguientes.
Muchos protocolos usados en Exchange Server se basan en HTTP y, por tanto, atraviesan los procesos de IIS en el servidor Exchange. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, descargas de libreta de direcciones sin conexión y Detección automática son ejemplos de protocolos basados en HTTP utilizados por Exchange Server.
Registros de Internet Information Services (IIS)
El equipo de IIS ha agregado funcionalidades a Windows Server 2012 R2 o posterior para registrar campos personalizados relacionados con las versiones del protocolo de cifrado y los cifrados. Se recomienda revisar el blog para obtener documentación sobre cómo habilitar estos campos personalizados y empezar a analizar los registros para obtener información sobre las conexiones entrantes en el entorno relacionadas con los protocolos basados en HTTP.
Estos campos personalizados de IIS no existen para la versión de Windows Server anterior Windows Server 2012 R2. Es posible que el equilibrador de carga o los registros de firewall puedan proporcionar esta información. Solicite instrucciones a los proveedores para determinar si sus registros pueden proporcionar esta información.
Comprobación de la versión de TLS mediante Herramientas de desarrollo de Microsoft Edge
Puede usar , Developer Tools
que están disponibles con Microsoft Edge, para comprobar la versión de TLS que se usó para establecer una conexión segura al conectarse a Outlook en la Web (OWA) o al Centro de Administración Exchange (ECP). Para ello, siga estos pasos:
- Abra el explorador Microsoft Edge y establezca una conexión HTTPS a OWA o ECP.
- Presione
CTRL + SHIFT + I
para abrir .Developer Tools
- Haga clic en el
+
símbolo de la esquina superior derecha. - Haga clic en en
Security
el menú desplegable. - Compruebe la versión de TLS en la
Connection - secure connection settings
sección .
Encabezados de mensaje (Exchange Server 2016 o posterior)
Los datos de encabezado de mensaje de Exchange Server 2016 o posterior proporcionan el protocolo negociado y utilizado cuando el host de envío y recepción intercambia un fragmento de correo. Puede usar el Analizador de encabezados de mensaje para obtener una visión general clara de cada salto.
Nota:
Hay una excepción conocida en el ejemplo de encabezados de mensaje. Cuando un cliente envía un mensaje mediante la conexión a un servidor mediante SMTP autenticado (también conocido como protocolo de envío de cliente SMTP), la versión de TLS en los encabezados de mensajes no muestra la versión tls correcta usada por el cliente o dispositivo de un cliente. Microsoft está investigando la posibilidad de agregar esta información en una actualización futura.
Flujo de correo a través del registro SMTP
Los registros SMTP de Exchange Server 2013 y versiones posteriores contendrá el protocolo de cifrado y otra información relacionada con el cifrado utilizada durante el intercambio de correo electrónico entre dos sistemas.
Cuando el servidor sea , SMTP receiving system
busque en Server value
el registro en función de la versión de TLS usada. Si el servidor es SMTP sending system
, busque en Client value
el registro en función de la versión de TLS utilizada.
Versión TLS | Valor del servidor | Valor de cliente |
---|---|---|
TLS 1.0 | SP_PROT_TLS1_0_SERVER | SP_PROT-TLS1_0_CLIENT |
TLS 1.1 | SP_PROT_TLS1_1_SERVER | SP_PROT-TLS1_1_CLIENT |
TLS 1.2 | SP_PROT_TLS1_2_SERVER | SP_PROT-TLS1_2_CLIENT |
En el ejemplo siguiente se buscan las conexiones que se realizaron mediante el protocolo TLS 1.0 en los archivos de registro de un servidor de Exchange, que ejecuta el rol de buzón:
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"
Ejemplo de búsqueda de archivos de registro en un servidor exchange, que ejecuta el rol de transporte perimetral, para las conexiones que se realizaron mediante el protocolo TLS 1.1:
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"
POP e IMAP
No existe ningún registro que exponga la versión del protocolo de cifrado usada para los clientes POP e IMAP. Para capturar esta información, es posible que tenga que capturar un seguimiento de Netmon desde el servidor o inspeccionar el tráfico a medida que fluye a través del equilibrador de carga o el firewall donde se lleva a cabo el puente HTTPS.