Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:2016
2019
Subscription Edition
En esta documentación se describen los pasos necesarios para configurar correctamente versiones específicas de TLS en Microsoft Exchange Server. También se detalla cómo optimizar los conjuntos de cifrado y los algoritmos hash utilizados por TLS. Una configuración TLS incorrecta puede provocar varios problemas al interactuar con Microsoft 365 u otros sistemas que requieren un determinado estándar TLS mínimo.
Puede encontrar más información sobre los protocolos TLS en la documentación del protocolo de seguridad de la capa de transporte.
Sugerencia
Puede usar el script HealthChecker de Exchange para comprobar la configuración tls actual del servidor exchange.
Lea detenidamente, ya que algunos pasos solo se pueden realizar en sistemas operativos específicos o versiones Exchange Server. Cada sección comienza con una matriz que muestra si se admite una configuración y si se ha configurado previamente a partir de una determinada versión de Exchange Server, seguida de los pasos para habilitar o deshabilitar el protocolo o característica TLS específico.
Aspectos a tener en cuenta antes de deshabilitar una versión de TLS
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 del catálogo global admiten, por ejemplo, una configuración solo de TLS 1.2 o TLS 1.3?
- ¿Las aplicaciones asociadas admiten, por ejemplo, una configuración de SOLO TLS 1.2 o TLS 1.3?
- ¿El sistema operativo (SO) admite la versión más reciente del protocolo TLS TLS 1.2 a través de WinHTTP?
- ¿Los equilibradores de carga admiten el uso de TLS 1.2 o TLS 1.3?
- ¿Las aplicaciones de escritorio, móviles y exploradores admiten TLS 1.2 o TLS 1.3?
- ¿Los dispositivos como las impresoras multifunción admiten TLS 1.2 o TLS 1.3?
- ¿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 o TLS 1.3 y lejos 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 usados para deshabilitar una versión específica de TLS, como se describe a continuación, se aplican a las siguientes funcionalidades de 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
La compatibilidad con TLS 1.3 se introdujo con Exchange Server actualización acumulativa (CU) 15 de 2019 en Windows Server 2022 y Windows Server 2025, excepto para el protocolo SMTP. La compatibilidad con este protocolo se agregará con una actualización futura. La compatibilidad con TLS 1.2 se introdujo 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 últimas actualizaciones 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 reciben 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 CU13 o anterior | Cualquiera | Yes | Parcialmente (SchUseStrongCrypto se debe configurar manualmente) |
Exchange Server 2016 | Cualquiera | Yes | No (se usan los valores predeterminados del sistema operativo) |
Exchange Server 2013 | Cualquiera | Yes | No (se usan los valores predeterminados del sistema operativo) |
El SystemDefaultTlsVersions
valor del Registro define qué valores predeterminados de versión del protocolo de seguridad usa .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.3, 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, incluidos TLS 1.2 y TLS 1.3.
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
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.3
En la tabla siguiente se muestran las combinaciones de Exchange Server/Windows Server en las que se admite TLS 1.3. La tabla también muestra la configuración predeterminada:
Exchange Server | Windows Server | Compatible | Configurado de forma predeterminada |
---|---|---|---|
Exchange Server 2019 CU15 | Windows Server 2022/2025 | Yes | Sí (enabled ) |
Exchange Server 2019 CU15 | Windows Server 2019 | No | N/D |
Exchange Server 2019 CU14 o anterior | Cualquiera | No | N/D |
Exchange Server 2016 | Cualquiera | No | N/D |
Exchange Server 2013 | Cualquiera | No | N/D |
Habilitar TLS 1.3
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para habilitar TLS 1.3 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 1 -Type DWord
Según RFC 8446 TLS 1.3 usa el mismo espacio de conjunto de cifrado que las versiones anteriores de TLS. Sin embargo, los conjuntos de cifrado TLS 1.3 se definen de forma diferente, especificando solo los cifrados simétricos y no se pueden usar para TLS 1.2. De forma similar, los conjuntos de cifrado para TLS 1.2 y versiones inferiores no se pueden usar con TLS 1.3.
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para configurar los conjuntos de cifrado TLS 1.3:
Enable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -Position 0
Enable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -Position 1
Deshabilitar TLS 1.3
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar EXPLÍCITAmente TLS 1.3 para las conexiones de cliente y servidor:
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 0 -Type DWord
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para quitar los conjuntos de cifrado TLS 1.3:
Disable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384
Disable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256
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 explícitamente 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 explícitamente 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 explícitamente 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
Pasos para configurar el modo estricto de renegociación tls
El modo estricto TLS es una característica de seguridad que garantiza que solo los clientes con las actualizaciones de seguridad necesarias puedan establecer y renegociar sesiones TLS con el servidor.
En la tabla siguiente se muestran las combinaciones 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í (enabled ) |
Exchange Server 2016 | Cualquiera | Yes | No |
Exchange Server 2013 | Cualquiera | No | N/D |
Habilitación del modo estricto de renegociación tls
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
Deshabilitar el modo estricto de renegociación tls
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar explícitamente el modo estricto de renegociación:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 1 -Type DWord
Validación del uso de TLS 1.2 o TLS 1.3
Una vez habilitado TLS 1.2 o TLS 1.3, puede ser útil validar que el trabajo se realizó correctamente y el sistema puede negociar TLS 1.2 o TLS 1.3 para 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.
Registro de IIS
El equipo de Internet Information Services (IIS) ha agregado funcionalidades a Windows Server 2012 R2 o versiones posteriores 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 Windows Server versión 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.
Herramientas para desarrolladores 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
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.
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 que usa el cliente. Microsoft está investigando la posibilidad de agregar esta información en una actualización futura.
Registro SMTP
Los registros SMTP de Exchange Server contienen el protocolo de cifrado y otra información relacionada con el cifrado que se usa 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 |
Nota:
La compatibilidad con TLS 1.3 de SMTP se incluirá en una próxima actualización de Exchange 2019 CU15.
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 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.
Procedimientos recomendados de algoritmos de cifrado y hash
Los pasos de esta sección se pueden usar para configurar Exchange Server 2016 con el mismo conjunto de algoritmos de cifrado y hash que Exchange Server 2019. Estos pasos no son necesarios para Exchange Server 2019, ya que ya incluye una configuración preconfigurada de algoritmo hash y cifrado.
Como requisito previo, primero debe configurar TLS 1.2 y, a continuación, deshabilitar TLS 1.0 y TLS 1.1. Considere la posibilidad de aplicar la siguiente configuración por separado de deshabilitar TLS 1.0 y TLS 1.1 para aislar los problemas de configuración con clientes problemáticos.
Habilitar conjuntos de cifrado recomendados
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
Ejecute los siguientes comandos desde una ventana de PowerShell con privilegios elevados para configurar los conjuntos de cifrado recomendados.
Nota:
Es posible configurar los conjuntos de cifrado mediante el uso de un objeto directiva de grupo (GPO). No se pueden configurar manualmente mediante los cmdlets Enable-TlsCipherSuite o Disable-TLSCipherSuite si ya se configuraron a través de GPO o si la entrada del Functions
Registro ya existe en la HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
ruta de acceso.
En primer lugar, deshabilite todos los conjuntos de cifrado:
foreach ($suite in (Get-TLSCipherSuite).Name) {
if (-not([string]::IsNullOrWhiteSpace($suite))) {
Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
}
}
A continuación, vuelva a habilitar solo los conjuntos de cifrado TLS 1.2 recomendados:
$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
Ejecute el siguiente comando desde una ventana de PowerShell con privilegios elevados para deshabilitar explícitamente 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
Se recomienda deshabilitar la curva elíptica curve25519
, ya que no está disponible en el modo FIPS.
Puede encontrar más información en las curvas elípticas de TLS en Windows 10 versión 1607 y versiones 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