Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
camel-pqc-tls — Criptografía Post-Cuántica (PQC): ejemplos de TLS 1.3 con Apache Camel usando intercambio de claves híbrido X25519MLKEM768 en JDK 21 (BouncyCastle) y JDK 27 (nativo) | Kitploit
Herramientas/GitHubGitHub/oscerd/camel-pqc-tls
Seguridad de RedesCriptografíaAprendizaje y EducaciónRecursos Curados
GitHuboscerd/camel-pqc-tls

camel-pqc-tls

Criptografía Post-Cuántica (PQC): ejemplos de TLS 1.3 con Apache Camel usando intercambio de claves híbrido X25519MLKEM768 en JDK 21 (BouncyCastle) y JDK 27 (nativo)

Ver Repositorio
21hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

TLS Post-Cuántico con Apache Camel

Este repositorio contiene tres ejemplos que demuestran handshakes TLS 1.3 de Criptografía Post-Cuántica (PQC) con Apache Camel, utilizando el intercambio de claves híbrido X25519MLKEM768.

X25519MLKEM768 combina el clásico X25519 Diffie-Hellman de curva elíptica con ML-KEM-768, un mecanismo de encapsulación de claves post-cuántico basado en retículos (NIST FIPS 203). Ambos algoritmos se ejecutan juntos, por lo que la seguridad se mantiene incluso si uno se ve comprometido.

Ejemplos

EjemploJDKProveedor TLSEnfoque
pqc-ssl-contextJDK 27SunJSSE (nativo del JDK)JEP 527 añade grupos con nombre PQC a la pila TLS integrada del JDK
pqc-kem-jdk24JDK 24BouncyCastle JSSE 1.83BCJSSE para TLS PQC, el JDK tiene primitivas ML-KEM nativas vía JEP 496
pqc-ssl-context-jdk21JDK 21BouncyCastle JSSE 1.83BCJSSE reemplaza a SunJSSE para proporcionar soporte TLS PQC hoy en día

Los tres ejemplos se configuran íntegramente a través de las propiedades camel.ssl.* y realizan un handshake TLS 1.3 autocontenido usando X25519MLKEM768 para el intercambio de claves post-cuántico, verificado al inicio y disponible bajo demanda mediante endpoints REST.

En qué se diferencian

JDK 27 nativo (pqc-ssl-context)

Usa el proveedor SunJSSE integrado del JDK, que obtiene soporte TLS PQC mediante JEP 527 en JDK 27.

  • PQC configurado vía camel.ssl.namedGroups=X25519MLKEM768,x25519
  • Certificado autofirmado generado automáticamente (camel.ssl.selfSigned=true)
  • Endpoints REST servidos sobre HTTPS en el puerto 8443
  • Grupos con nombre definidos mediante SSLParameters.setNamedGroups() (API estándar del JDK)

JDK 24 con BouncyCastle (pqc-kem-jdk24)

Usa el proveedor JSSE de BouncyCastle (BCJSSE) para llevar soporte TLS PQC a JDK 24. Aunque JDK 24 incluye ML-KEM nativo como primitiva criptográfica independiente (JEP 496), no expone grupos con nombre PQC en su pila TLS. BCJSSE cubre esa brecha.

  • PQC configurado vía camel.ssl.provider=BCJSSE y camel.ssl.namedGroups=X25519MLKEM768,secp256r1
  • Certificado autofirmado generado automáticamente (camel.ssl.selfSigned=true)
  • Endpoints REST servidos sobre HTTPS en el puerto 8443
  • Un endpoint adicional /api/verify-kem demuestra la API nativa javax.crypto.KEM de JDK 24 con pruebas de interoperabilidad entre proveedores
  • Requiere una clase de arranque para registrar los proveedores de BouncyCastle

JDK 21 con BouncyCastle (pqc-ssl-context-jdk21)

Usa el proveedor JSSE de BouncyCastle (BCJSSE) para llevar soporte TLS PQC a JDK 21, sin esperar a JDK 27.

  • PQC configurado vía camel.ssl.provider=BCJSSE y camel.ssl.namedGroups=X25519MLKEM768,secp256r1
  • Certificado autofirmado generado automáticamente (camel.ssl.selfSigned=true)
  • Endpoints REST servidos sobre HTTPS en el puerto 8443
  • Requiere una clase de arranque para registrar los proveedores de BouncyCastle y eliminar ECDH de jdk.tls.disabledAlgorithms

Comparación lado a lado

Requisitos previos

  • Maven 3.9+
  • Apache Camel 4.19.0-SNAPSHOT (o posterior) instalado en el repositorio local de Maven
  • JDK 27 EA para el ejemplo nativo, JDK 24 para el ejemplo de JDK 24, o JDK 21+ para el ejemplo de JDK 21

Inicio rápido

Ejemplo con JDK 27

root@kitploit:~
cd pqc-ssl-context
sdk use java 27.ea.11-open
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc

Ejemplo con JDK 24

root@kitploit:~
cd pqc-kem-jdk24
sdk use java 24.0.1-tem
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc
curl -k https://localhost:8443/api/verify-kem

Ejemplo con JDK 21

root@kitploit:~
cd pqc-ssl-context-jdk21
sdk use java 21.0.10-tem
mvn clean compile exec:exec
curl -k https://localhost:8443/api/verify-pqc

Los tres devolverán "pqcVerified": true cuando el handshake TLS PQC se complete correctamente.

Compatibilidad con JDK

Ayuda y contribuciones

Si tienes algún problema usando Camel o tienes algún comentario, por favor haznoslo saber.

También nos encantan los colaboradores, así que participa :-)

¡Los jinetes de Camel!

Descargar herramienta
AspectoJDK 27 nativoJDK 24 + BouncyCastleJDK 21 + BouncyCastle
Requisito de JDKJDK 27 EAJDK 24+JDK 21+
Proveedor TLSSunJSSEBCJSSE 1.83BCJSSE 1.83
Mecanismo PQCJEP 527 (integrado)Biblioteca TLS de BouncyCastleBiblioteca TLS de BouncyCastle
ML-KEM nativo (API KEM)SíSí (JEP 496)No
ConfiguraciónPropiedades camel.ssl.*Propiedades camel.ssl.*Propiedades camel.ssl.*
Gestión de certificadoscamel.ssl.selfSigned=truecamel.ssl.selfSigned=truecamel.ssl.selfSigned=true
Puerto REST8443 (HTTPS)8443 (HTTPS)8443 (HTTPS)
Dependencias adicionalesNinguna (nativo del JDK)bcprov, bctlsbcprov, bctls
Versión de JDKAPI KEM de ML-KEMPQC en TLSEnfoque
21NoSí (vía BouncyCastle)pqc-ssl-context-jdk21 - BCJSSE proporciona soporte TLS PQC
24Sí (JEP 496)Sí (vía BouncyCastle)pqc-kem-jdk24 - BCJSSE para TLS, el JDK tiene primitivas ML-KEM nativas
27SíSí (nativo)pqc-ssl-context - JEP 527 añade PQC a SunJSSE