Únase a Keyfactor en la RSA Conference™ 2024 | del 6 al 9 de mayo | Más información

Introducción a las suites de cifrado

SSL/TLS Certificados

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 un conjunto de cifrado. Entonces, ¿qué es un conjunto de cifrado?

¿Qué es un conjunto 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 denominada todavía Secure Sockets Layer (SSL). Entre bastidores, estos conjuntos de cifrado proporcionan un conjunto de algoritmos y protocolos necesarios para proteger 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 . Se trata de un proceso bastante complicado en el que las dos partes acuerdan un conjunto de cifrado mutuo. El conjunto de cifrado se utiliza entonces para negociar una conexión HTTPS segura.

¿Por qué son necesarias las suites de cifrado?

Como dijimos antes, el handshake SSL es un proceso complicado, porque 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án la autenticación del servidor y la autenticación del cliente (si es necesaria).
  • Un cifrado masivo, que se utiliza para cifrar los datos
  • Una función hash/MAC, que determina cómo se llevarán a cabo 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 y el intercambio de claves, y una suma de comprobación para garantizar la integridad. Para determinar qué algoritmos específicos utilizar, el cliente y el servidor web empiezan por decidir mutuamente el conjunto de cifrado que se utilizará.

Los conjuntos de cifrado son necesarios debido a la variedad de servidores, sistemas operativos y navegadores. Tiene que haber una forma de acomodar todas estas combinaciones, por lo que los conjuntos de cifrado resultan muy útiles para garantizar la compatibilidad.

¿Cómo funciona?

Durante el handshake 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, como SHA-256 y POLY1305.

 

Volviendo a nuestro paradigma del conjunto de cifrado, veamos qué información proporciona un conjunto de cifrado.

 

CipherSuite1

Empezando de izquierda a derecha, ECDHE determina que durante el apretón de manos las claves se intercambiarán mediante el algoritmo efímero Elliptic Curve Diffie Hellman (ECDHE). ECDSA o Algoritmo de Firma Digital de Curva Elíptica es el algoritmo de autenticación. AES128-GCM es el algoritmo de cifrado masivo: AES en modo contador de Galois con una clave de 128 bits. Por último, SHA-256 es el algoritmo de hash.

¿Por qué son importantes las suites de cifrado?

Los conjuntos de cifrado son importantes para garantizar la seguridad, la compatibilidad y el rendimiento de las conexiones HTTPS. Al igual que las recetas de cocina 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 antes, es el servidor web el que finalmente determina qué conjunto de cifrado se utilizará. Por lo tanto, la lista priorizada de suites de cifrado en el servidor web es muy importante. La elección de los cifradores correctos a listar en cualquier servidor web es un ejercicio vital para cualquier administrador y viene determinado en gran medida 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 suites de cifrado compatibles después de que se descubra una vulnerabilidad, los usuarios deben instalar los últimos parches del navegador para reducir la probabilidad de encontrar problemas de compatibilidad cuando las suites de cifrado débiles quedan obsoletas en el lado del servidor.

Suites de cifrado compatibles en TLS 1.2

Antes de hablar de cuántas suites 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 quedado obsoletos 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 esta cifra te parece grande, imagínate que TLS 1.2 existe desde hace casi una década, durante la cual surgieron muchos sistemas diferentes. Si a esto le añadimos que cada conjunto de cifrado consta de cuatro algoritmos distintos, el resultado son hasta 40 combinaciones de cifrado diferentes.

De todas las suites de cifrado soportadas en TLS 1.2, se aconseja que utilicemos las de algoritmo efímero Diffie-Hellman. Así, las suites de cifrado aconsejables se reducen a las 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 claves débiles

Con la introducción de TLS 1.3, han cambiado muchas cosas para mejorar la seguridad del protocolo. Para empezar, se han obviado 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)
  • Cifrado por bloques (CBC)
  • Cifrados no AEAD

Compatibilidad con suites de cifrado en TLS 1.3

Además, las suites de cifrado de TLS 1.3 son ahora mucho más cortas que las suites respectivas de TLS 1.2. Las suites de cifrado no enumeran el tipo de certificado - RSA o ECDSA - ni el mecanismo de intercambio de claves - DHE o ECDHE. Por lo tanto, el número de negociaciones necesarias para determinar los parámetros de cifrado se ha reducido de cuatro a dos. Las suites de cifrado en TLS 1.3 tienen el siguiente aspecto:

CipherSuite2

El cliente inicia el handshake sabiendo que se utilizará el algoritmo Diffie-Hellman efímero para el proceso de intercambio de claves, y puede enviar su parte de la clave compartida durante el mensaje Client Hello. La ventaja es que el handshake de TLS 1.3 se reduce a un único viaje de ida y vuelta, en el que el servidor responde con toda la información necesaria para que las dos partes obtengan la clave de sesión y comiencen a comunicarse de forma segura.

Las suites de cifrado compatibles en TLS 1 . 3 se han reducido a sólo cinco y son las 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

TLS 1.3 no son interoperables con las versiones anteriores de TLS , ya que su estructura es diferente. Esto significa que los administradores de sitios tendrán que configurar sus servidores web de forma que permitan la compatibilidad con ambas versiones de conjuntos de cifrado compatibles, TLS 1.2 y TLS 1.3. Optar por la compatibilidad únicamente con TLS 1.3 no es una solución acertada, ya que muchas empresas siguen confiando en TLS 1.2.

Mozilla recomienda tres configuraciones diferentes de conjuntos de cifrado para los servidores web que utilicen el protocolo TLS .

  • Modern: Esta configuración es para clientes modernos que soportan TLS 1.3, sin necesidad de compatibilidad con versiones anteriores. La configuración Modern proporciona un nivel de seguridad extremadamente alto.
  • Intermedia: Esta es la configuración recomendada para un servidor de propósito general que no necesita compatibilidad con clientes heredados, como Windows XP o versiones antiguas de OpenSSL. Es muy segura y compatible con casi todos los clientes publicados en los últimos cinco (o más) años.
  • Antiguos: Servicios a los que acceden clientes o librerías muy antiguas, como Internet Explorer 8 (Windows XP), Java 6 u OpenSSL 0.9.8, y deben utilizarse como último recurso.

Conclusión

Los conjuntos de cifrado son una combinación de cifrados utilizados durante el handshake SSL/TLS para determinar la configuración de seguridad de una conexión HTTPS. Elegir y mantener los conjuntos de cifrado adecuados, tanto en el servidor web como en el cliente, es importante para garantizar la seguridad, el rendimiento y la compatibilidad de sus comunicaciones HTTPS.

El mantenimiento de los conjuntos de cifrado compatibles es una función importante de la gestión del ciclo de vida de los certificados para garantizar que sus certificados están actualizados con las mejores prácticas del sector. Obtener una visibilidad completa de todos los certificados y conexiones de su entorno informático es un primer paso fundamental, seguido de la supervisión continua, la renovación automatizada y el aprovisionamiento.

Descubra cómo Keyfactor Command permite la visibilidad de extremo a extremo y la automatización de todas las claves y certificados digitales de su entorno. Vea nuestra demostración del producto a petición.