czinda/cert-revocation-lab

GitHub: czinda/cert-revocation-lab

一个事件驱动的证书吊销实验环境,支持三重 PKI 层级(含后量子密码)并在 60 秒内自动响应安全事件。

Stars: 0 | Forks: 0

# 事件驱动证书吊销实验环境 一个运行 **三个独立 PKI 层级** 的全栈实验环境——RSA-4096、ECC P-384 和 NIST FIPS 204 ML-DSA-87(后量子)——基于 Dogtag PKI 和 FreeIPA。安全事件通过 Kafka 流入 Event-Driven Ansible,后者自动吊销受损证书,无需人工干预。 ### 核心能力 - **三重 PKI** —— RSA、ECC 和后量子(ML-DSA-87)层级同时运行 - **60 秒内响应** —— 从安全事件到证书吊销,零手动步骤 - **EST + ACME 注册** —— RFC 7030 和 RFC 8555 自动化证书签发 - **IoT 设备模拟** —— 采用 EST 优先策略和 REST API 回退的批量设备注册 - **31 种安全事件类型** —— 涵盖 EDR、SIEM、PKI、IoT、身份和网络威胁场景 - **分层验证** —— 具备自动修复功能的 10 级健康检查系统 ## PKI 架构 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ Triple PKI Infrastructure │ ├─────────────────────────┬─────────────────────────┬─────────────────────────┤ │ RSA-4096 PKI │ ECC P-384 PKI │ ML-DSA-87 PKI │ │ (Traditional) │ (Elliptic Curve) │ (Post-Quantum) │ ├─────────────────────────┼─────────────────────────┼─────────────────────────┤ │ Root CA (8443) │ Root CA (8463) │ Root CA (8453) │ │ │ │ │ │ │ │ │ Intermediate CA (8444) │ Intermediate CA (8464) │ Intermediate CA (8454) │ │ ├──┐ │ │ │ │ │ │ IoT Sub-CA (8445) │ IoT Sub-CA (8465) │ IoT Sub-CA (8455) │ │ EST Sub-CA (8447/EST) │ EST Sub-CA (8466/EST) │ EST Sub-CA (8456/EST) │ │ ACME Sub-CA (8446) │ │ │ ├─────────────────────────┼─────────────────────────┼─────────────────────────┤ │ Network: 172.26.0.0/24 │ Network: 172.28.0.0/24 │ Network: 172.27.0.0/24 │ │ Certs: data/certs/rsa/ │ Certs: data/certs/ecc/ │ Certs: data/certs/pq/ │ └─────────────────────────┴─────────────────────────┴─────────────────────────┘ FreeIPA (172.25.0.10:4443) - Identity Management with internal CA ``` ## 架构概览 ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Mock EDR │ │ Mock SIEM │ │ IoT Client │ │ (FastAPI) │ │ (FastAPI) │ │ (FastAPI) │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ └─────────┬─────────┘ │ ▼ │ ┌─────────────────┐ │ │ Kafka │ │ │ (security-events)│ │ └────────┬────────┘ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ Event-Driven │ │ EST/ACME │ │ Ansible │ │ Enrollment │ │ (Rulebook) │ │ │ └────────┬────────┘ └─────────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Dogtag CA │ │ FreeIPA │ │ (REST API) │ │ (Cert Revoke│ │ │ │ via API) │ └─────────────┘ └─────────────┘ ``` **事件流:** 1. Mock EDR/SIEM 检测到安全事件 2. 事件发布到 Kafka 主题 `security-events` 3. EDA rulebook 消费事件并触发 playbook 4. Playbook 在相应的 CA(RSA、ECC 或 PQ)上吊销证书 5. 证书状态更新为 REVOKED ## 组件 | 组件 | 用途 | 技术 | |-----------|---------|------------| | **Dogtag Root CA** | 信任锚(每个 PKI 层级) | Dogtag PKI, 389DS | | **Dogtag Intermediate CA** | 在线签发 CA,用于子 CA | Dogtag PKI, 389DS | | **Dogtag IoT Sub-CA** | IoT 设备证书 | Dogtag PKI, 389DS | | **Dogtag EST Sub-CA** | EST 注册 (RFC 7030) | Dogtag PKI, 389DS | | **Dogtag ACME Sub-CA** | ACME 注册 (RFC 8555) | Dogtag PKI, 389DS | | **FreeIPA** | 身份管理,用户/主机证书 | FreeIPA with Internal Dogtag CA | | **Kafka** | 事件流总线 | Confluent Kafka | | **Event-Driven Ansible** | 实时事件处理 | ansible-rulebook | | **AWX** | 自动化平台 | Ansible AWX | | **Mock EDR** | 端点检测模拟 | Python FastAPI | | **Mock SIEM** | 安全事件关联 | Python FastAPI | | **IoT Client** | IoT 设备注册模拟器 | Python FastAPI | | **Jupyter Lab** | 交互式笔记本 | JupyterLab | ## 前置条件 - **操作系统**: RHEL 8/9, Rocky Linux, CentOS Stream, Ubuntu 20.04+, 或 Debian 11+ - **资源**: 建议内存 16GB+,磁盘空间 50GB+ - **权限**: 需要 sudo 权限 ## 快速开始 ### 1. 安装前置条件 ``` # 克隆仓库 git clone https://github.com/czinda/cert-revocation-lab.git cd cert-revocation-lab # 运行设置脚本(适用于 RHEL 或 Ubuntu) ./setup-prerequisites.sh # 注销并重新登录以应用组更改 ``` ### 2. 配置环境 **选项 A: SOPS 加密机密信息(推荐)** ``` # 生成 age 密钥并加密机密信息 ./scripts/setup-sops.sh # 机密信息由 start-lab.sh 自动解密 ``` **选项 B: 手动配置** ``` cp .env.example .env vi .env # Set all CHANGEME values ``` **`.env` 中的必需设置:** - `ADMIN_PASSWORD` - 所有服务的管理员密码 - `DS_PASSWORD` - Directory Server 密码 - `DB_PASSWORD` - 数据库密码 - `PKI_ADMIN_PASSWORD` - PKI 管理员密码 - `AWX_SECRET_KEY` - AWX 密钥(使用 `openssl rand -hex 32` 生成) - `JUPYTER_TOKEN` - Jupyter 访问令牌 ### 3. 启动实验环境 ``` # 仅使用 RSA-4096 PKI 启动(默认) ./start-lab.sh # 使用特定 PKI 类型启动 ./start-lab.sh --rsa # RSA-4096 only ./start-lab.sh --ecc # ECC P-384 only ./start-lab.sh --pqc # ML-DSA-87 only (post-quantum) # 启动多种 PKI 类型 ./start-lab.sh --dual # RSA + ML-DSA-87 (hybrid deployment) ./start-lab.sh --all # All three PKI types ./start-lab.sh --rsa --ecc # RSA + ECC # 全新启动(删除所有以前的数据) ./start-lab.sh --clean --all ``` ### 4. 初始化 PKI 层级 容器启动后,初始化 PKI 层级。PKI 容器需要 **rootful podman** (sudo): ``` # 推荐:完整层级初始化(包括 EST + ACME) sudo ./scripts/pki/init-pki-hierarchy.sh # 用于 ECC PKI 层级 sudo ./scripts/pki/init-ecc-pki-hierarchy.sh # 用于 PQ (ML-DSA-87) PKI 层级 sudo ./scripts/pki/init-pq-pki-hierarchy.sh # 导出用于 EDA 的管理员凭据 ./scripts/setup-eda-auth.sh # 为 EDA 设置 SSH 以访问 rootful PKI 容器 ./scripts/setup-eda-ssh.sh ``` 初始化脚本会自动处理: - Root CA(自签名) - Intermediate CA(CSR 由 Root CA 签名) - IoT Sub-CA(CSR 由 Intermediate CA 签名) - 启用了 EST 子系统的 EST Sub-CA (RFC 7030) - 带有 ACME 响应器的 ACME Sub-CA(仅限 RSA,RFC 8555) - 管理员凭据导出 ### 5. 证书操作 使用 `lab` CLI 进行证书管理: ``` # 检查服务状态 ./lab status # 列出可用场景 ./lab scenarios # 颁发证书 ./lab issue --device mydevice --pki-type rsa --ca-level iot # 验证证书状态 ./lab verify 0x1234ABCD --pki-type rsa --ca-level iot # 通过 ACME 协议颁发 ./lab acme-issue myserver.cert-lab.local # 通过 EST 协议注册 ./lab est-enroll --device sensor01 --pki-type rsa # 从 EST 获取 CA 证书 ./lab est-cacerts --pki-type rsa ``` ### 6. 运行测试场景 ``` # 完整的端到端吊销测试 ./lab test --pki-type rsa --scenario "Certificate Private Key Compromise" # 手动触发安全事件 ./lab trigger --device mydevice --scenario "Ransomware Encryption Detected" ``` ### 7. 验证实验环境 ``` # 包含健康检查的完整验证 ./lab validate # 自动修复问题(重启容器,创建 topics) ./lab validate --fix # 从特定层级开始 ./lab validate --tier 4 # Start from PKI tier # 带有修复提示的详细输出 ./lab validate --verbose ``` **验证层级(按依赖顺序运行):** - **Tier 0**: 系统前置条件(podman, 工具, .env) - **Tier 1**: 网络与卷 - **Tier 2**: 基础设施(postgres, redis, zookeeper) - **Tier 3**: Kafka 事件总线 - **Tier 4**: PKI 基础设施(389DS, Dogtag CAs, 证书) - **Tier 5**: FreeIPA 身份管理 - **Tier 6**: AWX / Ansible runner - **Tier 7**: Event-Driven Ansible (EDA) - **Tier 8**: 安全工具(Mock EDR, SIEM, IoT Client, Jupyter) - **Tier 9**: 端到端集成测试 ### 8. 停止 / 重置实验环境 ``` # 停止所有容器 ./stop-lab.sh # 仅停止特定 PKI ./stop-lab.sh --rsa ./stop-lab.sh --ecc ./stop-lab.sh --pqc # 停止并删除所有数据 ./stop-lab.sh --clean # 完全重置(删除所有数据、volumes、certs) ./reset-lab.sh --force ``` ## 服务 URL | 服务 | URL | 凭据 | |---------|-----|-------------| | **RSA PKI** | | | | RSA Root CA | https://localhost:8443/ca | admin / (见 .env) | | RSA Intermediate CA | https://localhost:8444/ca | admin / (见 .env) | | RSA IoT Sub-CA | https://localhost:8445/ca | admin / (见 .env) | | RSA ACME Sub-CA | https://localhost:8446/ca | admin / (见 .env) | | RSA EST Sub-CA | https://localhost:8447/ca | admin / (见 .env) | | **ECC PKI** | | | | ECC Root CA | https://localhost:8463/ca | admin / (见 .env) | | ECC Intermediate CA | https://localhost:8464/ca | admin / (见 .env) | | ECC IoT Sub-CA | https://localhost:8465/ca | admin / (见 .env) | | ECC EST Sub-CA | https://localhost:8466/ca | admin / (见 .env) | | **ML-DSA-87 PKI** | | | | PQ Root CA | https://localhost:8453/ca | admin / (见 .env) | | PQ Intermediate CA | https://localhost:8454/ca | admin / (见 .env) | | PQ IoT Sub-CA | https://localhost:8455/ca | admin / (见 .env) | | PQ EST Sub-CA | https://localhost:8456/ca | admin / (见 .env) | | **基础设施** | | | | FreeIPA | https://localhost:4443/ipa/ui | admin / (见 .env) | | AWX | http://localhost:8084 | admin / (见 .env) | | Mock EDR API | http://localhost:8082 | - | | Mock SIEM API | http://localhost:8083 | - | | IoT Client API | http://localhost:8085 | - | | EDA Webhook | http://localhost:5000 | - | | Jupyter Lab | http://localhost:8888 | Token: (见 .env) | ## 容器网络 **主网络 (172.20.0.0/16)** - rootless podman: | IP 地址 | 服务 | 端口 | |------------|---------|-------| | 172.20.0.20 | PostgreSQL | internal | | 172.20.0.21 | Redis | internal | | 172.20.0.22-23 | AWX Web/Task | 8084:8052 | | 172.20.0.30 | Zookeeper | 2181 | | 172.20.0.31 | Kafka | 9092 | | 172.20.0.40 | EDA Server | 5000 | | 172.20.0.50 | Mock EDR | 8082:8000 | | 172.20.0.51 | Mock SIEM | 8083:8000 | | 172.20.0.52 | IoT Client | 8085:8000 | | 172.20.0.60 | Jupyter | 8888 | **RSA-4096 PKI 网络 (172.26.0.0/24)** - rootful podman: | IP 地址 | 服务 | 端口 | |------------|---------|-------| | 172.26.0.12 | RSA Root CA | 8443:8443 | | 172.26.0.11 | RSA Intermediate CA | 8444:8443 | | 172.26.0.13 | RSA IoT CA | 8445:8443 | | 172.26.0.18 | ACME Sub-CA | 8446:8443 | | 172.26.0.20 | RSA EST CA | 8447:8443 | | 172.26.0.14-16 | 389DS instances | internal | | 172.26.0.17 | 389DS (ACME) | internal | | 172.26.0.19 | 389DS (EST) | internal | **ECC P-384 PKI 网络 (172.28.0.0/24)** - rootful podman: | IP 地址 | 服务 | 端口 | |------------|---------|-------| | 172.28.0.12 | ECC Root CA | 8463:8443 | | 172.28.0.11 | ECC Intermediate CA | 8464:8443 | | 172.28.0.13 | ECC IoT CA | 8465:8443 | | 172.28.0.18 | ECC EST CA | 8466:8443 | | 172.28.0.14-16 | 389DS instances | internal | | 172.28.0.17 | 389DS (EST) | internal | **ML-DSA-87 PKI 网络 (172.27.0.0/24)** - rootful podman: | IP 地址 | 服务 | 端口 | |------------|---------|-------| | 172.27.0.12 | PQ Root CA | 8453:8443 | | 172.27.0.11 | PQ Intermediate CA | 8454:8443 | | 172.27.0.13 | PQ IoT CA | 8455:8443 | | 172.27.0.18 | PQ EST CA | 8456:8443 | | 172.27.0.14-16 | 389DS instances | internal | | 172.27.0.17 | 389DS (EST) | internal | **FreeIPA 网络 (172.25.0.0/24)** - rootful podman: | IP 地址 | 服务 | 端口 | |------------|---------|-------| | 172.25.0.10 | FreeIPA (ipa.cert-lab.local) | 4443:443, 8180:80, 3390:389, 6360:636 | ## 项目结构 ``` cert-revocation-lab/ ├── podman-compose.yml # Main services (Kafka, AWX, EDA, EDR, SIEM, etc.) ├── pki-compose.yml # RSA-4096 PKI containers ├── pki-ecc-compose.yml # ECC P-384 PKI containers ├── pki-pq-compose.yml # ML-DSA-87 PKI containers ├── freeipa-compose.yml # FreeIPA container ├── setup-prerequisites.sh # Cross-platform podman installation ├── start-lab.sh # Phased startup (--rsa, --ecc, --pqc, --all) ├── stop-lab.sh # Shutdown script ├── reset-lab.sh # Full reset (--force to remove all data) ├── lab # Python CLI entry point ├── .env # Environment configuration │ ├── lab_cli/ # Python CLI package │ ├── cli.py # Command definitions │ ├── config.py # Configuration │ ├── services.py # Service health checks │ ├── pki.py # PKI operations │ ├── events.py # Event handling │ ├── protocols.py # ACME/EST protocol support │ └── validate.py # Lab validation engine │ ├── configs/pki/ # Dogtag pkispawn configurations │ ├── root-ca.cfg # RSA Root CA │ ├── ecc-root-ca.cfg # ECC Root CA │ ├── pq-root-ca.cfg # PQ Root CA │ ├── *-step1.cfg / *-step2.cfg # Subordinate CA configs (CSR/install phases) │ └── est-ca-*.cfg # EST Sub-CA configs (per PKI type) │ ├── scripts/ │ ├── pki-cli.py # Low-level certificate management tool │ ├── lib-common.sh # Shared shell functions │ ├── setup-sops.sh # SOPS encrypted secrets setup │ ├── setup-eda-ssh.sh # EDA SSH key setup │ ├── setup-eda-auth.sh # EDA admin credential export │ └── pki/ # PKI initialization scripts │ ├── init-pki-hierarchy.sh # RSA full hierarchy (+ ACME + EST) │ ├── init-ecc-pki-hierarchy.sh # ECC full hierarchy (+ EST) │ ├── init-pq-pki-hierarchy.sh # PQ full hierarchy (+ EST) │ ├── init-*-ca.sh # Individual CA init scripts │ ├── enable-est.sh # EST subsystem enablement │ └── sign-csr.sh # CSR signing utility │ ├── containers/ │ ├── mock-edr/ # FastAPI EDR simulator │ ├── mock-siem/ # FastAPI SIEM simulator │ ├── iot-client/ # FastAPI IoT enrollment simulator │ └── dogtag-pq/ # Custom Dogtag build with ML-DSA support │ ├── ansible/ │ ├── playbooks/ │ │ ├── dogtag-rsa-revoke-certificate.yml # RSA revocation │ │ ├── dogtag-ecc-revoke-certificate.yml # ECC revocation │ │ ├── dogtag-pqc-revoke-certificate.yml # PQ revocation │ │ ├── dogtag-rsa-issue-certificate.yml # RSA issuance │ │ ├── dogtag-ecc-issue-certificate.yml # ECC issuance │ │ ├── dogtag-pqc-issue-certificate.yml # PQ issuance │ │ ├── init-pki-hierarchy.yml # Ansible-based PKI init │ │ └── sign-csr.yml # Sign CSRs via Ansible │ ├── rulebooks/ │ │ └── security-events.yml # EDA event handler (31 rules) │ ├── roles/ # Ansible roles for PKI │ └── inventory/ │ └── pki_hosts.yml # PKI container inventory │ ├── .archive/ # Superseded scripts (kept for reference) │ └── data/ # Persistent data (gitignored) ├── certs/ │ ├── rsa/ # RSA-4096 certificates │ ├── ecc/ # ECC P-384 certificates │ └── pq/ # ML-DSA-87 certificates └── pki/ # PKI data volumes ``` ## Lab CLI 参考 `lab` CLI (`./lab`) 为所有实验室操作提供了一个统一的接口: | 命令 | 描述 | |---------|-------------| | `./lab status` | 检查所有实验服务的健康状况 | | `./lab scenarios` | 列出可用的安全事件场景 | | `./lab test` | 运行完整的端到端吊销测试 | | `./lab issue` | 从 Dogtag PKI 签发证书 | | `./lab trigger` | 通过 EDR/SIEM 触发安全事件 | | `./lab verify` | 检查证书吊销状态 | | `./lab validate` | 运行全面的实验验证检查 | | `./lab acme-issue` | 通过 ACME 协议签发证书 (RFC 8555) | | `./lab est-enroll` | 通过 EST 协议注册证书 (RFC 7030) | | `./lab est-cacerts` | 从 EST 端点获取 CA 证书 | ``` # 安装依赖项 pip install typer rich httpx # 或者安装该 package pip install -e . ``` ## Mock 安全工具 API ### EDR 端点 ``` # 健康检查 curl http://localhost:8082/health # 列出攻击场景 curl http://localhost:8082/scenarios # 触发安全事件 curl -X POST http://localhost:8082/trigger \ -H "Content-Type: application/json" \ -d '{"device_id": "workstation01", "scenario": "Mimikatz Credential Dumping", "severity": "critical"}' ``` ### SIEM 端点 ``` # 健康检查 curl http://localhost:8083/health # 列出关联规则 curl http://localhost:8083/rules # 创建 SIEM 告警 curl -X POST http://localhost:8083/alert \ -H "Content-Type: application/json" \ -d '{"source_ip": "10.0.0.50", "alert_type": "malware_callback", "severity": "critical", "device_hostname": "server01"}' ``` ### IoT 客户端端点 ``` # 健康检查(包括每种 PKI 类型的 CA 可用性) curl http://localhost:8085/health # 创建一个 IoT 设备 curl -X POST http://localhost:8085/devices \ -H "Content-Type: application/json" \ -d '{"device_type": "sensor", "pki_type": "rsa"}' # 注册设备以获取证书(如可用则使用 EST,回退至 REST API) curl -X POST http://localhost:8085/devices/{device_id}/enroll # 批量注册 10 个设备 curl -X POST http://localhost:8085/bulk/enroll \ -H "Content-Type: application/json" \ -d '{"count": 10, "device_type": "sensor", "pki_type": "ecc"}' # 获取注册统计数据 curl http://localhost:8085/statistics ``` ## 安全事件类型 EDA rule 处理 6 个类别共 31 种事件类型,并将每种事件路由到相应的 PKI 层级: | 类别 | 事件类型 | |----------|-------------| | **核心** | malware_detection, credential_theft, ransomware, c2_communication, lateral_movement, privilege_escalation, suspicious_script | | **PKI/证书** | key_compromise, geo_anomaly, compliance_violation, mitm_detected, rogue_ca | | **IoT** | firmware_integrity, device_cloning, iot_anomaly, protocol_attack | | **身份** | impossible_travel, service_account_abuse, mfa_bypass, kerberoasting | | **网络** | tls_downgrade, ct_log_mismatch, ocsp_bypass | | **SIEM** | data_exfiltration, unauthorized_access, certificate_misuse | 事件可以使用 `pki_type` 字段(`rsa`、`ecc`、`pqc`)针对特定的 PKI 层级。默认为 RSA-4096。 ## 工作原理 ``` 1. Mock EDR detects "Mimikatz Credential Dumping" on workstation01 2. EDR publishes event to Kafka topic "security-events" 3. EDA rulebook matches event → triggers RSA revocation playbook 4. Playbook finds certificate by subject, revokes on IoT Sub-CA 5. Certificate status changes to REVOKED (reason: key_compromise) Total elapsed: ~45 seconds ``` ## 性能 | 指标 | 数值 | |--------|-------| | 检测到吊销耗时 | < 60 秒 | | 手动基线 | 4-8 小时 | | 时间缩减 | 99.8% | | 人工干预 | 零 | ## 故障排除 ### 查看容器日志 ``` # 主要服务(rootless podman) podman-compose logs -f # RSA PKI 容器(rootful podman) sudo podman-compose -f pki-compose.yml logs -f # ECC PKI 容器 sudo podman-compose -f pki-ecc-compose.yml logs -f # PQ PKI 容器 sudo podman-compose -f pki-pq-compose.yml logs -f # FreeIPA sudo podman logs -f freeipa ``` ### 检查容器状态 ``` podman-compose ps # 用于 rootful PKI 容器 sudo podman ps ``` ### 重启服务 ``` podman-compose restart ``` ### 重置 PKI 数据 ``` # 完全重置(删除所有数据、volumes、certs) ./reset-lab.sh --force # 或者停止并清理 ./stop-lab.sh --clean ./start-lab.sh ``` ### DNS/网络问题 (aardvark-dns) 如果您看到 `aardvark-dns runs in a different netns` 错误: ``` # 停止所有容器 podman-compose down sudo podman-compose -f pki-compose.yml down # 终止 DNS 进程并移除目录 pkill aardvark-dns rm -rf /run/user/$(id -u)/containers/networks/aardvark-dns # 用于 rootful podman sudo pkill aardvark-dns sudo rm -rf /run/podman/networks/aardvark-dns # 重启容器 ./start-lab.sh ``` ### 证书吊销问题 **手动吊销:** ``` # 使用 lab CLI ./lab verify 0x --pki-type rsa --ca-level iot # 使用 pki-cli.py(底层) ./scripts/pki-cli.py revoke 0x --ca iot --reason key_compromise ``` ### PKI 容器无法启动 PKI 容器需要 rootful podman(systemd 支持): ``` # 使用 sudo 启动 PKI sudo podman-compose -f pki-compose.yml up -d # 查看日志 sudo podman logs dogtag-root-ca ``` ### 运行实验验证 ``` # 带有自动修复的综合检查 ./lab validate --fix --verbose ``` ## 使用的技术 - **[Dogtag PKI](https://www.dogtagpki.org/)** - 企业级证书颁发机构 - **[FreeIPA](https://www.freeipa.org/)** - 身份管理 - **[389 Directory Server](https://www.port389.org/)** - LDAP 服务器 - **[Ansible AWX](https://github.com/ansible/awx)** - 自动化平台 - **[Event-Driven Ansible](https://www.ansible.com/use-cases/event-driven-automation)** - 实时自动化 - **[Apache Kafka](https://kafka.apache.org/)** - 事件流 - **[Podman](https://podman.io/)** - 容器运行时 - **[FastAPI](https://fastapi.tiangolo.com/)** - Python Web 框架 ## 相关标准 | 标准 | 实验室中的应用 | |----------|-------------| | [RFC 7030](https://datatracker.ietf.org/doc/html/rfc7030) | 通过专用 EST Sub-CA 进行 EST 证书注册 | | [RFC 8555](https://datatracker.ietf.org/doc/html/rfc8555) | ACME 自动化证书签发(RSA 层级) | | [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) | X.509 证书配置文件和 CRL 生成 | | [FIPS 204](https://csrc.nist.gov/pubs/fips/204/final) | ML-DSA-87 后量子数字签名 | | [NIST SP 800-207](https://csrc.nist.gov/pubs/sp/800/207/final) | 零信任架构原则 | ## 作者 **czinda** - Red Hat 高级技术产品经理 关注领域:PKI, 身份管理, 零信任架构 ## 许可证 仅供教育/演示使用
标签:ACME, Ansible, Dogtag PKI, ECC P-384, EDR, EST, FreeIPA, IoT安全, JSONLines, Kafka, ML-DSA-87, RSA-4096, SonarQube插件, 事件驱动架构, 公钥基础设施, 即时响应, 合规自动化, 后量子密码学, 域名收集, 实验室环境, 数字证书, 结构化查询, 网络安全, 联邦身份, 脆弱性评估, 自动化安全, 证书吊销, 身份管理, 软件成分分析, 逆向工具, 量子安全, 隐私保护, 零信任