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 内存的抗量子智能保险库

首个专为 AI agent 构建的后量子保险库。采用 NIST 标准的 ML-KEM-1024 + ML-DSA-65 保护 agent 内存,抵御“现在窃取,以后解密”攻击。

Version 3.1.1 PyPI crates.io Python 3.10+ Rust 1.70+ Go 1.21+ Node.js 18+

AES-256-GCM ML-DSA-65 ML-KEM-1024 FIPS 140-3 MIT License

109/109 Tests Passing Rust 32/32 Python 65/65 Go 12/12

Indian Quantum Mission Global Quantum Mission Indian AI Mission

``` - Legacy memory storage is a ticking time bomb. Quantum computers will decrypt it. + Abir-Guard: The first post-quantum vault built specifically for AI agents. ``` ## 概览 | 类别 | 亮点 | |---|---| | **抗量子安全** | ML-KEM-1024 (生产就绪), ML-DSA-65, X25519 混合 KEM, AES-256-GCM 信封加密 | | **多语言支持** | Python SDK, Rust CLI + 库, Go SDK, JavaScript SDK | | **AI 原生** | LangChain 工具, CrewAI agents, MCP JSON-RPC 服务器, HTTP MCP API | | **安全加固** | FIPS 140-3 模式, 密钥撤销 (CRL), 自动轮换, 远程证明, 差分隐私, 金丝雀蜜罐, 防篡改审计日志 | | **硬件就绪** | YubiKey/FIDO2, TPM 2.0 密封/解封, Apple Secure Enclave, Intel SGX 检测, HSM 集成, 零拷贝内存策略, Argon2id KDF (OWASP 参数) | | **经过测试** | 所有语言通过 109 个单元测试, CI/CD 流水线, dependabot | ## 为什么选择 Abir-Guard? | 特性 | **Abir-Guard** | [HashiCorp Vault](https://www.vaultproject.io/) | [AWS KMS](https://aws.amazon.com/kms/) | 标准 AES-256 | |---------|-----------------|-----------------|---------|------------------| | **后量子就绪** | ✅ [ML-KEM-1024](https://github.com/Abiress/abir-guard/blob/master/abir_guard/ml_kem.py) (生产环境) | ❌ 仅经典算法 | ❌ 不可用 | ❌ 不可用 | | **PQ 签名** | ✅ [ML-DSA-65](https://github.com/Abiress/abir-guard/blob/master/abir_guard/ml_kem.py) (生产环境) | ❌ 不可用 | ❌ 不可用 | ❌ 不可用 | | **AI Agent 原生** | ✅ [LangChain ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/langchain.py), [CrewAI ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/crewai.py), [MCP ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/mcp_http.py) | ❌ 无 AI 集成 | ❌ 无 AI 集成 | ❌ 无 AI 集成 | | **多语言 SDK** | ✅ [Python](https://github.com/Abiress/abir-guard/tree/master/abir_guard), [Rust](https://crates.io/crates/abir_guard), [Go](https://github.com/Abiress/abir-guard/tree/master/sdk/go), [JS](https://github.com/Abiress/abir-guard/tree/master/sdk/js) | ⚠️ Go, Java, Python | ⚠️ 需要 AWS SDK | ❌ 手动实现 | | **硬件安全** | ✅ [YubiKey ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/yubikey_integration.py), [TPM 2.0 ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/tpm2_seal.py), [Apple SE](https://github.com/Abiress/abir-guard/blob/master/abir_guard/hardware_enclave.py) | ✅ HSM 支持 | ✅ 云 HSM | ❌ 仅软件 | | **FIPS 140-3 模式** | ✅ [集成 ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/fips_mode.py) | ⚠️ 依赖 HSM | ⚠️ 依赖 CloudHSM | ❌ 不合规 | | **轻量级** | ✅ 50MB 磁盘, 128MB 内存 | ❌ 笨重 (300MB+) | ❌ 仅限云端 | ✅ 轻量级 | | **开源** | ✅ [MIT](https://github.com/Abiress/abir-guard/blob/master/LICENSE) | ✅ MPL 2.0 | ❌ 专有软件 | ✅ 取决于 lib | | **成本** | ✅ 免费 (自托管) | ✅ 免费 / 付费企业版 | ❌ 按 API 调用付费 | ✅ 免费 | | **自动密钥轮换** | ✅ [集成 ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/rotation.py) | ✅ 手动/API | ✅ 自动化 | ❌ 手动 | | **远程证明** | ✅ [集成 ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/attestation.py) | ❌ 非内置 | ❌ 非内置 | ❌ 非内置 | | **差分隐私** | ✅ [拉普拉斯噪声](https://github.com/Abiress/abir-guard/blob/master/abir_guard/differential_privacy.py) | ❌ 不可用 | ❌ 不可用 | ❌ 不可用 | | **金丝雀蜜罐** | ✅ [违规检测](https://github.com/Abiress/abir-guard/blob/master/abir_guard/__init__.py) | ❌ 不可用 | ❌ 不可用 | ❌ 不可用 | | **MCP HTTP 服务器** | ✅ [生产就绪 ✅](https://github.com/Abiress/abir-guard/blob/master/abir_guard/mcp_http.py) | ❌ 不可用 | ❌ 不可用 | ❌ 不可用 | **核心优势:** 1. **后量子优先** — 唯一目前已部署生产就绪的 NIST FIPS 203/204 (ML-KEM-1024 + ML-DSA-65) 的保险库 2. **AI Agent 原生** — 原生 LangChain/CrewAI 工具 + MCP 服务器 — 零包装代码需求(现已全面运行) 3. **轻量级且多语言** — 支持 Python、Rust、Go、JavaScript 的 SDK,随处部署 4. **抵御“现在窃取,以后解密”攻击** — Agent 内存免受量子威胁,保持安全 5. **硬件集成** — YubiKey PIV/FIDO2 + TPM 2.0 + Apple SE — 所有功能均可正常使用(不再有虚假的回退机制) ## 系统架构 ``` graph TB subgraph "AI Agent" A1[LangChain Agent] A2[CrewAI Agent] A3[Custom MCP Client] end subgraph "Abir-Guard Vault" subgraph "Encryption Engine" E1[AES-256-GCM] E2[X25519 ECDH] E3[ML-KEM-1024] E4[HKDF / Argon2id] end subgraph "Security Layer" S1[Key Revocation CRL] S2[Auto Key Rotation] S3[FIPS 140-3 Mode] S4[Differential Privacy] S5[Remote Attestation] S6[Canary Honeypots] end subgraph "Persistence" P1[Encrypted Disk Vault] P2[SHAMIR Secret Sharing] P3[HSM / TPM Storage] end subgraph "Signatures" G1[ML-DSA-65 Signing] G2[Audit Hash Chain] end end A1 -->|encrypt/decrypt| E1 A2 -->|encrypt/decrypt| E1 A3 -->|JSON-RPC| E1 E1 --> S1 E1 --> S2 E1 --> S3 E1 --> S4 E1 --> S5 E1 --> S6 S1 --> P1 S2 --> P1 S3 --> P1 S4 --> P1 P1 --> G2 P2 --> P3 P1 --> G1 ``` ## 目录 - [概述](#overview) - [使用场景](#use-cases) - [前置条件与安装](#prerequisites--installation) - [快速入门](#quick-start) - [Python SDK 指南](#python-sdk-guide) - [Rust CLI 与库指南](#rust-cli--library-guide) - [Go SDK 指南](#go-sdk-guide) - [JavaScript SDK 指南](#javascript-sdk-guide) - [MCP 服务器指南](#mcp-server-guide) - [LangChain 与 CrewAI 集成](#langchain--crewai-integration) - [Docker 部署](#docker-deployment) - [HSM 与 TPM 集成](#hsm--tpm-integration) - [量子准备度](#quantum-readiness) - [安全架构](#security-architecture) - [运行测试](#run-tests) - [项目结构](#project-structure) - [路线图](#roadmap) - [贡献](#contributing) - [许可证](#license) - [开发者](#developer) ## 概述 Abir-Guard 是一个生产级、抗量子加密保险库,专为 AI agent 内存和敏感数据保护而构建。它实现了 NIST 标准的后量子密码学 (PQC),以抵御**“现在窃取,以后解密”**攻击 —— 在这种攻击中,对手现在收集加密数据,以便一旦量子计算机足够强大时进行解密。 **三阶段实现:** 1. **基石** — 混合 KEM、AES-256-GCM、零拷贝内存、MCP 服务器、LangChain/CrewAI SDK 2. **硬件与安全** — ML-DSA-65 签名、SHAMIR 秘密共享、Argon2id KDF、HSM/TPM 3. **生态与加固** — 密钥撤销 (CRL)、自动轮换、FIPS 140-3 模式、差分隐私、远程证明、Go SDK **采用三种语言编写**以实现最大程度的可移植性:Python 用于 AI agent 集成,Rust 用于高性能密码学,Go 用于基础设施工具,JavaScript 用于浏览器和 Node.js 环境。 ## 使用场景 ### 1. 保护 AI Agent API 密钥 AI agent 经常处理 API 密钥、OAuth token 和服务凭证。Abir-Guard 对静态和内存中的这些数据进行加密,确保不会有原始秘密通过内存转储、交换文件或进程检查泄露。 ``` vault.store("gpt_agent", b"OPENAI_API_KEY=sk-...") ``` ### 2. 安全的 Agent 间通信 使用 MCP JSON-RPC 服务器作为本地加密网关。Agent 向服务器发送明文;加密在本地进行,而不会将数据暴露给 LLM 上下文或消耗 token。 ### 3. 监管合规性 (FIPS 140-3) 启用严格的 FIPS 模式以强制仅使用经 NIST 批准的算法,阻止不合规的回退,强制执行最小密钥长度,并为合规性审计维护审计跟踪。 ``` from abir_guard.fips_mode import FIPSEncryptor fips = FIPSEncryptor() result = fips.encrypt(data, key) ``` ### 4. 多方密钥恢复 (SHAMIR) 在受信任的各方之间拆分主秘密。3-of-5 SHAMIR 方案意味着任意三名管理员可以重建主密钥,但少于三人则无法获取任何信息。 ``` ./target/release/abir-guard shamir-split "master-key" -t 3 -n 5 ``` ### 5. 通过金丝雀密钥进行违规检测 植入在访问时会发出警报的蜜罐密钥。如果攻击者攻破了保险库并使用了金丝雀密钥,您会立即知晓。 ``` canary_id = vault.add_canary() if vault.check_canary(): alert_security_team("Breach detected!") ``` ### 6. 自动密钥生命周期管理 配置基于时间或基于使用量的密钥轮换。密钥在 N 次操作或 N 小时后自动过期,从而缩小受损密钥的暴露窗口。 ``` rotation_manager.register_key("agent-1", max_operations=1000) ``` ### 7. 解密关卡的远程证明 在解密敏感数据之前,验证运行时环境未被篡改 —— 检查二进制文件完整性、环境变量和内存金丝雀。 ``` from abir_guard.attestation import AttestationVerifier verifier = AttestationVerifier() proof = IntegrityProof() proof.compute(challenge) if not verifier.verify_proof(proof.to_dict()): raise Exception("Runtime integrity check failed") ``` ### 8. 后量子数字签名 (ML-DSA-65) 使用 NIST FIPS 204 ML-DSA-65 签名和验证数据完整性 —— 后量子安全、防篡改、不可抵赖保证。 ``` let keypair = ml_dsa::generate_keypair().unwrap(); let signature = ml_dsa::sign(b"agent-memory", &keypair.signing_key).unwrap(); ``` ## 前置条件与安装 ### 系统要求 | 组件 | 最低配置 | 推荐配置 | |---|---|---| | 操作系统 | Linux, macOS, Windows | Ubuntu 22.04+, macOS 13+, Windows 11 | | CPU | x86_64, ARM64 | 任何现代多核处理器 | | 内存 | 128 MB | 256 MB+ (Argon2id 使用 64 MB) | | 磁盘 | 50 MB | 100 MB | ### Python SDK ``` # 前置条件: Python 3.10+ python3 --version # Must be 3.10 or higher # 安装包和开发依赖 pip install -e ".[dev]" # 可选: LangChain/CrewAI 集成 pip install crewai langchain-core ``` ### Rust CLI + 库 ``` # 前置条件: 通过 rustup 安装 Rust 1.70+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env" rustc --version # Must be 1.70 or higher # 构建发布二进制文件 cargo build --release # 作为 CLI 工具安装 cargo install --path . ``` ### Go SDK ``` # 前置条件: Go 1.21+ # macOS: brew install go # Linux: sudo apt install golang-go # Windows: 从 https://go.dev/dl/ 下载 go version # Must be 1.21 or higher # 下载模块依赖 cd sdk/go && go mod tidy # 运行测试 go test -v ``` ### JavaScript SDK ``` # 前置条件: Node.js 18+ node --version # Must be 18 or higher # SDK 是内置的 — 无需 npm install # 用法: const { AbirGuard } = require('./src/abir_guard'); ``` ### Docker ``` # 前置条件: Docker Engine 20.10+ docker --version # 构建并运行 docker build -t abir-guard:latest . docker run -d -p 9090:9090 -e ABIR_GUARD_API_KEY="your-key" abir-guard:latest ``` ## 快速入门 ### 从包管理器安装(推荐) ``` # Python (PyPI) pip install abir-guard # Rust (crates.io) cargo add abir_guard # Go (GitHub) go get github.com/Abiress/abir-guard/sdk/go ``` ### 从源代码构建 ``` # 克隆并安装所有组件 git clone https://github.com/Abiress/abir-guard.git cd abir-guard # Python: 安装并测试 pip install -e ".[dev]" python3 tests/run_tests.py # Rust: 构建并测试 cargo build --release && cargo test # Go: 测试 cd sdk/go && go test -v && cd ../.. # JavaScript: 验证 (Node.js) node -e "const { AbirGuard } = require('./src/abir_guard'); new AbirGuard().generateKeyPair('test').then(console.log)" ``` ## Python SDK 指南 ### 基本保险库操作 ``` from abir_guard import Vault vault = Vault() # 为 agent 生成密钥对 pub, sec = vault.generate_keypair("finance_agent") # 加密敏感数据 ct = vault.store("finance_agent", b"API_KEY=sk-abc123xyz") # 解密数据 plaintext = vault.retrieve("finance_agent", ct) # → b"API_KEY=sk-abc123xyz" # 首次使用时自动生成密钥 ct = vault.store("new_agent", b"data") # keypair created automatically # 列出和删除密钥 vault.list_keypairs() # ['finance_agent', 'new_agent'] vault.remove_keypair("new_agent") ``` ### 第三阶段功能 ``` # 密钥撤销 (CRL) from abir_guard.revocation import RevocationList, RevocationReason crl = RevocationList() crl.revoke("compromised-key", RevocationReason.COMPROMISED, "admin", "Key leaked") crl.is_revoked("compromised-key") # True # 自动密钥轮换 from abir_guard.rotation import KeyRotationManager mgr = KeyRotationManager(default_max_operations=1000) mgr.register_key("agent-1", max_operations=500) mgr.record_usage("agent-1", "encrypt") mgr.needs_rotation("agent-1") # False (under limit) # FIPS 140-3 合规模式 from abir_guard.fips_mode import FIPSEncryptor fips = FIPSEncryptor() encrypted = fips.encrypt(data, key) decrypted = fips.decrypt(ct, tag, nonce, key) # 差分隐私熵 from abir_guard.differential_privacy import DifferentialEntropyCollector collector = DifferentialEntropyCollector(epsilon=0.5, sample_count=20) entropy = collector.collect() # 32 bytes of noise-injected entropy # 远程认证 from abir_guard.attestation import IntegrityProof, AttestationVerifier proof = IntegrityProof() proof.compute(challenge="abc123") verifier = AttestationVerifier() verifier.verify_proof(proof.to_dict()) # True if untampered ``` ### MCP HTTP 服务器 ``` from abir_guard.mcp_http import McpHttpServer server = McpHttpServer(port=9090, api_key="your-secret-key", rate_limit=100) server.start() # curl http://localhost:9090/health # curl -X POST http://localhost:9090 -H "Authorization: Bearer your-secret-key" ... ``` ## Rust CLI 与库指南 ### CLI 命令 ``` # 使用密码初始化 vault ./target/release/abir-guard -k "my-passphrase" init my-agent # 加密 / 解密 ./target/release/abir-guard -k "my-passphrase" encrypt my-agent "secret data" ./target/release/abir-guard -k "my-passphrase" decrypt my-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 ### 🇮🇳🌍 任务支持 | 任务 | 标志 | 描述 | |---------|-------|-------------| | 🇮🇳 印度量子任务 | IQM | 为印度国家量子任务提供抗量子密码学 | | 🌍 全球量子任务 | GQM | 符合 NIST FIPS 203/204 全球标准 | | 🇮🇳🌍 印度 AI 任务 | IAI | 为主权 AI 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, 内存保护, 可视化界面, 后量子密码学, 多语言支持, 子域名变形, 安全测试框架, 密码学, 手动系统调用, 抗量子加密, 数据保险库, 数据加密, 数据可视化, 无后门, 日志审计, 智能体安全, 机密计算, 硬件加密, 网络安全, 网络流量审计, 解密威胁防御, 请求拦截, 软件供应链安全, 软件库, 远程方法调用, 逆向工具, 量子安全, 隐私保护, 零信任架构