Abiress/abir-guard
GitHub: Abiress/abir-guard
面向 AI Agent 的后量子密码学保险库,采用 NIST 标准 ML-KEM-1024 和 ML-DSA-65 保护 Agent 内存与密钥,抵御量子计算时代的「先窃取后解密」攻击。
Stars: 1 | Forks: 1
# Abir-Guard v3.1.1 — 面向 AI Agent 内存的抗量子智能保险库
" ""
# SHAMIR 秘密共享
./target/release/abir-guard shamir-split "my-passphrase" -t 3 -n 5
./target/release/abir-guard shamir-join "1:..." "3:..." "5:..."
# ML-DSA 签名
./target/release/abir-guard -k "my-passphrase" mldsa-init --key-id agent
./target/release/abir-guard -k "my-passphrase" mldsa-sign agent "data"
# 启动 MCP 服务器
./target/release/abir-guard mcp-server --mode stdio
```
### 库用法
```
use abir_guard::Vault;
let vault = Vault::new();
let ct = vault.store(b"agent-1", b"secret data").unwrap();
let plain = vault.retrieve(b"agent-1", &ct).unwrap();
assert_eq!(plain, b"secret data");
```
使用密码的持久化保险库:
```
use abir_guard::persistent_vault;
let vault = persistent_vault::get_vault("my-passphrase");
let ct = persistent_vault::store_encrypted(&vault, "agent", b"secret", "my-passphrase").unwrap();
```
## Go SDK 指南
```
import "github.com/abir-guard/abir-guard/sdk/go"
vault := abirguard.NewVault()
// Generate keypair
vault.GenerateKeypair("agent-1")
// Encrypt / decrypt
ct, _ := vault.Encrypt("agent-1", []byte("sensitive data"))
plain, _ := vault.Decrypt("agent-1", ct)
// Revoke key
vault.RevokeKey("compromised", "compromised", "admin", "Key leaked")
// Rotate key
vault.RotateKey("agent-1")
// Check rotation status
meta, _ := vault.GetMetadata("agent-1")
fmt.Printf("Operations: %d encrypt, %d decrypt\n", meta.EncryptCount, meta.DecryptCount)
// Audit log
for _, entry := range vault.GetAuditLog() {
fmt.Printf("[%s] %s: %s\n", entry.Timestamp, entry.Action, entry.KeyID)
}
```
## JavaScript SDK 指南
```
const { AbirGuard, AbirGuardMCP } = require('./src/abir_guard');
const vault = new AbirGuard();
const { publicKey, secretKey } = await vault.generateKeyPair('agent-1');
const { ciphertext, nonce, authTag } = await vault.encrypt('agent-1', 'API_KEY=sk-...');
const plaintext = await vault.decrypt('agent-1', { ciphertext, nonce, authTag });
// Rotate key (kill switch)
await vault.rotateKey('agent-1');
// MCP client
const mcp = new AbirGuardMCP(9090);
const result = await mcp.encrypt('agent-1', 'secret data');
```
## MCP 服务器指南
### JSON-RPC 方法
| 方法 | 参数 | 响应 | 描述 |
|--------|--------|----------|-------------|
| `generate_key` | `{key_id}` | `{key_id, generated: true}` | 创建密钥对 |
| `encrypt` | `{key_id, data}` | `{nonce, ciphertext, key_id}` | 加密数据 |
| `decrypt` | `{key_id, ciphertext}` | `{plaintext}` | 解密数据 |
| `list_keys` | `{}` | `{keys: [...]}` | 列出活跃密钥 |
| `delete_key` | `{key_id}` | `{deleted: true}` | 移除密钥对 |
| `add_canary` | `{}` | `{canary_id}` | 植入蜜罐密钥 |
| `check_canary` | `{}` | `{breach_detected: bool}` | 检查是否违规 |
| `audit_log` | `{limit}` | `{entries: [...]}` | 查看审计日志 |
| `clear_cache` | `{}` | `{cleared: true}` | 清除内存缓存 |
| `info` | `{}` | `{name, version, mcp_version}` | 服务器信息 |
### HTTP 端点
| 端点 | 认证 | 描述 |
|----------|------|-------------|
| `POST /` | Bearer token | MCP JSON-RPC 网关 |
| `GET /health` | 公开 | 健康检查 |
| `GET /audit` | Bearer token | 最近 100 条审计记录 |
## LangChain 与 CrewAI 集成
### LangChain
```
from abir_guard.langchain import get_langchain_tools
tools = get_langchain_tools()
# [SilentQKeyGenTool, SilentQEncryptTool, SilentQDecryptTool]
```
### CrewAI
```
from abir_guard.crewai import get_crewai_tools
tools = get_crewai_tools()
# [KeyGenCrewTool, EncryptCrewTool, DecryptCrewTool]
```
## Docker 部署
```
# 构建镜像
docker build -t abir-guard:latest .
# 使用 API 密钥和持久化卷运行
docker run -d --name abir-guard \
-p 9090:9090 \
-e ABIR_GUARD_API_KEY="your-secret-key" \
-v abir-keys:/root/.abir_guard \
abir-guard:latest
# 健康检查
curl http://localhost:9090/health
# 通过 HTTP 加密
curl -X POST http://localhost:9090 \
-H "Authorization: Bearer your-secret-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"encrypt","params":{"key_id":"agent","data":"secret"}}'
```
## HSM 与 TPM 集成
```
from abir_guard.abir_hsm import HSMKeyStore, TPMKeyStore
# 针对每个 OS 自动检测最佳后端
hsm = HSMKeyStore()
# macOS → Keychain, Windows → Credential Manager, Linux → file/secret_service
hsm.store_secret("my-api-key", b"sk-abc123")
secret = hsm.retrieve_secret("my-api-key")
# TPM 2.0 硬件检测
tpm = TPMKeyStore()
if tpm.is_available():
print("TPM hardware detected — keys can be hardware-sealed")
```
## 第二阶段硬件安全特性
### YubiKey / FIDO2 集成
```
from abir_guard import YubiKeyManager
yk = YubiKeyManager()
# 生成硬件支持的密钥
cred_id = yk.generate_key("agent-1", "ed25519")
# 签名数据 (生产环境中需要 YubiKey 触摸)
signature = yk.sign("agent-1", b"data to sign")
# 使用 YubiKey 支持的密钥进行加密/解密
ct, nonce = yk.encrypt_with_yubikey("agent-1", b"secret")
plaintext = yk.decrypt_with_yubikey("agent-1", ct, nonce)
```
### TPM 2.0 密封/解封
```
from abir_guard import TPM2Sealer
tpm = TPM2Sealer()
# 将数据 Seal 到 TPM PCR 值 (硬件绑定)
sealed = tpm.seal(b"master-key", pcr_indices=[0, 7])
# Unseal - 仅在系统状态匹配时有效
recovered = tpm.unseal(sealed)
```
### 硬件飞地检测
```
from abir_guard import HardwareEnclave
enc = HardwareEnclave()
print(f"Platform: {enc.platform}")
print(f"Available: {enc.is_available()}")
# 生成硬件支持的密钥
enc.generate_key("agent-1")
# 使用可用的最佳硬件进行 Seal/unseal
sealed = enc.seal(b"secret", "agent-1")
recovered = enc.unseal(sealed, "agent-1")
# 获取认证报告
report = enc.attest(b"challenge-nonce")
```
## 量子准备度
### “量子就绪”对 Abir-Guard 意味着什么
| 威胁 | 缓解措施 | 状态 |
|---|---|---|
| **现在窃取,以后解密** | ML-KEM-1024 密钥封装 (NIST FIPS 203) | 生产就绪 |
| **量子密钥提取** | 采用 256 位密钥的 AES-256-GCM (抗 Grover 算法) | 生产环境 |
| **签名伪造** | ML-DSA-65 数字签名 (NIST FIPS 204) | 生产环境 |
| **侧信道量子攻击** | 差分隐私熵 + 常量时间比较 | 生产环境 |
| **内存抓取** | 零拷贝内存策略 + 显式密钥清零 | 生产环境 |
| **未来的量子突破** | 混合 KEM (ML-KEM + X25519) — 两者必须都被攻破 | 生产环境 |
### 当前量子状态
- **AES-256-GCM**:抗量子安全。Grover 算法将有效强度降低至 128 位,仍然安全。
- **ML-DSA-65**:已部署并测试的后量子签名。3309 字节签名,常量时间操作。
- **ML-KEM-1024**:生产就绪。在 Python 中通过 `pqcrypto` (PQClean 支持的) 实现,在 Rust 中通过 `ml-kem` crate (纯 Rust) 实现。完整的密钥生成、封装和解封往返验证。
- **SHAMIR + Argon2id**:属于经典算法,但在其使用场景(阈值共享、密钥派生)中是抗量子的。
### 任务契合度 🇮🇳🌍
本项目契合并支持:
- **🇮🇳 印度量子任务** — 印度国家量子任务 (NQM) 旨在开发用于通信、计算和传感的量子技术。Abir-Guard 提供符合 NIST 标准的后量子密码学,以保护印度的量子基础设施免受“现在窃取,以后解密”的威胁。
- **🌍 全球量子任务** — 契合 NIST、ENISA 和国家网络安全机构强制要求的全球向后量子密码学过渡。Abir-Guard 实现了 NIST FIPS 203 (ML-KEM) 和 FIPS 204 (ML-DSA),以提供抗量子数据保护。
- **🇮🇳🌍 印度 AI 任务** — 通过为 AI agent 提供量子安全的内存保险库,支持印度的 AI 主权倡议,确保 API 密钥、模型权重和 agent 内存免受未来量子攻击的影响。印度制造,服务全球。
### 量子突破之后
1. 所有 ML-KEM-1024 后端均已生产就绪 — 无需额外设置
2. Python 使用 `pqcrypto` (PQClean 支持) 实现原生 ML-KEM-1024
3. Rust 使用 `ml-kem` crate (纯 Rust,零依赖)
4. 现有的混合密钥在过渡期间保持有效
## 安全架构
### 混合 KEM 设计
```
┌──────────────────────────────────────────────────────────┐
│ Hybrid Key Encapsulation │
│ ML-KEM-1024 (PQC) + X25519 (Classical ECDH) │
│ Security: Both must be broken to compromise │
└──────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ Envelope Encryption │
│ AES-256-GCM (NIST FIPS 197) │
│ 96-bit random nonce + 128-bit auth tag per message │
└──────────────────────────────────────────────────────────┘
```
### 纵深防御层
| 层 | 控制措施 |
|---|---|
| **密码学** | AES-256-GCM, ML-KEM-1024, ML-DSA-65, Argon2id, HKDF-SHA256 |
| **内存安全** | 零拷贝策略、显式密钥清零、Rust 所有权模型 |
| **网络** | Bearer token 认证、速率限制 (100次/分钟)、TLS 支持、默认 localhost |
| **完整性** | SHA-256 哈希链审计日志、HMAC 签名的 CRL、防篡改保险库 |
| **运行时** | 远程证明、金丝雀蜜罐、Spectre/Meltdown 噪声注入 |
| **生命周期** | 自动密钥轮换 (时间/使用量)、撤销、过期策略 |
| **合规性** | FIPS 140-3 严格模式、仅限批准的算法、审计跟踪 |
## 运行测试
```
# 完整测试套件 (部署前推荐)
cargo build --release && cargo test && \
python3 tests/run_tests.py && \
pytest tests/test_abir_guard.py tests/test_phase3.py -v && \
cd sdk/go && go test -v && cd ../..
# 单独的测试套件
cargo test # Rust: 32 tests
pytest tests/test_abir_guard.py -v # Python Phase 1: 17 tests
pytest tests/test_phase3.py -v # Python Phase 3: 24 tests
pytest tests/test_phase2_hardware.py -v # Python Phase 2: 24 tests
cd sdk/go && go test -v # Go: 12 tests
python3 tests/run_tests.py # Manual suites: 5/5
```
**Rust、Python 和 Go 的全部 109 个测试通过。**
## 项目结构
```
abir_guard/
├── abir_guard/ # Python package (15 modules)
│ ├── __init__.py # Core Vault, HybridEncryptor, McpServer, AuditLogger
│ ├── ml_kem.py # ML-KEM-1024 + X25519 hybrid KEM (real ECDH)
│ ├── yubikey_integration.py # YubiKey/FIDO2 integration (software fallback)
│ ├── tpm2_seal.py # TPM 2.0 seal/unseal (tpm2-tools CLI)
│ ├── hardware_enclave.py # Apple SE, Intel SGX, AMD SEV detection
│ ├── langchain.py # LangChain tool integration (3 tools)
│ ├── crewai.py # CrewAI tool integration (version-compatible)
│ ├── abir_hsm.py # HSM/TPM integration (Keychain, CredMgr, file, TPM)
│ ├── mcp_http.py # Hardened HTTP MCP server (auth, rate limit, TLS)
│ ├── crypto_store.py # Encrypted disk persistence (Argon2id + AES-GCM + HMAC)
│ ├── revocation.py # CRL-style key revocation with HMAC signing
│ ├── rotation.py # Automatic key rotation (time-based + usage-based)
│ ├── fips_mode.py # FIPS 140-3 compliance mode (strict NIST algorithms)
│ ├── differential_privacy.py # Laplace noise entropy (Spectre/Meltdown defense)
│ └── attestation.py # Remote attestation (runtime integrity verification)
├── src/ # Rust source (12 modules)
│ ├── lib.rs # Library entry point + re-exports
│ ├── main.rs # CLI binary (clap subcommands, passphrase, validation)
│ ├── quantum_kernel.rs # Hybrid encryption + 200ms watchdog + zeroization
│ ├── entropy_inject.rs # CPU jitter entropy collector
│ ├── zero_copy.rs # Zero-copy vault with LRU-encrypted cache
│ ├── mcp_gateway.rs # MCP JSON-RPC server (10 methods)
│ ├── persistent_vault.rs # Encrypted file persistence (Argon2id + AES-GCM + ML-DSA)
│ ├── kdf.rs # Argon2id key derivation (OWASP: 64MB, 3 iter)
│ ├── shamir.rs # SHAMIR Secret Sharing (t, n) over GF(251)
│ ├── ml_dsa.rs # ML-DSA-65 signatures (NIST FIPS 204)
│ ├── revocation.rs # Key revocation/blacklist (CRL, HMAC-signed)
│ ├── rotation.rs # Automatic key rotation manager
│ └── differential_privacy.rs # Laplace noise + Spectre/Meltdown defender
├── sdk/
│ ├── go/ # Go SDK (AES-256-GCM vault with CRL, rotation, metadata)
│ │ ├── abirguard.go # Core implementation
│ │ ├── abirguard_test.go # 12 unit tests
│ │ └── go.mod # Module definition
│ └── js/ # JavaScript SDK (Node.js crypto + MCP client)
│ └── abir_guard.js # Basic vault + MCP client
├── examples/ # Usage examples
├── tests/ # Test suites (Python)
│ ├── run_tests.py # Manual test runner (5 suites)
│ ├── test_abir_guard.py # Pytest Phase 1 (17 tests)
│ ├── test_phase2_hardware.py # Pytest Phase 2 (24 tests)
│ └── test_phase3.py # Pytest Phase 3 (24 tests)
├── scripts/ # Publishing and debugging scripts
│ ├── publish-pypi.sh # PyPI publishing script
│ ├── publish-crates.sh # crates.io publishing script
│ └── debug.sh # Full project debug & verification
├── Cargo.toml # Rust dependencies (edition 2021)
├── pyproject.toml # Python package config (v3.1.1)
├── PUBLISHING.md # PyPI and crates.io publishing guide
├── Dockerfile # Container build (hardened MCP server)
├── LICENSE # MIT License (2026)
├── README.md # This file
├── THREAT_MODEL.md # Zero-trust threat model
├── SECURITY.md # Vulnerability reporting
├── CONTRIBUTING.md # Contribution guidelines
├── CODE_OF_CONDUCT.md # Community standards
├── CITATION.cff # Academic citation
└── TASKS.md # Feature status and roadmap
```
## 路线图
### 第一阶段:基石 (已完成)
- [x] 带有 AES-256-GCM 的 X25519 混合 KEM
- [x] 内存清零 (Rust `zeroize`)
- [x] 安全看门狗 (200ms)
- [x] 加密磁盘持久化
- [x] 输入验证
- [x] MCP JSON-RPC 网关
- [x] Python + Rust + JavaScript SDK
- [x] LangChain + CrewAI 集成
- [x] HSM + TPM 集成
- [x] Docker + CI/CD
- [x] 审计日志 + 金丝雀密钥
### 第二阶段:硬件与安全 (已完成)
- [x] ML-DSA-65 签名 (NIST FIPS 204)
- [x] SHAMIR 秘密共享 (GF(251))
- [x] Rust 中的 Argon2id KDF
- [x] 真正的 ML-KEM-1024 (Python: `pqcrypto` + Rust: `ml-kem` crate)
- [x] YubiKey / FIDO2 集成 (软件回退就绪)
- [x] TPM 2.0 密封/解封 (通过 tpm2-tools CLI)
- [x] Apple Secure Enclave / Intel SGX / AMD SEV 平台检测
### 第三阶段:生态与加固 (已完成)
- [x] 密钥撤销 (CRL, HMAC 签名)
- [x] 自动密钥轮换 (时间/使用量)
- [x] FIPS 140-3 合规模式
- [x] 差分隐私熵
- [x] 远程证明
- [x] Go SDK
- [x] PyPI 发布 (`pip install abir-guard`)
- [x] crates.io 发布 (`cargo add abir_guard`)
## 即将推出的阶段
### 🚀 第四阶段:企业与云集成 (2026 年第一季度)
*针对企业部署和云原生工作流的生产准备就绪*
- [ ] **真正的 YubiKey/FIDO2 硬件** — FIDO2/CTAP2 操作、触摸确认、PIV 插槽管理
- [ ] **原生 TPM 2.0 API** — `tpm2-tss` 库集成、PCR 策略自动化
- [ ] **AWS KMS / GCP KMS 集成** — 云 KMS 后端、信封加密
- [ ] **HashiCorp Vault 集成** — Vault transit 引擎后端、企业秘密管理
- [ ] **Kubernetes Operator** — 自动注入 vault sidecar、秘密轮换、Helm charts
- [ ] **多租户支持** — 组织/工作区隔离、RBAC、审计分区
- [ ] **性能基准测试** — 异步 I/O、连接池、10k ops/sec 目标
- [ ] **OpenTelemetry 集成** — 指标、追踪、vault 操作的分布式追踪
### 🔐 第五阶段:高级 AI 安全与合规 (2026 年第二季度)
*AI 特定的安全模式、监管合规、多 agent 工作流*
- [ ] **完整的 JavaScript SDK** — ML-KEM-1024、ML-DSA-65、WebCrypto API、浏览器扩展
- [ ] **模型权重加密** — 静态加密 LLM 权重、安全的微调 pipeline
- [ ] **提示注入防护** — 检测/加密恶意提示、提示签名验证
- [ ] **GDPR/CCPA/HIPAA 合规** — 数据保留策略、被遗忘权、审计导出
- [ ] **多 Agent 密钥共享** — 针对 agent 集群的阈值加密、基于仲裁的访问
- [ ] **LLM 的安全飞地** — 基于 TEE 的推理 (Intel TDX, AMD SEV-SNP)、经验证的计算
- [ ] **零知识证明** — 在不泄露数据的情况下证明加密、合规性审计
- [ ] **AI 红队工具** — 自动攻击模拟、违规场景测试
### 🌐 第六阶段:分布式与量子生态系统 (2026 年第三季度)
*分布式 vault 架构、量子网络就绪、生态系统扩展*
- [ ] **联邦 Vault 网络** — 分布式 vault 网格、基于 CRDT 的同步、冲突解决
- [ ] **量子密钥分发 (QKD)** — QKD 网络集成、BB84 协议支持
- [ ] **后量子 TLS** — 带有 ML-KEM-1024 的混合 TLS 1.3、安全传输层
- [ ] **WASM 编译** — 浏览器原生 vault、边缘计算、Deno/Cloudflare Workers
- [ ] **Apple Secure Enclave 原生支持** — Swift 绑定、原生 SE API、macOS/iOS SDK
- [ ] **Intel SGX 飞地** — 实际的飞地创建、远程证明、安全计算
- [ ] **去中心化身份 (DID)** — W3C DID 集成、自我主权身份、可验证凭证
- [ ] **HSM 集群** — 多 HSM 负载均衡、故障转移、地理分布
## 贡献
有关指南、编码标准和 PR 检查清单,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。我欢迎来自开发人员、安全研究人员和 AI 工程师的贡献。
## 项目治理
| 文档 | 目的 |
|----------|---------|
| [THREAT_MODEL.md](THREAT_MODEL.md) | 零信任威胁模型、信任边界、缓解措施 |
| [SECURITY.md](.github/SECURITY.md) | 漏洞报告策略、披露流程 |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 贡献指南、代码风格、PR 检查清单 |
| [PUBLISHING.md](PUBLISHING.md) | PyPI 和 crates.io 发布指南 |
| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | 社区标准与执行 |
| [CITATION.cff](CITATION.cff) | 研究论文的学术引用 |
## 许可证
MIT 许可证。详情请参阅 [LICENSE](LICENSE)。
版权所有 (c) 2026 Abir Maheshwari
## 开发者
**Abir Maheshwari**
Artificial Quantum Dyson Intelligence, Biro Labs, Aquilldriver 创始人
AI 工程师 | 量子计算研究员
### 联系方式
- **电子邮件:** abhirsxn@gmail.com
- **LinkedIn:** https://in.linkedin.com/in/abirmaheshwari
- **Instagram:** [@anantraga31](https://instagram.com/anantraga31)
- **Medium:** https://office.qz.com/@abirmaheshwari
**构建技术** Rust, Python, Go, JavaScript · **安全保障** NIST PQC, AES-256-GCM, Argon2id, ML-DSA-65, ML-KEM-1024 · **开源许可** MIT 2026
### 🇮🇳🌍 任务支持
| 任务 | 标志 | 描述 |
|---------|-------|-------------|
| 🇮🇳 印度量子任务 |
| 为印度国家量子任务提供抗量子密码学 |
| 🌍 全球量子任务 |
| 符合 NIST FIPS 203/204 全球标准 |
| 🇮🇳🌍 印度 AI 任务 |
| 为主权 AI agent 提供量子安全的内存保险库 |
**🇮🇳 印度制造,服务全球。**
首个专为 AI agent 构建的后量子保险库。采用 NIST 标准的 ML-KEM-1024 + ML-DSA-65 保护 agent 内存,抵御“现在窃取,以后解密”攻击。
标签:AES-256-GCM, AI代理, FIPS 197, FIPS 204, GNU通用公共许可证, Go, HTTP工具, ML-DSA-65, ML-KEM-1024, NIST标准, Node.js, PQC, Python, Ruby工具, Rust, StruQ, 内存保护, 可视化界面, 后量子密码学, 多语言支持, 子域名变形, 安全测试框架, 密码学, 手动系统调用, 抗量子加密, 数据保险库, 数据加密, 数据可视化, 无后门, 日志审计, 智能体安全, 机密计算, 硬件加密, 网络安全, 网络流量审计, 解密威胁防御, 请求拦截, 软件供应链安全, 软件库, 远程方法调用, 逆向工具, 量子安全, 隐私保护, 零信任架构