Al configurar un listener HTTPS para una instancia de CLB, la directiva de seguridad TLS determina qué versiones del protocolo TLS y conjuntos de cifrado se utilizan durante la negociación TLS con los clientes. CLB ofrece varias directivas de seguridad TLS predefinidas.
Funcionamiento
Una directiva de seguridad TLS para CLB define las versiones del protocolo TLS y los conjuntos de cifrado compatibles para la negociación TLS. Durante el handshake TLS, el cliente envía una lista de sus versiones de protocolo y conjuntos de cifrado compatibles en un mensaje Client Hello. Según la directiva, CLB selecciona una combinación de versión de protocolo y conjunto de cifrado que sea compatible con ambos extremos a partir de la lista del cliente, y responde con un mensaje Server Hello. Esta combinación determina los pasos posteriores, como el intercambio de claves y la generación de claves de sesión.
Directivas de seguridad TLS
Los estándares de cumplimiento de seguridad pueden requerir que su instancia de CLB utilice una directiva de seguridad TLS específica. La siguiente tabla describe las versiones del protocolo TLS y los conjuntos de cifrado compatibles con cada directiva para ayudarle a seleccionar la que mejor se adapte a sus requisitos. CLB no es compatible con custom TLS security policies. Si necesita esta funcionalidad, utilice Application Load Balancer (ALB) o Network Load Balancer (NLB).
Para aplicaciones orientadas a Internet sin requisitos especiales de compatibilidad, se recomienda utilizar la directiva tls_cipher_policy_1_2 o una más estricta.
Configurar una directiva de seguridad TLS
Consola
Al agregar un HTTPS listener, haga clic en Modify junto a Advanced Settings en la pestaña Certificate Management Service. En la sección expandida, seleccione una TLS Security Policy.
Para modificar una directiva de seguridad TLS, vaya a la pestaña Listener en la página de detalles de la instancia y haga clic en el nombre del listener HTTPS deseado para abrir el cuadro de diálogo Listener Details. En la sección SSL Certificate, modifique la TLS Security Policy.
API
Al llamar a CreateLoadBalancerHTTPSListener para crear un listener HTTPS o a SetLoadBalancerHTTPSListenerAttribute para modificarlo, especifique la directiva de seguridad TLS en el parámetro TLSCipherPolicy.
Facturación
Las directivas de seguridad TLS son gratuitas. Sin embargo, el uso de instancias de CLB genera fees.
Preguntas frecuentes
Directivas de seguridad TLS personalizadas en CLB
No. CLB solo admite directivas de seguridad TLS predefinidas.
Si necesita una directiva de seguridad TLS personalizada, por ejemplo, para cumplir con requisitos específicos de cumplimiento de seguridad, utilice uno de los siguientes productos:
ALB: Puede configurar TLS security policies personalizadas para listeners HTTPS.
NLB: Puede configurar TLS security policies personalizadas para listeners TCP/SSL.
¿Por qué no surte efecto la configuración ssl_protocols de Nginx en mi backend?
CLB finaliza las conexiones TLS. La versión de TLS visible para los clientes la determina la directiva de seguridad TLS de CLB, no la directiva ssl_protocols en sus servidores backend. Para cambiar las versiones de TLS compatibles, modifique la directiva de seguridad TLS del listener HTTPS correspondiente: en la pestaña Listener, haga clic en el nombre del listener HTTPS para abrir el cuadro de diálogo Listener Details y cambie la directiva de seguridad TLS en la sección SSL Certificate.
¿Por qué mi navegador sigue mostrando una advertencia de seguridad aunque CLB tenga un certificado válido vinculado?
A continuación se describen las posibles causas y sugerencias de solución:
Suite de cifrado débil en la directiva de seguridad TLS: Si la directiva de seguridad TLS de su listener HTTPS está establecida en
tls_cipher_policy_1_0u otra directiva que incluya suites de cifrado débiles (comoDES-CBC3-SHA), los navegadores pueden mostrar una advertencia de seguridad porque estas suites no admiten Perfect Forward Secrecy (PFS). Se recomienda ir a la página de detalles de la instancia, hacer clic en la pestaña Listener, hacer clic en el nombre del listener HTTPS objetivo para abrir el cuadro de diálogo Listener Details y cambiar la TLS Security Policy atls_cipher_policy_1_2_stricten la sección SSL Certificate.Reglas de reenvío o extensiones de dominio obsoletas: Si sus reglas de reenvío o extensiones de dominio contienen entradas antiguas no relacionadas con el dominio de acceso actual, pueden producirse errores de discrepancia de dominio del certificado. Elimine del listener cualquier regla de reenvío innecesaria.
Discrepancia de dominio del certificado o certificado caducado: Compruebe que el certificado de servidor vinculado al listener cubra el dominio de acceso y no haya caducado.
Caché del navegador: Borre la caché de su navegador e inténtelo de nuevo.
Se recomienda seguir el orden de solución de problemas indicado anteriormente.
¿Cómo corrijo la vulnerabilidad CVE-2016-2183?
CVE-2016-2183 es una vulnerabilidad de divulgación de información SSL/TLS conocida como ataque Sweet32. La causa principal es que la directiva de seguridad TLS incluye la suite de cifrado DES-CBC3-SHA (3DES). Las directivas tls_cipher_policy_1_0, tls_cipher_policy_1_1 y tls_cipher_policy_1_2 incluyen esta suite de cifrado.
Para corregir esta vulnerabilidad:
Inicie sesión en la consola de CLB y vaya a la instancia de CLB objetivo.
En la pestaña Listener, haga clic en el nombre del listener HTTPS objetivo para abrir el cuadro de diálogo Listener Details.
En la sección SSL Certificate, cambie la TLS Security Policy a
tls_cipher_policy_1_2_strictotls_cipher_policy_1_2_strict_with_1_3.Confirme y envíe el cambio. Una vez que el cambio surta efecto, se eliminará la suite de cifrado
DES-CBC3-SHAy se corregirá CVE-2016-2183.
Se recomienda realizar este cambio fuera del horario pico. Si surge algún problema después del cambio, puede revertirlo inmediatamente modificando la configuración del listener.
Entorno de producción
Versión del protocolo TLS: Si su aplicación no tiene requisitos especiales de compatibilidad, utilice TLS 1.2 y TLS 1.3 para obtener una seguridad óptima.
Reversión: Si surge algún problema tras ajustar la directiva de seguridad TLS, puede revertir el cambio inmediatamente modificando la configuración del listener. Realice estos cambios fuera del horario pico.
Algoritmo de intercambio de claves: A menos que su aplicación tenga requisitos específicos de compatibilidad, evite las siguientes suites de cifrado basadas en RSA en un entorno de producción:
AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA256,AES256-SHA256,AES128-SHA,AES256-SHAyDES-CBC3-SHA. Dado que no admiten Perfect Forward Secrecy (PFS), estas suites son vulnerables a ataques de canal lateral. Priorice las suites de cifrado que utilizan ECDHE o DHE para el intercambio de claves.-
Calificación de SSL Labs: Si su prueba de SSL Labs devuelve una calificación B y no se admite TLS 1.3, seleccione
tls_cipher_policy_1_2_strict_with_1_3para habilitar TLS 1.3 y obtener una calificación A. CLB finaliza las conexiones TLS; la versión de TLS negociada con los clientes la determina la directiva de seguridad TLS de CLB, no la configuraciónssl_protocolsen los servidores backend.La siguiente tabla muestra la calificación de SSL Labs asociada a cada directiva:
Directiva de seguridad TLS
Compatibilidad con TLS 1.3
Calificación de SSL Labs
tls_cipher_policy_1_0
No
B
tls_cipher_policy_1_1
No
B
tls_cipher_policy_1_2
No
B
tls_cipher_policy_1_2_strict
No
B
tls_cipher_policy_1_2_strict_with_1_3
Sí
A
Recomendaciones de seguridad
tls_cipher_policy_1_0, tls_cipher_policy_1_1 y tls_cipher_policy_1_2 incluyen la suite de cifrado DES-CBC3-SHA (nombre IANA: 3DES_EDE_CBC_SHA). Esta suite utiliza un cifrado por bloques de 64 bits y es vulnerable al ataque Sweet32 (CVE-2016-2183). Actualice su directiva de seguridad TLS a tls_cipher_policy_1_2_strict o superior para eliminar este riesgo.
|
Directiva |
Incluye DES-CBC3-SHA |
Recomendación |
|
tls_cipher_policy_1_0 |
Sí |
Actualización obligatoria: riesgo Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_1 |
Sí |
Actualización obligatoria: riesgo Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_2 |
Sí |
Actualización obligatoria: riesgo Sweet32 (CVE-2016-2183) |
|
tls_cipher_policy_1_2_strict |
No |
Segura |
|
tls_cipher_policy_1_2_strict_with_1_3 |
No |
Segura |
Actualización mediante la consola
Inicie sesión en la consola de CLB y vaya a la instancia objetivo.
En la pestaña Listener, haga clic en el nombre del listener HTTPS objetivo para abrir el cuadro de diálogo Listener Details.
En la sección SSL Certificate, cambie la TLS Security Policy a
tls_cipher_policy_1_2_strict.Confirme y envíe el cambio.
Actualización mediante la API
Llame a SetLoadBalancerHTTPSListenerAttribute y establezca TLSCipherPolicy en tls_cipher_policy_1_2_strict.
Consideraciones de compatibilidad
La actualización a tls_cipher_policy_1_2_strict elimina la compatibilidad con TLS 1.0, TLS 1.1 y suites de cifrado heredadas, incluida DES-CBC3-SHA. Antes de actualizar:
Compruebe que sus clientes admitan TLS 1.2.
Realice el cambio fuera del horario pico para minimizar el impacto en el negocio.
Asignación de suites de cifrado TLS
Esta tabla proporciona la asignación entre el formato OpenSSL, el formato estándar IANA y la representación hexadecimal de las suites de cifrado TLS.