top of page
Quantum

Transición Post-cuántica en Acción: Piloto de interoperabilidad con una CA abierta


En Cyte nuestro producto estrella se llama Crypto-Vault®, una librería criptográfica que se integra con cualquier software y permite proteger archivos con información sensible mediante protocolos como PGP, S/MIME, o nuestro protocolo propietario Digital Envelope.


Estos protocolos usan llaves con algoritmos clásicos como RSA, DSA, y Curva Elíptica. Resulta que las computadoras cuánticas poseen la capacidad teórica de romper los sistemas de cifrado actuales en cuestión de horas mediante la aplicación del algoritmo de Shor, la seguridad digital global enfrenta un desafío sin precedentes (ver https://www.cyte.co/post/radiografia-riesgo-cuantico para más información). Por lo anterior, en Cyte hemos estado actualizando desde hace unos años Crypto-Vault® para poder hacer uso de los algoritmos postcuánticos estandarizados y aprobados por la NIST como lo son ML-KEM y ML-DSA.


Sin embargo, el soportar o implementar un algoritmo postcuántico sólo es parte de la tarea de transición. Estos algoritmos son usados por protocolos, y si los protocolos no se actualizan, estos no van a aceptar estos nuevos algoritmos. Es como si apareciera un nuevo combustible ecológico ultra eficiente, pero quisiéramos cargarlo en un motor de combustión interna antiguo: por muy bueno y potente que sea el combustible nuevo, el motor antiguo no tiene los ajustes necesarios para procesarlo.


En este escenario contar con nuevos algoritmos es insuficiente, también resulta imperativo definir su integración en la Infraestructura de Clave Pública (PKI). Es decir,  el ecosistema de certificados digitales sobre el que reside la confianza global debía también actualizar sus estándares para reconocer estos algoritmos.


En nuestras pruebas de implementación logramos verificar el funcionamiento de nuevos certificados digitales haciendo uso de algoritmos postcuánticos emitidos por una Autoridad Certificadora (CA - Certificate Authority) interna como OpenSSL. Sin embargo esta CA nos sirve para pruebas de laboratorio o procesos internos, pero procesos interorganizacionales requieren certificados digitales con validez legal, emitidos por una CA abierta autorizada por el gobierno. Por lo anterior, pese a que nuestro software tenía las capacidades para hacer uso de algoritmos Quantum Safe (Q-Safe), necesitábamos aún poder interoperar con una CA abierta colombiana para poder hacer una prueba completa.


Piloto de interoperabilidad con una CA abierta


Procedimos entonces a contactar una de las grandes Autoridades Certificadoras de Colombia, GSE (Gestión de Seguridad Electrónica S.A.), quien opera como CA abierta reconocida por la ONAC (el ente del gobierno que regula a las entidades certificadoras del país) desde hace 15 años. Ya con este aliado estratégico pudimos generar certificados digitales X.509 y hacer el proceso de petición de firma de certificado. El piloto diseñado consistió en enviar un archivo cifrado y firmado desde un remitente A hacia un destinatario B, ambos en equipos o nodos diferentes (Noda A Linux, Nodo B Windows) y luego que el destinatario B descifre y verifique la firma del archivo recibido, para finalmente devolver un archivo cifrado y firmado hacia el remitente A para completar la comunicación. 


Paso 1: Generación de llaves post-cuánticas


El paso 1 del proceso consiste en generar el par de llaves criptográficas necesarias para firmar y cifrar los archivos. Con RSA se tenía la ventaja que este algoritmo permitía cifrar y firmar con el mismo par de llaves. Con los algoritmos postcuánticos ML-DSA y ML-KEM no pasa lo mismo. ML-DSA solo sirve para firmar, y ML-KEM solo sirve como mecanismo de encapsulamiento de llaves de cifrado.  Crypto-Vault® ya puede generar pares de llaves postcuánticas, pero decidimos usar un software de terceros para poder verificar la interoperabilidad de nuestro software con otras implementaciones. Para la generación de llaves se decidió utilizar el software Keystore Explorer (https://keystore-explorer.org/).


Paso 2: Obtención de certificados


Una vez tenemos dos pares de llaves (uno ML-DSA y otro ML-KEM), procedimos a hacer el proceso de verificación y emisión de certificados de la CA. Actualmente ese proceso requiere la generación de una Petición de Firma de Certificado (Certificate Signing Request o CSR) que se envía a la CA (junto a un proceso off-line paralelo de verificación de identidad que requiere enviar documentación para comprobar que la entidad es efectivamente quien dice ser). Este CSR es simplemente la información del certificado de la llave generada firmada por la misma llave, de esta forma la CA puede verificar la firma del CSR y estar seguro que el solicitante tiene posesión de la llave privada correspondiente a la llave pública que se encuentra en el CSR. Dado que ahora tenemos 2 pares de llaves, y una de esas llaves no sirve para firmar, el esquema con CSR ya no es suficiente. 


Para solventar el problema de dar prueba de posesión o Proof of Possession (PoP), la CA dispuso de un portal online donde se entregó la llave pública de cada una de las llaves, y una firma cruda de la pública ML-KEM con la llave privada ML-DSA, de esta forma mostrando el PoP de la llave privada ML-DSA. Cabe resaltar que el proceso de onboarding y autenticación al portal siguió medidas de seguridad estrictas, y el portal usaba QUIC con X25519MLKEM768, el cual es un híbrido de curva elíptica y ML-KEM.


Una vez diligenciado esto el portal devuelve inmediatamente los certificados generados y firmados por la CA, pero cifrados con la llave pública ML-KEM enviada, de esta forma solo el poseedor de la llave privada correspondiente (nosotros) podría descifrar los archivos y obtener los certificados.


Finalmente importamos los certificados a su respectiva llave pública haciendo uso de Keystore Explorer, y se procedió a exportar el almacén de llaves generado con los dos pares de llaves y sus respectivos certificados a un archivo tipo PKCS12 protegido con contraseña.


Paso 3: Importar llaves al programa de cifrado y firma


Ahora que tenemos los certificados firmados por la CA, se procedió a importar el par de llaves con sus certificados a Crypto-Vault® (la generación de firma y el descifrar los certificados se hizo desde Crypto-Vault® pues Keystore Explorer no ofrece estas funcionalidades). 


En la siguiente imagen podemos ver el resultado de importar el archivo de almacén de llaves exportado en el paso anterior a Crypto-Vault®, y luego mostrar las llaves importadas:


Imagen 1

Paso 4: Repetir paso 1, 2 y 3 en otro nodo


En otro nodo generamos nuevas llaves criptográficas Q-Safe representando otra entidad, y se montan dichas llaves en ese otro nodo. Luego cada entidad envía los dos certificados propios a la otra entidad para que esta proceda a adicionarlas a su instalación de Crypto-Vault®: 


Imagen 2

Paso 5: Cifrar y firmar archivo hacia Nodo B


Una vez se tienen las llaves de todos los interlocutores cargadas, se procedió a ejecutar el comando de cifrado, el cual ya incluye la instrucción de firmado de la información. El comando es el mismo usado  actualmente con llaves legado, lo único que se ajusta es adicionar una bandera “-postq” al final del mismo, sin embargo cuando salga este año la versión actualizada del programa dicha bandera no será necesaria. Lo anterior permite que la migración de llaves clásicas a postcuánticas sea transparente para el usuario final y no necesite ajustar los llamados  que hacen actualmente sus aplicativos (esto se conoce recientemente como cripto agilidad, sin embargo ha sido un principio que hemos aplicado desde siempre):


Imagen 3

El archivo cifrado se ve así:


Imagen 4

Este protocolo de cifrado de archivos XML, desarrollado por Cyte hace más de dos décadas, es crucial en el backbone del sistema financiero colombiano. Se utiliza para el intercambio seguro de archivos con información altamente sensible, como números de cuenta y tarjetas de crédito.


El proceso implica la generación de un sobre XML que registra la firma del archivo a proteger. Posteriormente, se genera una clave simétrica AES (algoritmo no vulnerable a la computación cuántica) y se utiliza para cifrar el sobre inicial, creando un nuevo sobre (el que se muestra en la imagen).


La clave simétrica se cifra (o encapsula) utilizando la clave pública del receptor, lo que asegura que solo el poseedor de la clave privada correspondiente pueda descifrarla.


La imagen ilustra la transición a la criptografía postcuántica, donde el campo “keyEncryptionAlgorithm” ahora indica ML-KEM en lugar del anterior RSA. Esta adopción de un algoritmo Q-Safe resultó en un mayor consumo de espacio (aproximadamente 1 KB más) para la clave encapsulada en comparación con el texto cifrado generado por RSA. En este contexto particular, el aumento de 1 KB no afecta los acuerdos de nivel de servicio (SLA), aunque es un factor que debe considerarse en otros escenarios donde las restricciones de espacio puedan ser críticas.


Paso 6: Descifrar y verificar firma en Nodo B


Una vez el destinatario del mensaje recibió el archivo cifrado, se procedió a ejecutar el comando de descifrado y verificación de firma en su instalación de Crypto-Vault®:


Imagen 5

Finalmente el destinatario cifró un archivo de respuesta y lo envió al remitente para que realizara el proceso de descifrado y verificación de firma.


Conclusión


El piloto de interoperabilidad realizado entre Cyte y GSE demostró con éxito la viabilidad de la migración a la criptografía postcuántica en un entorno real de Infraestructura de Clave Pública (PKI) en Colombia. La actualización de nuestra librería Crypto-Vault® para soportar algoritmos NIST como ML-KEM y ML-DSA, junto con la colaboración de una Autoridad Certificadora abierta, permitió un flujo completo de cifrado, firma, descifrado y verificación de firmas utilizando certificados digitales Q-Safe.


Este ejercicio real subraya que la transición a la era postcuántica no es solo una cuestión de implementar nuevos algoritmos, sino de actualizar la PKI y los protocolos subyacentes para que reconozcan y utilicen estos nuevos mecanismos. Hemos demostrado que, a pesar de los cambios inherentes a los algoritmos Q-Safe (como la necesidad de pares de llaves separados para cifrado y firma, o el incremento en el tamaño de las llaves encapsuladas), es posible lograr una cripto agilidad que minimice el impacto para el usuario final.


El riesgo cuántico es inminente y requiere una acción proactiva. En Cyte estamos preparados para asistir a su organización en esta migración crítica. Si desea conocer cómo Crypto-Vault® y nuestra experiencia pueden asegurar su información y facilitar su transición a la criptografía postcuántica, escríbanos a info@cyte.co.


Agradecimiento especial a GSE (Gestión de Seguridad Electrónica S.A.) por su ayuda en la implementación de este piloto.

 
 
 

Comentarios


bottom of page