La seguridad de prácticamente todas las conexiones a internet depende del cifrado SSL/TLS. Lo que determina el nivel de protección de estas conexiones es la elección de una suite de cifrado. Entonces, ¿qué es una suite de cifrado?
¿Qué es una suite de cifrado?
Las suites de cifrado son conjuntos de instrucciones que permiten conexiones de red seguras a través de Transport Layer Security (TLS), a menudo todavía conocido como Secure Sockets Layer (SSL). Entre bastidores, estas suites de cifrado proporcionan un conjunto de algoritmos y protocolos necesarios para asegurar las comunicaciones entre clientes y servidores.
Para iniciar una conexión HTTPS, las dos partes —el servidor web y el cliente— realizan un handshake SSL. El proceso de handshake es bastante complicado, durante el cual las dos partes acuerdan una suite de cifrado mutua. La suite de cifrado se utiliza entonces para negociar una conexión HTTPS segura.
¿Por qué se requieren las suites de cifrado?
Como mencionamos anteriormente, el handshake SSL es un proceso complicado, ya que aprovecha una variedad de funciones criptográficas para lograr la conexión HTTPS. Durante el handshake, el cliente y el servidor web utilizarán:
- Un algoritmo de intercambio de claves, para determinar cómo se intercambiarán las claves simétricas
- Un algoritmo de autenticación o firma digital, que dicta cómo se implementará la autenticación del servidor y la autenticación del cliente (si es necesaria)
- Un algoritmo de cifrado masivo, que se utiliza para cifrar los datos
- Una función hash/MAC, que determina cómo se realizarán las comprobaciones de integridad de los datos
Estos cifrados son necesarios en varios puntos de la conexión para realizar la autenticación, la generación e intercambio de claves, y una suma de verificación que garantice la integridad. Para determinar qué algoritmos específicos utilizar, el cliente y el servidor web comienzan decidiendo mutuamente el conjunto de cifrado a emplear.
Los conjuntos de cifrado son necesarios debido a la variedad de servidores, sistemas operativos y navegadores. Debe haber una forma de acomodar todas estas combinaciones, por lo que los conjuntos de cifrado resultan útiles para garantizar la compatibilidad.
¿Cómo funciona?
Durante el establecimiento de una conexión, cuando el cliente y el servidor intercambian información, el servidor web y el navegador comparan sus listas priorizadas de conjuntos de cifrado compatibles, comprueban si son compatibles y determinan qué conjunto de cifrado utilizar.
La decisión sobre qué conjunto de cifrado se utilizará depende del servidor web. El conjunto de cifrado acordado es una combinación de:
- Algoritmos de intercambio de claves, como RSA, DH, ECDH, DHE, ECDHE o PSK
- Algoritmo de autenticación/firma digital, como RSA, ECDSA o DSA
- Algoritmos de cifrado masivo, como AES, CHACHA20, Camellia o ARIA
- Algoritmos de código de autenticación de mensajes (MAC), como SHA-256 y POLY1305
Volviendo a nuestro paradigma de conjunto de cifrado, veamos qué información proporciona un conjunto de cifrado.

De izquierda a derecha, ECDHE determina que, durante el establecimiento de la conexión, las claves se intercambiarán mediante Elliptic Curve Diffie Hellman efímero (ECDHE). ECDSA o el algoritmo de firma digital de curva elíptica es el algoritmo de autenticación. AES128-GCM es el algoritmo de cifrado masivo: AES ejecutando el modo contador de Galois con un tamaño de clave de 128 bits. Finalmente, SHA-256 es el algoritmo de hashing.
¿Por qué son importantes los conjuntos de cifrado?
Los conjuntos de cifrado son importantes para garantizar la seguridad, compatibilidad y rendimiento de las conexiones HTTPS. Al igual que las recetas describen los ingredientes necesarios para elaborar la receta perfecta, los conjuntos de cifrado dictan qué algoritmos utilizar para establecer una conexión segura y fiable.
Como hemos mencionado anteriormente, es el servidor web el que finalmente determina qué conjunto de cifrado se utilizará. Por lo tanto, la lista priorizada de conjuntos de cifrado en el servidor web es muy importante. Elegir los cifrados correctos para incluir en cualquier servidor web es un ejercicio vital para cualquier administrador y está en gran medida determinado por el tipo de usuarios que se conectan al servidor y la tecnología que utilizan.
Los usuarios también son responsables de garantizar conexiones seguras. Dado que los proveedores de navegadores actualizan su lista de conjuntos de cifrado compatibles después de que se descubre una vulnerabilidad, los usuarios deben instalar los últimos parches del navegador para reducir la probabilidad de encontrar problemas de compatibilidad cuando los conjuntos de cifrado débiles se deprecian en el lado del servidor.
Conjuntos de cifrado compatibles en TLS 1.2
Antes de discutir cuántos conjuntos de cifrado diferentes existen, recordemos que todos los protocolos TLS anteriores a TLS 1.2 (es decir, TLS 1.0 y TLS 1.1) han sido deprecados por diversas razones de seguridad. Actualmente, los únicos protocolos TLS aceptables son TLS 1.2 y TLS 1.3.
A partir de TLS 1.2, el protocolo admite 37 conjuntos de cifrado diferentes. Y si este número parece grande, imagine que TLS 1.2 ha existido durante casi una década, durante la cual surgieron muchos sistemas diferentes. Añada que cada conjunto de cifrado consta de cuatro algoritmos diferentes y terminará con hasta 40 combinaciones distintas de cifrados.
De todos los conjuntos de cifrado compatibles en TLS 1.2, se aconseja utilizar los que tienen el algoritmo Diffie-Hellman efímero. Así, los conjuntos de cifrado aconsejables se reducen a los siguientes:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
Identificación de cifrados débiles
Con la introducción de TLS 1.3, se implementaron numerosos cambios para mejorar la seguridad del protocolo. Para empezar, se han desaprobado los cifrados antiguos e inseguros, entre ellos:
- RC4
- DSA
- MD5
- SHA-1
- Curvas elípticas débiles
- Intercambio de claves RSA
- Diffie-Hellman estático (DH, ECDH)
- Cifrados de bloque (CBC)
- Cifrados no AEAD
Soporte para conjuntos de cifrado en TLS 1.3
Además, los conjuntos de cifrado de TLS 1.3 son ahora mucho más concisos que los respectivos conjuntos de TLS 1.2. Estos conjuntos no especifican el tipo de certificado —RSA o ECDSA— ni el mecanismo de intercambio de claves —DHE o ECDHE—. En consecuencia, el número de negociaciones requeridas para determinar los parámetros de cifrado se ha reducido de cuatro a dos. Los conjuntos de cifrado en TLS 1.3 tienen el siguiente formato:

