Como consultores en el campo de la criptografía aplicada, a menudo nos encontramos con la pregunta de si habilitar el cifrado es suficiente para garantizar la seguridad de la comunicación digital.
Cuando se envía un mensaje a través de una conexión, normalmente un TLS / SSL La conexión se utiliza para cifrar Los datos del mensaje. Para establecer esta conexión, se produce un protocolo de enlace TLS. Dentro de este protocolo de enlace, el cliente y el servidor intercambian conjuntos de cifrado disponibles para garantizar que utilicen los mismos cifrados durante el protocolo de enlace TLS.
Un conjunto de cifrado proporciona instrucciones sobre cómo asegurar la conexión TLS/SSL al brindar información sobre qué cifrados utilizan el cliente o el servidor para crear claves, autenticar usuarios, etc. Los conjuntos de cifrado deben intercambiarse entre el cliente y el servidor para garantizar que los cifrados utilizados en el protocolo de enlace TLS coincidan y que el cliente y el servidor puedan entenderse entre sí.
Ahora, vamos a llevaros entre bastidores y revelaros cómo funciona un protocolo de enlace TLS:
Introducción
¿Cómo funciona un protocolo de enlace TLS?

Un protocolo de enlace TLS es el proceso que se lleva a cabo entre un cliente y un servidor para crear una conexión segura y cifrar los datos enviados a través de ella. Un protocolo de enlace TLS consta de los siguientes pasos:
- cliente hola
La etapa de saludo del cliente implica que el cliente envía una solicitud al servidor para comunicarse. La versión de TLS, los conjuntos de cifrado compatibles y una cadena de bytes aleatorios conocida como "cliente aleatorio" se incluyen en el saludo.
- servidor hola
En el saludo del servidor, el servidor confirma el saludo del cliente y se asegura de utilizar una versión de TLS compatible con la del cliente. El servidor también selecciona un conjunto de cifrado compatible entre los ofrecidos por el cliente y envía su... certificado, el servidor aleatorio (similar al cliente aleatorio) y la clave pública para el cliente.
- Validación de certificado
La validez del certificado del servidor es luego verificada por el cliente a través del Autoridad certificadaLa autoridad de certificación, o CA, es una entidad altamente confiable a la que se le asigna la responsabilidad de firmar y generar certificados digitales.
- Cuerda pre-master
En esta etapa, el cliente cifra una cadena aleatoria de bytes, denominada "Cadena Pre-Maestra", con la clave pública del servidor y la envía de vuelta al servidor. Esto garantiza que solo el servidor pueda... descifrar la clave con su propia clave privada, lo que añade una capa extra de seguridad al proceso.
- Creación de clave de sesión
Luego, el servidor descifra la clave premaestra y tanto el cliente como el servidor crean claves de sesión a partir de la clave aleatoria del cliente, la clave aleatoria del servidor y la cadena premaestra.
- Mensajería terminada
Finalmente, el cliente y el servidor se envían mensajes indicando que han terminado de crear sus claves y las comparan. Si las claves de sesión coinciden, se completa el protocolo de enlace TLS y estas se utilizan para cifrar y descifrar los datos que se envían entre el servidor y el cliente.
Ahora que entendemos cómo funciona un protocolo de enlace TLS, podemos centrarnos específicamente en los conjuntos de cifrado en un protocolo de enlace TLS.
Suites de cifrado
El conjunto de cifrado determina cómo se aplica el cifrado, qué algoritmos se utilizan y el tamaño de la clave de cifrado. Encapsula el intercambio de claves, la autenticación, el cifrado masivo de datos y los algoritmos que rigen el proceso de cifrado.
Componentes de un conjunto de cifrado
Un conjunto de cifrado consta principalmente de cuatro componentes diferentes:

- Algoritmo de intercambio de claves
El proceso de intercambio de información requiere una conexión segura para enviar datos sin cifrar o una clave compartida entre el cliente y el servidor. El cliente utiliza esta clave para cifrar los datos, y el servidor la utiliza para descifrarlos. Dado que se usa una sola clave tanto para el cifrado como para el descifrado, se emplea el cifrado simétrico. Para compartir dicha clave, se creó un algoritmo denominado algoritmo de intercambio de claves, que cifra la clave de cifrado simétrico durante la transferencia. Esto garantiza la integridad de los datos y la seguridad de la clave de cifrado simétrico.
El algoritmo de intercambio de claves es un algoritmo de cifrado compartido entre el cliente y el servidor para que ambos lados de la conexión puedan descifrar y utilizar la clave de cifrado simétrica. RSA, DH, ECDH y ECDHE son ejemplos de algoritmos de intercambio de claves. - Algoritmo de autenticación
Este algoritmo garantiza la identidad del remitente. Normalmente, se utilizan una contraseña y un nombre de usuario para autenticar al cliente. Los algoritmos de autenticación más comunes son RSA, DSA y ECDSA.
- Algoritmo de cifrado de datos masivos
El algoritmo de cifrado de datos masivos se utiliza para cifrar el cuerpo principal del mensaje. Dado que la parte principal del mensaje es lo que los atacantes intentan robar o modificar, el algoritmo utilizado debería ser extremadamente seguro. Los algoritmos de cifrado masivo más comunes utilizados por los conjuntos de cifrado son AES, 3DES y CAMELLA.
- Algoritmo de código de autenticación de mensajes (MAC)
La MAC es una sección de información que se envía para autenticar al cliente. El algoritmo MAC es el utilizado para cifrar la MAC. El servidor compara la MAC recibida con la MAC calculada para garantizar su coincidencia. Normalmente, se utiliza un algoritmo de comprobación de redundancia cíclica (CRC) con una MAC para comprobar si hay partes dañadas del mensaje, pero un CRC no puede proteger contra cambios intencionales en la MAC.
Si un atacante obtiene el mensaje, modifica el MAC y calcula una nueva suma de verificación, el servidor nunca detectará la modificación. SHA-2 es un algoritmo MAC de uso común. El MAC garantiza la autenticidad e integridad del mensaje.
Un ejemplo de nombre de conjunto de cifrado de la versión 1.2 es TLS_DHE_RSA_AES256_SHA256. La primera parte, TLS, especifica el propósito del conjunto de cifrado. TLS es el motivo más común para los conjuntos de cifrado. El segundo nombre de algoritmo, DHE, corresponde al algoritmo de intercambio de claves utilizado. RSA es el algoritmo de autenticación, AES256 es el algoritmo de cifrado masivo de datos y SHA256 es el algoritmo MAC.
Conjuntos de cifrado compatibles con TLS 1.2
Los nombres de los conjuntos de cifrado de la versión 1.2 son cortos, pero otras versiones admiten algoritmos diferentes y son aún más cortas. La versión más utilizada es la 1.2, aunque ya existe la 1.3. La razón para usar una versión anterior en lugar de una más reciente es la cantidad de opciones que ofrece cada una.
Los nombres de los conjuntos de cifrado de la versión 1.2 son cortos, pero otras versiones admiten algoritmos diferentes y son aún más cortas. La versión más utilizada es la 1.2, aunque ya existe la 1.3. La razón para usar una versión anterior en lugar de una más reciente es la cantidad de opciones que ofrece cada una.
- TLS_ECDHE_ECDSA_CON_AES_128_GCM_SHA256 (Recomendado)
- TLS_ECDHE_ECDSA_CON_AES_256_GCM_SHA384 (Recomendado)
- TLS_ECDHE_ECDSA_CON_AES_128_CBC_SHA256 (Débil)
- TLS_ECDHE_ECDSA_CON_AES_256_CBC_SHA384 (Débil)
- TLS_ECDHE_RSA_CON_AES_128_GCM_SHA256 (Seguro)
- TLS_ECDHE_RSA_CON_AES_256_GCM_SHA384 (Seguro)
- TLS_ECDHE_RSA_CON_AES_128_CBC_SHA256 (Débil)
- TLS_ECDHE_RSA_CON_AES_256_CBC_SHA384 (Débil)
- TLS_ECDHE_RSA_CON_AES_128_CBC_SHA256 (Débil)
- TLS_ECDHE_RSA_CON_AES_256_CBC_SHA384 (Débil)
- TLS_DHE_RSA_CON_AES_128_GCM_SHA256 (Débil)
- TLS_DHE_RSA_CON_AES_256_GCM_SHA384 (Débil)
- TLS_DHE_RSA_CON_AES_128_CBC_SHA (Débil)
- TLS_DHE_RSA_CON_AES_256_CBC_SHA (Débil)
- TLS_DHE_RSA_CON_AES_128_CBC_SHA256 (Débil)
- TLS_DHE_RSA_CON_AES_256_CBC_SHA256 (Débil)
- TLS_ECDHE_ECDSA_CON_CHACHA20_POLY1305_SHA256 (Recomendado)
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 (Recomendado)
- TLS_ECDHE_RSA_CON_CHACHA20_POLY1305_SHA256 (Recomendado)
- TLS_ECDHE_RSA_CON_CHACHA20_POLY1305 (Seguro)
Conjuntos de cifrado compatibles con TLS 1.3
La versión 1.3, por otro lado, solo ofrece cinco cifrados e incluye dos algoritmos en su nombre. La versión 1.2 también ofrece algoritmos más seguros que la 1.3. Sin embargo, la nomenclatura del conjunto de cifrados y la cantidad de cifrados que ofrece en la versión 1.3 acortaron significativamente el protocolo de enlace TLS. El nombre del cifrado utilizado en la versión 1.3 es: TLS_AES_256_GCM_SHA384. Cuanto menor sea el número de cifrados utilizados y más corto el nombre, más rápido será el protocolo de enlace TLS.
- TLS_AES_256_GCM_SHA384 (Recomendado)
- TLS_CHACHA20_POLY1305_SHA256 (Recomendado)
- TLS_AES_128_GCM_SHA256 (Recomendado)
- TLS_AES_128_CCM_8_SHA256 (Seguro)
- TLS_AES_128_CCM_SHA256 (Seguro)
El impacto de la criptografía postcuántica (PQC) en los conjuntos de cifrado
Las computadoras cuánticas pueden descifrar el cifrado TLS que utiliza cifrados y algoritmos modernos basados en ECC, como RSA y DSA, en cuestión de horas, ya que se basan en problemas matemáticos como la factorización de enteros y los logaritmos discretos (log). Estos problemas son computacionalmente inviables para las computadoras clásicas, pero las computadoras cuánticas podrían resolverlos de manera eficiente mediante el algoritmo de Shor. Esto supone una amenaza directa para la seguridad de los protocolos criptográficos existentes, incluidos los empleados en TLS/SSL.
Los conjuntos de cifrado deben actualizarse para incorporar algoritmos poscuánticos. Por ejemplo, TLS 1.3, que actualmente utiliza algoritmos como ECDHE y RSA para el intercambio de claves, debe migrar a alternativas con seguridad cuántica. El rediseño incluye la selección de algoritmos poscuánticos que equilibren la seguridad, el rendimiento y la eficiencia del ancho de banda. Por ejemplo, ML-KEM (nombre de la especificación inicial: CRYSTALS-Kyber) está ganando popularidad para compartir claves simétricas para el cifrado general.
Analicemos más de cerca las opciones respaldadas por NIST. Algoritmos PQC:
Para el cifrado general, que se utiliza para acceder a sitios web de forma segura, NIST ha seleccionado el siguiente algoritmo.
- CRISTALES-Kyber (Nombre actualizado: ML KEM)
El NIST recomienda usar Kyber en un modo híbrido, combinándolo con protocolos de seguridad precuánticos establecidos, como el Diffie-Hellman de curva elíptica. La propuesta incluye tres conjuntos de parámetros diseñados para diferentes niveles de seguridad:
Kyber-512 Su objetivo es una seguridad aproximadamente equivalente a AES-128.
Kyber-768 Su objetivo es una seguridad aproximadamente equivalente a AES-192.
Kyber-1024 Su objetivo es una seguridad aproximadamente equivalente a AES-256.
Para firmas digitales, Comúnmente utilizado para verificar identidades durante transacciones digitales o firmar documentos de forma remota, el NIST ha seleccionado los tres algoritmos siguientes:
- CRISTALES-Dilithium (Nombre actualizado: ML DSA)
Como actualización para la segunda ronda del proyecto NIST, se propuso una variante de Dilithium, llamada Dilithium-AES. Esta variante utiliza AES-256 en modo contador en lugar de SHAKE para expandir la matriz y los vectores de enmascaramiento, y para muestrear los polinomios secretos. Están disponibles las siguientes variantes de Dilithium:
Dilitio2-AES
Dilitio3-AES
Dilitio5-AES - FALCON (Nombre actualizado: FN DSA)
Falcon se basa en el marco teórico de Gentry, Peikert y Vaikuntanathan para esquemas de firma basados en retículos. Falcon alcanza el siguiente rendimiento:
HALCÓN-512 (keygen (ms)- 8.64, keygen (RAM)- 14336, señales/s- 5948.1, verificaciones/s- 27933.0, tamaño de publicación- 897, tamaño de firma- 666)
HALCÓN-1024 (keygen (ms)- 27.45, keygen (RAM)- 28672, señales/s- 2913.0, verificaciones/s- 13650.0, tamaño de publicación- 1793, tamaño de firma- 1280)
Para ofrecer una comparación, Falcon-512 es aproximadamente equivalente, en términos de seguridad clásicos, a RSA-2048, cuyas firmas y claves públicas utilizan 256 bytes cada una. - SPHINCS + (Nombre actualizado: SLH DSA)
ESPINAS+ Es un esquema de firma basado en hash sin estado. Incorpora múltiples mejoras, específicamente diseñadas para reducir el tamaño de la firma. La segunda ronda de presentación de SPHINCS...+ Introduce una división de los tres esquemas de firma anteriores en una variante simple y robusta para cada opción de función hash. La variante robusta es exactamente SPHINCS.+ Versión de la primera ronda de presentación, que incluye todas las garantías de seguridad conservadoras proporcionadas anteriormente. La propuesta propone tres esquemas de firma diferentes:
ESPINAS+-SHAKE256
ESPINAS+-SHA-256
ESPINAS+-Haraka
Estos esquemas de firma se obtienen instanciando SPHINCS+ construcción con SHAKE256, SHA-256 y Haraka, respectivamente.
Un conjunto de cifrado TLS actual, como TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, al evolucionar hacia un cifrado post-cuántico, podría tener el siguiente aspecto: TLS_KYBER_DILITHIUM_CON_AES_256_GCM_SHA384.
La siguiente tabla representa algoritmos de criptografía postcuántica (aprobados por el NIST)
| CRISTALES-Kyber | CRISTALES-Dilithium | FALCON | ESFINCAS+-SHA256 | ESFINCAS+-Haraka | ESFINCAS+-SHAKE256 |
| Kyber512 | Dilitio2 | HALCÓN-512 | ESFINCAS+-SHA256-128f-robusto | ESFINCAS+-Haraka-128f-robusto | ESFINCAS+-SHAKE256-128f-robusto |
| Kyber512-90s | Dilitio3 | HALCÓN-1204 | ESFINCAS+-SHA256-128f-simple | ESFINCAS+-Haraka-128f-simple | ESFINCAS+-SHAKE256-128f-simple |
| Kyber768 | Dilitio5 | – | SPHINCS+-SHA256-128s-robusto | SPHINCS+-Haraka-128s-robusto | SPHINCS+-SHAKE256-128s-robusto |
| Kyber768-90s | Dilitio2-AES | – | ESFINCAS+-SHA256-128s-simple | ESFINCAS+-Haraka-128s-simple | ESFINCAS+-SHAKE256-128s-simple |
| Kyber1024 | Dilitio3-AES | – | ESFINCAS+-SHA256-192f-robusto | ESFINCAS+-Haraka-192f-robusto | ESFINCAS+-SHAKE256-192f-robusto |
| Kyber1024-90s | Dilitio5-AES | – | ESFINCAS+-SHA256-192f-simple | ESFINCAS+-Haraka-192f-simple | ESFINCAS+-SHAKE256-192f-simple |
| – | – | – | SPHINCS+-SHA256-192s-robusto | SPHINCS+-Haraka-192s-robusto | SPHINCS+-SHAKE256-192s-robusto |
| – | – | – | ESFINCAS+-SHA256-192s-simple | ESFINCAS+-Haraka-192s-simple | ESFINCAS+-SHAKE256-192s-simple |
| – | – | – | ESFINCAS+-SHA256-256f-robusto | ESFINCAS+-Haraka-256f-robusto | ESFINCAS+-SHAKE256-256f-robusto |
| – | – | – | ESFINCAS+-SHA256-256f-simple | ESFINCAS+-Haraka-256f-simple | ESFINCAS+-SHAKE256-256f-simple |
| – | – | – | SPHINCS+-SHA256-256s-robusto | SPHINCS+-Haraka-256s-robusto | SPHINCS+-SHAKE256-256s-robusto |
| – | – | – | ESFINCAS+-SHA256-256s-simple | ESFINCAS+-Haraka-256s-simple | ESFINCAS+-SHAKE256-256s-simple |
Cuarta ronda del proceso de estandarización de criptografía post-cuántica (PQC) del NIST
Se han propuesto varios algoritmos candidatos Por consideraciónEstos son los algoritmos criptográficos que aún están bajo evaluación para determinar su idoneidad para la estandarización en una era post-cuántica.
Los algoritmos candidatos de la Ronda 4 están diseñados para establecer de forma segura claves compartidas entre las partes de un sistema de comunicación, normalmente mediante criptografía de clave pública. Estos algoritmos son los siguientes:
- BICICLETA (Encapsulación de clave basada en código binario)
BIKE es un mecanismo de encapsulación de claves basado en códigos QC-MDPC (Quasi-Cyclic Moderate Density Parity-Check) enviados a la Proceso de estandarización de la criptografía post-cuántica del NIST. Un sistema de cifrado de clave pública basado en códigos de corrección de errores. - McEliece clásico
El sistema McEliece fue diseñado para ser unidireccional (OW-CPA), lo que significa que un atacante no puede encontrar eficientemente la palabra clave a partir de un texto cifrado y una clave pública, cuando esta se elige aleatoriamente. Es un criptosistema de clave pública basado en la dificultad de decodificar un código lineal aleatorio. - HQC (Hamming Cuasi-Cíclico)
HQC Es un esquema de cifrado de clave pública basado en códigos, diseñado para brindar seguridad contra ataques tanto de computadoras clásicas como cuánticas. Utiliza una clase de códigos correctores de errores conocidos como códigos cuasicíclicos. - TALLA (Encapsulación de clave de isogenia supersingular)
Se trata de un KEM basado en la dificultad de encontrar isogenias entre curvas elípticas supersingulares, un enfoque relativamente nuevo en criptografía resistente a la computación cuántica. Contiene dos algoritmos:
Un algoritmo de cifrado de clave pública seguro para CPA, SIKE.PKE
Un mecanismo de encapsulación de claves seguro mediante CCA, SIKE.KEM
Beneficios a largo plazo de PQC en conjuntos de cifrado
Vadium Lyubashevsky, un IBM Un investigador en criptografía mencionó que “los algoritmos basados en retículos, cuando se diseñan correctamente, son en realidad más eficientes que los algoritmos que se utilizan actualmente”, afirmó. “Si bien pueden ser más complejos que la criptografía clásica, su tiempo de ejecución es menor que el de los algoritmos clásicos basados en RSA discretos de mayor tamaño o en curvas elípticas”.
La incorporación de PQC en conjuntos de cifrado aporta varios beneficios, tales como:
- Seguridad resistente a la cuántica
El uso del algoritmo PQC proporciona un cifrado más robusto, capaz de resistir amenazas cuánticas. Esto protege los datos sensibles, manteniéndolos confidenciales e inalterados. - Lograr la agilidad criptográfica
La adopción de algoritmos PQC mejora la agilidad criptográfica, permitiendo a las organizaciones una transición fluida entre algoritmos clásicos y resistentes a la tecnología cuántica a medida que surgen nuevas amenazas. Esta flexibilidad garantiza que el sistema, la aplicación o cualquier otro activo crítico esté diseñado para adaptarse con agilidad a los requisitos criptográficos. - Solución Híbrida
Una solución híbrida combina algoritmos criptográficos tradicionales (p. ej., RSA) con algoritmos PQC para ofrecer compatibilidad con versiones anteriores dentro de los sistemas existentes, a la vez que introduce la preparación para la computación cuántica. Esto garantiza una transición fluida a PQC sin interrumpir las operaciones actuales. - Preparando la comunicación digital para el futuro
La implementación de PQC ahora evita que los atacantes almacenen datos cifrados y los descifren más tarde cuando las computadoras cuánticas estén disponibles (“cosechar ahora, descifrar después”). - Cumplimiento de normas emergentes
Es probable que los organismos reguladores y los estándares de la industria exijan el uso de algoritmos PQC en un futuro próximo. Su adopción temprana garantiza el cumplimiento normativo y evita interrupciones de última hora.
¿Cómo puede ayudar la consultoría de cifrado?
Nuestro Servicios de asesoramiento sobre cifrado evaluaciones de cifrado y el auditorías de cifrado Donde realizamos evaluaciones exhaustivas de su infraestructura criptográfica actual para identificar vulnerabilidades y prepararnos para las amenazas cuánticas emergentes. Esto incluye la evaluación de certificados digitales, claves criptográficas y la gobernanza criptográfica general para garantizar la resiliencia ante riesgos en constante evolución. Nuestro equipo desarrolla un marco personalizado para la transición a un entorno criptográfico compatible con estándares de la industria como el NIST. FIPy otros. Garantizamos la seguridad de los datos de su organización mientras se adapta a las tecnologías resistentes a la computación cuántica. Nuestras estrategias se adaptan a los requisitos de seguridad y la tolerancia al riesgo específicos de su organización, lo que le ayuda a anticiparse a los desafíos de seguridad.
Conclusión
Los conjuntos de cifrado son una parte integral del protocolo de enlace TLS, ya que indican al cliente y al servidor cómo cifrar su información para que el otro la entienda. El protocolo de enlace TLS, que conecta un cliente y un servidor de forma segura, se utiliza a diario para conectarse a sitios web, por lo que garantizar su máxima seguridad es de vital importancia. Los conjuntos de cifrado son solo una de las maneras de asegurar conexiones seguras y confiables. Firma de códigopropiamente dicho gestión de certificados, el claves SSH seguras son todos los demás métodos de conexión segura que también deben implementarse correctamente para garantizar la conexión más segura a los servidores.
