Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
camel-pqc-tls — 使用X25519MLKEM768混合密钥交换的Apache Camel的量子后加密(PQC)TLS 1.3示例,基于JDK 21(BouncyCastle)和JDK 27(原生) | Kitploit
工具/GitHubGitHub/oscerd/camel-pqc-tls
网络安全密码学学习与教育精选资源
GitHuboscerd/camel-pqc-tls

camel-pqc-tls

使用X25519MLKEM768混合密钥交换的Apache Camel的量子后加密(PQC)TLS 1.3示例,基于JDK 21(BouncyCastle)和JDK 27(原生)

查看仓库
2134个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

基于 Apache Camel 的后量子 TLS

本仓库包含三个示例,演示了在 Apache Camel 中使用 X25519MLKEM768 混合密钥交换进行 后量子密码学 (PQC) TLS 1.3 握手。

X25519MLKEM768 将经典的 X25519 椭圆曲线 Diffie-Hellman 与 ML-KEM-768(一种基于后量子格的密钥封装机制,NIST FIPS 203)相结合。两种算法同时运行,即使其中一种被破解,安全性也得以维持。

示例

示例JDKTLS 提供者方法
pqc-ssl-contextJDK 27SunJSSE (JDK 原生)JEP 527 为 JDK 内置的 TLS 栈添加了 PQC 命名组
pqc-kem-jdk24JDK 24BouncyCastle JSSE 1.83BCJSSE 用于 PQC TLS,JDK 通过 JEP 496 提供原生 ML-KEM 原语
pqc-ssl-context-jdk21JDK 21BouncyCastle JSSE 1.83BCJSSE 替代 SunJSSE,立即提供 PQC TLS 支持

所有三个示例完全通过 camel.ssl.* 属性配置,并使用 X25519MLKEM768 执行自包含的 TLS 1.3 握手以实现后量子密钥交换,启动时验证,并可通过 REST 端点按需使用。

它们有何不同

JDK 27 原生 (pqc-ssl-context)

使用 JDK 内置的 SunJSSE 提供者,该提供者通过 JDK 27 中的 JEP 527 获得 PQC TLS 支持。

  • 通过 camel.ssl.namedGroups=X25519MLKEM768,x25519 配置 PQC
  • 自动生成自签名证书 (camel.ssl.selfSigned=true)
  • REST 端点通过 HTTPS 在端口 8443 上提供服务
  • 通过 SSLParameters.setNamedGroups()(标准 JDK API)设置命名组

JDK 24 + BouncyCastle (pqc-kem-jdk24)

使用 BouncyCastle 的 JSSE 提供者 (BCJSSE) 为 JDK 24 带来 PQC TLS 支持。虽然 JDK 24 包含原生 ML-KEM 作为独立加密原语(JEP 496),但它未在 TLS 栈中公开 PQC 命名组。BCJSSE 弥补了这一差距。

  • 通过 camel.ssl.provider=BCJSSE 和 camel.ssl.namedGroups=X25519MLKEM768,secp256r1 配置 PQC
  • 自动生成自签名证书 (camel.ssl.selfSigned=true)
  • REST 端点通过 HTTPS 在端口 8443 上提供服务
  • 额外的 /api/verify-kem 端点演示了 JDK 24 的原生 javax.crypto.KEM API 并进行跨提供者互操作测试
  • 需要引导类注册 BouncyCastle 提供者

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

使用 BouncyCastle 的 JSSE 提供者 (BCJSSE) 为 JDK 21 带来 PQC TLS 支持,无需等待 JDK 27。

  • 通过 camel.ssl.provider=BCJSSE 和 camel.ssl.namedGroups=X25519MLKEM768,secp256r1 配置 PQC
  • 自动生成自签名证书 (camel.ssl.selfSigned=true)
  • REST 端点通过 HTTPS 在端口 8443 上提供服务
  • 需要引导类注册 BouncyCastle 提供者并从 jdk.tls.disabledAlgorithms 中移除 ECDH

并列比较

前提条件

  • Maven 3.9+
  • Apache Camel 4.19.0-SNAPSHOT(或更高版本)安装在本地 Maven 仓库中
  • JDK 27 EA(用于原生示例),JDK 24(用于 JDK 24 示例),或 JDK 21+(用于 JDK 21 示例)

快速启动

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

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

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

当 PQC TLS 握手成功时,所有三个示例都会返回 "pqcVerified": true。

JDK 兼容性

帮助与贡献

如果您在使用 Camel 时遇到任何问题或有任何反馈,请告诉我们。

我们也非常欢迎贡献者,所以加入我们 :-)

Camel 骑士团!

下载工具
方面JDK 27 原生JDK 24 + BouncyCastleJDK 21 + BouncyCastle
JDK 要求JDK 27 EAJDK 24+JDK 21+
TLS 提供者SunJSSEBCJSSE 1.83BCJSSE 1.83
PQC 机制JEP 527(内置)BouncyCastle TLS 库BouncyCastle TLS 库
原生 ML-KEM (KEM API)是是 (JEP 496)否
配置camel.ssl.* 属性camel.ssl.* 属性camel.ssl.* 属性
证书管理camel.ssl.selfSigned=truecamel.ssl.selfSigned=truecamel.ssl.selfSigned=true
REST 端口8443 (HTTPS)8443 (HTTPS)8443 (HTTPS)
额外依赖无(JDK 原生)bcprov, bctlsbcprov, bctls
JDK 版本ML-KEM KEM APITLS 中的 PQC方法
21否是(通过 BouncyCastle)pqc-ssl-context-jdk21 - BCJSSE 提供 PQC TLS 支持
24是 (JEP 496)是(通过 BouncyCastle)pqc-kem-jdk24 - BCJSSE 用于 TLS,JDK 拥有原生 ML-KEM 原语
27是是(原生)pqc-ssl-context - JEP 527 为 SunJSSE 添加 PQC