Creando un certificado digital utilizando un algoritmo de encriptación post-cuántica
OpenSSL 3.5 introdujo soporte para los algoritmos tipo PQC: ML-KEM, ML-DSA y SLH-DSA

Search for a command to run...
OpenSSL 3.5 introdujo soporte para los algoritmos tipo PQC: ML-KEM, ML-DSA y SLH-DSA

No comments yet. Be the first to comment.
Una imagen con soporte multiarquitectura le permite correr su software en diferentes plataformas de hardware

Utilidad para arrancar varios sistemas operativos usando una sola memoria USB

Requerimientos y ejemplos para utilizar esta tecnología en plataformas de Microsoft

Todos los nodos activos simultáneamente compartiendo la carga de trabajo, habilitando alta disponibilidad y escalabilidad.

Ideas y tecnología
8 posts
Es posible crear un certificado digital que implemente algoritmos PQC (Post-Quantum Crypto). Vamos a demostrar como es posible generar un par de llaves ML-DSA y utilizarlas dentro de un certificado X.509, ya sea self-signed o firmado por un CA privado usando las herramientas CLI de OpenSSL.
El soporte para ML-DSA fue introducido a partir de OpenSSL 3.5.
Existen algoritmos PQC para varios propósitos, pero en esta guía nos vamos a enfocar en algoritmos stateless y asimétricos para firmas digitales: ml-dsa-44, ml-dsa-65 y ml-dsa-87 (categorías de seguridad 128/192/256-bit).
Tome en cuenta que el soporte en la actualidad a nivel de industria para este tipo de certificados sigue siendo limitado. No se recomienda utilizar este tipo de certificados TODAVIA en producción a no ser que sepa MUY BIEN lo que está haciendo.
Esta vez vamos a utilizar Windows para nuestro tutorial, pero las instrucciones funcionan para cualquier sistema operativo en el que se pueda utilizar openssl 3.5+.
Bajar la versión más reciente de OpenSSL en versión ZIP para Windows de aquí:
https://download.firedaemon.com/FireDaemon-OpenSSL/FireDaemon-OpenSSL-x64-3.6.0.exe
Ejecute el instalador y asegúrese de habilitar la opción de agregar al PATH:

Abra una sesión de DOS/command prompt y asegúrese de tener permisos de lectura/escritura en el directorio de trabajo que decida utilizar

Vamos a enfocarnos en un ejemplo básico que no incluya un RA, el cual es un componente clave cuando se construye una infrastuctura de PKI. Por lo pronto, comenzamos creando el CA:
Generar una llave privada ML-DSA (escoja ml-dsa-44 / -65 / -87)
openssl genpkey -algorithm ml-dsa-87 -out ca-priv.pem
Generamos un CA temporal para pruebas utilizando un certificado self-signed con una validez de 10 años:
openssl req -x509 -new -key ca-priv.pem -subj "/CN=Test CA" -days 3650 -nodes -keyout ca.key -out ca.crt
Generar una llave privada ML-DSA (escoja ml-dsa-44 / -65 / -87)
openssl genpkey -algorithm ml-dsa-65 -out mldsa65-priv.pem
Extraiga la llave pública
openssl pkey -in mldsa65-priv.pem -pubout -out mldsa65-pub.pem
Crear un CSR
openssl req -new -key mldsa65-priv.pem -subj "/CN=example.local" -out mldsa65.csr
Crear un certificado self-signed con una validez de 1 año:
openssl req -x509 -new -key mldsa65-priv.pem -subj "/CN=example.local" -days 365 -out mldsa65-self.crt
Firmar el CSR con un CA cert+key
openssl x509 -req -in mldsa65.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 365 -out mldsa65-by-ca.crt
Obtener una versión texto del certificado privado:
openssl x509 -in mldsa65-by-ca.crt -text -noout

Verificar el certificado firmado por el CA:
openssl verify -CAfile ca.crt mldsa65-by-ca.crt

El Post-Quantum Cryptography (PQC) es el futuro, Microsoft ya comenzó a soportar librerías de PQC en .NET 10, Chrome Browser desde hace varios años empezó la adopción de PQC, y existen muchos otros ejemplos más de los gigantes de la industria adoptando estas prácticas.
Este laboratorio permite tener acceso a los mismos algoritmos y tecnología criptográfica que los gigantes de la industria están empezando a adoptar alrededor del planeta.