Compartir a través de


Exchange Server procedimientos recomendados de configuración de TLS

SE APLICA A:yes-img-162016 yes-img-192019 yes-img-seSubscription 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 Toolsque 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:

  1. Abra el explorador Microsoft Edge y establezca una conexión HTTPS a OWA o ECP.

  2. Presione CTRL + SHIFT + I para abrir .Developer Tools

  3. Haga clic en el + símbolo de la esquina superior derecha.

  4. Haga clic en en Security el menú desplegable.

  5. 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 systembusque 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.

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