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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/mrcord77/rust_citadel
身份验证与授权加密/解密工具密码学云安全API 安全
GitHubmrcord77/rust_citadel

rust_citadel

后量子混合加密库,结合 X25519 + ML-KEM-768 与 AES-256-GCM

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Citadel

后量子混合加密与密钥管理服务器。

Citadel 结合了 X25519 + ML-KEM-768 进行密钥封装,并使用 AES-256-GCM 进行数据加密,遵循 NIST 为后量子过渡提出的混合方法。应用程序通过 REST API 进行加密和解密。Citadel 负责管理密钥——包括生成、轮换、撤销、访问控制和审计日志记录。

状态: 功能实现。未经审计。无生产部署。请参阅下面的安全说明。


功能概述

root@kitploit:~
Your Application              Citadel                         Database
       |                         |                               |
       |-- POST /encrypt ------->|                               |
       |                         |-- hybrid KEM (X25519+ML-KEM)  |
       |                         |-- derive AES-256 key (HKDF)   |
       |                         |-- encrypt with AES-256-GCM    |
       |<-- encrypted blob ------|                               |
       |                                                         |
       |-- store blob ------------------------------------------>|

您的应用程序永远不会接触原始密钥材料。加密 blob 是自包含的——它包含包装密钥、算法标识符和密文。您可以将它存储在任何数据库中。通过将 blob 连同相同的 AAD 和上下文发送回 Citadel 来进行解密。

架构

root@kitploit:~
citadel-envelope    混合加密核心(X25519 + ML-KEM-768 + AES-256-GCM)
citadel-keystore    密钥生命周期管理,4级层次结构,威胁自适应策略
citadel-api         HTTP 服务器,作用域 API 密钥认证,速率限制,实时仪表板

快速开始

Docker(推荐)

root@kitploit:~
# 克隆
git clone https://github.com/mrcord77/rust_citadel.git
cd rust_citadel

# 设置您的管理员 API 密钥
echo -n "your-secret-key" | sha256sum | cut -d' ' -f1
# 复制哈希值

# 启动
CITADEL_API_KEY_HASH=<粘贴哈希值> docker compose up -d

# 验证
curl http://localhost:3000/health
# {"status":"ok","version":"0.2.0"}

仪表板:http://localhost:3000

从源码构建

需要 Rust 1.75+。

root@kitploit:~
cargo build --release -p citadel-api
CITADEL_API_KEY="your-secret-key" CITADEL_SEED_DEMO=true ./target/release/citadel-api

使用示例

Python

root@kitploit:~
import requests

api = "http://localhost:3000"
headers = {"Authorization": "Bearer your-secret-key"}

# 加密
r = requests.post(f"{api}/api/keys/{dek_id}/encrypt", headers=headers, json={
    "plaintext": "sensitive data",
    "aad": "record-001",        # 将密文绑定到此记录
    "context": "patient-records" # 域分离
})
blob = r.json()

# 解密
r = requests.post(f"{api}/api/decrypt", headers=headers, json={
    "blob": blob,
    "aad": "record-001",
    "context": "patient-records"
})
plaintext = r.json()["plaintext"]

请参阅 citadel_example.py 获取包含 AAD 绑定、密钥轮换和威胁感知应用程序行为的完整工作示例。

curl

root@kitploit:~
# 状态
curl http://localhost:3000/api/status -H "Authorization: Bearer $KEY"

# 列出密钥
curl http://localhost:3000/api/keys -H "Authorization: Bearer $KEY"

# 加密
curl -X POST http://localhost:3000/api/keys/$DEK_ID/encrypt \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"plaintext":"hello","aad":"test","context":"demo"}'

API 端点

密钥层次结构

root@kitploit:~
Root Key
  └── Domain Key (per environment / business unit)
        └── KEK — Key Encrypting Key (wraps DEKs)
              └── DEK — Data Encrypting Key (encrypts application data)

遵循 NIST SP 800-57。每一层都限制了被攻破的影响范围——如果 DEK 泄露,不会影响其他 DEK,因为 KEK 是独立的。

API 密钥作用域

作用域权限
read查看密钥、状态、指标、威胁等级
encrypt加密和解密数据
manage创建、轮换、撤销、销毁密钥
admin

admin 隐含所有其他作用域。最小权限原则:给监控仪表板分配 read,给应用服务分配 read + encrypt,给管理工具分配 admin。

自适应威胁系统

Citadel 监控安全事件并自动调整密钥策略:

提升威胁等级的事件:认证失败、解密失败、快速访问模式、手动提升。分数随时间衰减。

加密技术

组件

混合构造:两个共享密钥拼接后经过 HKDF。只要 X25519 或 ML-KEM-768 中任一保持安全,则整体安全。

线格式

root@kitploit:~
version[1] || suite_kem[1] || suite_aead[1] || flags[1] || kem_ct_len[2] ||
x25519_ephemeral_pk[32] || mlkem768_ct[1088] || nonce[12] || aead_ct[variable]

自描述、带版本号、无协商(防止降级攻击)。完整规范请参阅 SPEC.md。

安全属性

  • 常量时间比较 — 通过 subtle crate 验证 API 密钥,防止时序攻击
  • 零化 — 所有共享密钥和 AES 密钥由 Zeroizing<T> 包装,在丢弃时归零
  • 统一错误 — 解密失败返回相同的错误消息(无解密 oracle)
  • 完整性链审计日志 — SHA-256 哈希链检测日志篡改
  • 速率限制 — 基于每个 IP 的令牌桶,违反时触发威胁升级

