Ahora Microsoft tiene el placer de anunciar una nueva característica eficaz en Windows para facilitar la transición a un entorno TLS 1.2+. A partir de KB4490481, Windows Server 2019 ahora le permite evitar que las versiones débiles de TLS se usen con los certificados individuales que designe. Llamamos a esta característica "Deshabilitar TLS heredado" y aplica de forma eficaz una versión de TLS y un límite inferior de conjunto de cifrado en cualquier certificado que seleccione.
Deshabilitar TLS heredado también permite que un servicio en línea ofrezca dos agrupaciones diferentes de puntos de conexión en el mismo hardware: una que solo permita el tráfico de TLS 1.2 y versiones posteriores y otra que admita el tráfico de TLS 1.0 heredado. Los cambios se implementan en HTTP.sys y, con la emisión de certificados adicionales, permiten que el tráfico se enrute al nuevo punto de conexión con la versión de TLS adecuada. Antes de este cambio, la implementación de estas funcionalidades requeriría una inversión de hardware adicional, ya que esta configuración solo era posible en todo el sistema mediante el Registro.
Detalles del escenario de la característica
Un escenario de implementación común presenta un conjunto de hardware en un centro de datos con clientes con necesidades variadas: algunos necesitan TLS 1.2 como mínimo obligatorio de inmediato, y otros no han terminado de quitar las dependencias de TLS 1.0. En la figura 1 se muestra la selección de la versión de TLS y el enlace de certificados como acciones claramente independientes. Esta es la funcionalidad predeterminada:
Figura 1: selección de versión de TLS predeterminada y funcionalidad de enlace de certificados
secure.contoso.com dirige a los clientes a un punto de conexión de servicio que solo admite TLS 1.2 y versiones posteriores.
legacy.contoso.com dirige a los clientes con necesidades de TLS 1.0 heredado (como aquellos que aún están migrando a TLS 1.2) a un punto de conexión que admite TLS 1.0 durante un tiempo limitado. Esto permite a los clientes finalizar las pruebas de disponibilidad de TLS 1,2 sin interrumpir el servicio y sin bloquear a otros clientes que estén listos para TLS 1.2.
Tradicionalmente, se necesitaban dos hosts físicamente independientes para controlar todo el tráfico y proporcionar el cumplimiento de la versión de TLS, dado que el mantenimiento de las solicitudes de TLS con una versión de protocolo mínima requiere deshabilitar los protocolos más débiles a través de la configuración del registro en todo el sistema. Hemos hecho que esta funcionalidad esté más arriba en la pila, donde la sesión de TLS está enlazada al certificado, por lo que se puede asignar una versión de TLS mínima específica como se describe en la figura 2 a continuación.
Figura 2: característica Deshabilitar TLS heredado que aplica la versión de TLS mínima para un certificado seleccionado, Secure.contoso.com.
Guía para la implementación de la característica
La característica Deshabilitar TLS heredado se puede implementar a través de la interfaz de usuario del servidor de Internet Information Services (IIS), a través de comandos de PowerShell o las API HTTP.sys de C++.
Opción #1: configuración de la UI de IIS (disponible en Windows 10 versión 2004 y Windows Server versión 2004 y posteriores)
Cree un enlace de sitio para el certificado SSL "secure.contoso.com", como se muestra a continuación, active la casilla "Deshabilitar TLS heredado" y haga clic en Aceptar.
Opción #2: PowerShell (disponible en Windows 10 versión 2004 y Windows Server versión 2004 y posteriores)
En PowerShell, puede hacer referencia a las marcas de SSL de la siguiente manera:
HTTP_SERVICE_CONFIG_SSL_FLAG_ENABLE_SESSION_TICKET: habilitar o deshabilitar el vale de sesión para un punto de conexión de SSL determinado.
HTTP_SERVICE_CONFIG_SSL_FLAG_LOG_EXTENDED_EVENTS: habilitar o deshabilitar el registro de eventos extendido para un punto de conexión de SSL determinado. Los eventos adicionales se registran en el Registro de eventos de Windows.
A partir de ahora solo se admite un evento que se registra cuando se produce un error en el protocolo de enlace SSL.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS: habilitar o deshabilitar las versiones de TLS heredadas para un punto de conexión de SSL determinado. Al establecer esta marca, se deshabilita TLS 1.0 o 1.1 para ese punto de conexión y se restringen los conjuntos de cifrado que se pueden usar para los conjuntos de cifrado HTTP2.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_TLS12: habilitar o deshabilitar TLS 1.2 para un punto de conexión de SSL determinado.
HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_HTTP2: habilitar o deshabilitar HTTP/2 para un punto de conexión de SSL determinado.
La manera más sencilla de habilitar o deshabilitar esta funcionalidad por cada certificado en C++ es con la marca HTTP_SERVICE_CONFIG_SSL_FLAG_DISABLE_LEGACY_TLS que proporciona la API de HTTP.sys HttpSetServiceConfiguration.
Cuando se ha establecido Deshabilitar TLS heredado, se aplican las restricciones siguientes:
Deshabilitar los protocolos SSL2, SSL3, TLS 1.0 y TLS 1.1.
Deshabilitar los cifrados DES, 3DES y RC4 (de modo que solo se use AES).
Deshabilitar el cifrado AES con el modo de encadenamiento CBC (de modo que solo se use AES GCM).
Deshabilitar el intercambio de claves RSA.
Deshabilitar el intercambio de claves DH con un tamaño de clave inferior a 2048.
Deshabilitar los intercambios de claves ECDH con un tamaño de clave inferior a 224.
Próximamente habrá disponible documentación oficial de estos cambios en docs.Microsoft.com.
Pasos siguientes para el cumplimiento de la versión de TLS
Deshabilitar TLS heredado proporciona nuevas capacidades eficaces para aplicar conjuntos de versión de TLS y cifrado en enlaces de punto de conexión o de certificado específicos.
También requiere la planeación de la nomenclatura de los certificados emitidos con esta funcionalidad habilitada. Entre algunas de las consideraciones se incluyen:
¿Deseo que la ruta de acceso predeterminada a mi punto de conexión de servicio aplique TLS 1.2 hoy, y que proporcione un certificado diferente como punto de acceso "heredado" de copia de seguridad para los usuarios que necesitan TLS 1.0?
¿Debe mi certificación predeterminada de Contoso ya en uso utilizar Deshabilitar TLS heredado? Si es así, es posible que deba proporcionar un certificado de legacy.contoso.com y enlazarlo a un punto de conexión que permita TLS 1.0.
¿Cómo puedo comunicar mejor el uso recomendado de estos certificados a mis clientes?
Puede sacar provecho de esta característica para satisfacer las necesidades de grandes grupos de clientes: aquellos que tengan la obligación de usar TLS 1.2 o versiones posteriores y los que sigan trabajando en la migración de TLS 1.0, todo ello sin un gasto de hardware adicional. Además de la disponibilidad actual del enlace de la versión de TLS por certificado en Windows Server 2019, Microsoft buscará que Deshabilitar TLS heredado esté disponible en sus servicios en línea en función de la demanda de los clientes.
Como administrador híbrido de Windows Server, integra los entornos de Windows Server con servicios de Azure y administra Windows Server en redes locales.