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

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

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

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

工具目录

分类

查看所有分类
Loading categories
ejbca-pqc-lab — 基于 EJBCA Community Edition 的纯 PQC 双层 PKI 层级结构,使用 ML-DSA-65(NIST FIPS 204)— 根 CA + 子 CA,支持 CRL 和 OCSP | Kitploit
工具/GitHubGitHub/mokokash/ejbca-pqc-lab
密码学云安全论文与研究学习与教育实验室与实践
GitHubmokokash/ejbca-pqc-lab

ejbca-pqc-lab

基于 EJBCA Community Edition 的纯 PQC 双层 PKI 层级结构,使用 ML-DSA-65(NIST FIPS 204)— 根 CA + 子 CA,支持 CRL 和 OCSP

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

EJBCA 纯 PQC 实验室 — ML-DSA-65 双层 PKI 层级结构

使用 EJBCA 社区版,在双层 PKI 层级结构中动手实现 NIST FIPS 204 (ML-DSA)。

📖 完整演练: 构建后量子 PKI:我是如何在 EJBCA 上使用 ML-DSA 签署根 CA 和子 CA 的


本实验室构建的内容

一个完整的纯 PQC PKI 层级结构,跨两台独立的虚拟机运行,每台虚拟机都有自己的 EJBCA 容器:

root@kitploit:~
VM 1 — Root CA
  └─ ML-DSA-65 self-signed Root CA
  └─ CRL published and reachable

VM 2 — Sub CA
  └─ ML-DSA-65 Sub CA signed by Root CA
  └─ CRL published and reachable
  └─ OCSP responder active

证书链中的每一份证书(根 CA、子 CA)均仅使用 ML-DSA-65 (NIST FIPS 204) 签名。无 RSA。无 ECDSA。端到端纯 PQC。


为什么选择 ML-DSA-65

ML-DSA(前身为 CRYSTALS-Dilithium)是 FIPS 204 下经 NIST 标准化的后量子数字签名算法。本实验室选用 Dilithium3 参数集(ML-DSA-65)——它提供 128 位后量子安全性,是大多数部署场景下推荐的全用途选项。


仓库结构

root@kitploit:~
ejbca-pqc-lab/
├── README.md
├── root-ca/
│   └── setup-lab.sh     # Run on VM1 — sets up the Root CA machine
└── sub-ca/
    └── setup-lab.sh     # Run on VM2 — sets up the Sub CA machine

前提条件

  • 两台 Linux 虚拟机(推荐 Ubuntu 22.04 或 24.04)
  • 两台虚拟机位于同一网络且能互相访问
  • 两台机器均具有 sudo 访问权限
  • EJBCA 社区版 9.3.7 或更高版本(由脚本自动拉取)

快速开始

VM 1 — 根 CA 机器

root@kitploit:~
chmod +x setup-lab.sh
sudo ./setup-lab.sh

完成后,通过以下地址访问管理界面(Admin UI):

root@kitploit:~
https://<VM1_IP>:8443/ejbca/adminweb/

将容器中的 superadmin.p12 导入浏览器:

root@kitploit:~
docker cp ejbca:/opt/ejbca/p12/superadmin.p12 ~/superadmin.p12

默认密码:ejbca

然后按照 Medium 文章手动配置根 CA。


VM 2 — 子 CA 机器

root@kitploit:~
chmod +x setup-lab.sh
sudo ./setup-lab.sh

完成后,通过以下地址访问管理界面(Admin UI):

root@kitploit:~
https://<VM2_IP>:8443/ejbca/adminweb/

以同样方式导入 superadmin.p12,然后按照 Medium 文章配置子 CA。


脚本的作用

  1. 安装 Docker
  2. 安装 Docker Compose
  3. 创建持久化 ejbca-data 卷
  4. 生成 docker-compose.yml
  5. 启动 EJBCA 容器
  6. 等待 EJBCA 初始化,最长 5 分钟
  7. 打印访问地址和后续步骤

脚本不做什么

所有 EJBCA 配置均通过管理界面(Admin UI)手动完成——证书配置文件、加密令牌、CA 创建、CRL 设置和 OCSP。这是有意为之。脚本负责让平台运行起来,而 Medium 文章记录了每一项手动决策及其原因。


吊销基础设施

组件CA状态

未包含的内容及原因

ACME — ACME 协议(RFC 8555)不支持使用 ML-DSA 进行账户密钥认证,仅允许 RSA 和 ECDSA。若加入 ACME,则需要经典账户密钥,从而破坏纯 PQC 设定。IETF 正在制定 PQC ACME 草案,待其定稿后本实验室将进行更新。

浏览器信任 — 目前尚无主流浏览器信任库支持 ML-DSA。这是一个私有 PKI 实验室,而非公开受信任的层级结构。这符合预期,也是正确的。


作者

Mohammad Amin Kokash 安全工程师 GitHub · Medium


许可证

MIT

下载工具
CRL根 CA✅
CRL子 CA✅
OCSP子 CA✅
OCSP根 CA❌ 不适用