安全

Citadel 是未经审计的软件。

该实现通过成熟的 Rust crate(ml-kem、x25519-dalek、aes-gcm、hkdf)使用 NIST 标准化的原语。它不实现任何加密算法。其价值在于正确的组合,而非新颖的数学。

已完成的工作:

  • 包括已知答案测试的全面测试套件
  • 对线格式解析器和完整解密路径进行模糊测试
  • 加密/解密操作的时序分析
  • 统一的错误处理以防止解密 oracle

未完成的工作:

  • 独立安全审计
  • 形式化验证
  • FIPS 验证
  • 生产部署

未经独立审查,请勿用于敏感数据。 漏洞报告请参阅 SECURITY.md。

合规性

映射了 34 项 NIST SP 800-57 控制项:26 项满足,7 项部分满足,1 项存在差距。完整的映射请参阅 COMPLIANCE_MATRIX.md。

相关框架:NIST SP 800-57(密钥管理)、CNSA 2.0(PQC 时间线)、HIPAA(静态加密)、SOC 2(访问控制和审计)。

项目结构

root@kitploit:~
rust_citadel/
├── citadel-envelope/        # 核心混合加密库
│   ├── src/
│   │   ├── envelope.rs      # 加密/解密操作
│   │   ├── kem.rs           # X25519 + ML-KEM-768 混合 KEM
│   │   ├── kdf.rs           # HKDF-SHA256 密钥派生
│   │   ├── wire.rs          # 线格式编码/解码
│   │   ├── aead.rs          # AES-256-GCM 包装器
│   │   ├── aad.rs           # 额外的认证数据
│   │   ├── error.rs         # 统一错误类型
│   │   └── sdk.rs           # 高级 API
│   ├── tests/               # KAT + 往返测试
│   └── fuzz/                # 模糊测试目标
├── citadel-keystore/        # 密钥生命周期管理
│   └── src/
│       ├── keystore.rs      # 密钥 CRUD + 状态机
│       ├── policy.rs        # 加密周期策略
│       ├── threat.rs        # 自适应威胁情报
│       ├── storage.rs       # 基于文件的密钥存储
│       ├── audit.rs         # 完整性链审计日志
│       └── types.rs         # 密钥类型和状态
├── citadel-api/             # HTTP 服务器
│   └── src/
│       ├── main.rs          # API 路由、认证、速率限制
│       └── dashboard.html   # 实时安全仪表板
├── citadel_example.py       # Python 集成示例
├── Backup-Citadel.ps1       # 备份/恢复工具
├── docker-compose.yml       # 开发部署
├── docker-compose-production.yml  # 生产环境(带 TLS)
├── SPEC.md                  # 线格式规范
├── THREAT_MODEL.md          # 安全目标和攻击者模型
├── COMPLIANCE_MATRIX.md     # NIST 800-57 控制映射
└── CITADEL_OVERVIEW.md      # 商业概述

文档

许可证

本项目采用双重许可:

  • GNU Affero 通用公共许可证第3版 (AGPL) — 适用于开源使用
  • 商业许可证 — 适用于专有或商业使用

如果您在商业环境中使用此软件,或不想遵守 AGPL 条款,则必须获得商业许可证。

商业条款请参见 COMMERCIAL_LICENSE.md。

AGPL 全文在 AGPL-3.0.txt 和 COPYING 中提供。

联系方式:[email protected]

作者

Andre Cordero — [email protected]

下载工具
端点方法作用域描述
/healthGET—健康检查
/api/statusGETread威胁等级、密钥数量
/api/metricsGETread安全指标
/api/keysGETread列出所有密钥
/api/keysPOSTmanage生成新密钥
/api/keys/:idGETread获取密钥详情
/api/keys/:id/activatePOSTmanage激活待处理密钥
/api/keys/:id/rotatePOSTmanage轮换密钥(新版本)
/api/keys/:id/revokePOSTmanage永久撤销密钥
/api/keys/:id/destroyPOSTmanage销毁密钥材料
/api/keys/:id/encryptPOSTencrypt加密数据
/api/decryptPOSTencrypt解密数据
/api/threatGETread威胁情报详情
/api/policiesGETread活跃密钥策略
/api/auth/whoamiGETread当前 API 密钥信息
/api/auth/keysGETadmin列出 API 密钥
/api/auth/keysPOSTadmin创建 API 密钥
/api/auth/keys/:idDELETEadmin撤销 API 密钥
以上所有权限 + 管理 API 密钥
等级触发条件响应
LOW正常操作标准加密周期
GUARDED轻微异常略微收紧的轮换
ELEVATED可疑模式压缩的轮换计划
HIGH活跃威胁指标强制轮换,降低使用限制
CRITICAL正在遭受攻击最大限制
算法
标准
密钥封装(经典)X25519 ECDHRFC 7748
密钥封装(后量子)ML-KEM-768FIPS 203
数据加密AES-256-GCMNIST SP 800-38D
密钥派生HKDF-SHA256NIST SP 800-56C
文档受众
SPEC.md线格式规范
THREAT_MODEL.md安全目标和假设
COMPLIANCE_MATRIX.mdNIST 800-57 合规性映射
CITADEL_OVERVIEW.md商业定位
SECURITY.md漏洞报告
API_FREEZE.mdAPI 稳定性保证
DEPLOYMENT.md生产部署指南
QUICKSTART.md入门指南