El cliente inicia el handshake sabiendo que se empleará el algoritmo Diffie-Hellman efímero para el proceso de intercambio de claves, y puede transmitir su porción del secreto de clave durante el mensaje Client Hello. La ventaja de esto radica en que el handshake de TLS 1.3 se acorta a un único viaje de ida y vuelta (roundtrip), en el que el servidor responde con toda la información necesaria para que ambas partes deriven la clave de sesión y establezcan una comunicación segura.
Los conjuntos de cifrado compatibles en TLS 1.3 se han reducido a solo cinco y son los siguientes:
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_GCM_SHA256
- TLS_AES_128_CCM_8_SHA256
- TLS_AES_128_CCM_SHA256
Elección de conjuntos de cifrado
Los conjuntos de cifrado de TLS 1.3 no son interoperables con versiones anteriores de TLS, debido a su estructura diferenciada. Esto implica que los administradores de sitios web deberán configurar sus servidores de forma que garanticen la compatibilidad con ambas versiones de conjuntos de cifrado soportados: TLS 1.2 y TLS 1.3. Optar por el soporte exclusivo de TLS 1.3 no resulta una solución acertada, dado que un gran número de empresas aún dependen de TLS 1.2.
Mozilla recomienda tres configuraciones distintas de conjuntos de cifrado para servidores web que utilizan el protocolo TLS.
- Moderno: Esta configuración está destinada a clientes modernos que soportan TLS 1.3, sin requerir compatibilidad con versiones anteriores. La configuración Moderna proporciona un nivel de seguridad excepcionalmente elevado.
- Intermedio: Esta es la configuración recomendada para un servidor de propósito general que no requiere compatibilidad con clientes heredados, como Windows XP o versiones antiguas de OpenSSL. Ofrece un alto nivel de seguridad y es compatible con la mayoría de los clientes lanzados en los últimos cinco (o más) años.
- Antiguo: Para servicios a los que acceden clientes o bibliotecas muy antiguos, como Internet Explorer 8 (Windows XP), Java 6 u OpenSSL 0.9.8. Debe emplearse únicamente como último recurso.
Conclusión
Los conjuntos de cifrado son una combinación de algoritmos criptográficos empleados durante el handshake SSL/TLS para establecer la configuración de seguridad de una conexión HTTPS. La selección y el mantenimiento de los conjuntos de cifrado apropiados, tanto en el servidor web como en el cliente, son cruciales para asegurar la seguridad, el rendimiento y la compatibilidad de sus comunicaciones HTTPS.
El mantenimiento de los conjuntos de cifrado soportados constituye una función esencial en la gestión del ciclo de vida de los certificados, garantizando que estos se mantengan actualizados conforme a las mejores prácticas del sector. Obtener una visibilidad integral de todos los certificados y conexiones en su infraestructura de TI es un paso inicial crítico, seguido de un monitoreo continuo, la renovación automatizada y el aprovisionamiento.
Descubra cómo Keyfactor Command facilita la visibilidad de extremo a extremo y la automatización de todas las claves y certificados digitales en su entorno. Consulte nuestra demostración de producto a la carta.