mizcausevic-dev/identity-mesh

GitHub: mizcausevic-dev/identity-mesh

为 AI Agent 集群提供 SPIFFE 风格的零信任身份层,用短期可刷新的 JWT-SVID 替代长期 API Key,从根源上收敛凭证泄露的爆炸半径。

Stars: 0 | Forks: 0

# identity-mesh 🔐 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a8d0fa86e3135902.svg)](https://github.com/mizcausevic-dev/identity-mesh/actions/workflows/ci.yml) ![Python](https://img.shields.io/badge/python-3.10%2B-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Status](https://img.shields.io/badge/status-alpha-orange) ## 为什么选择它 大多数 AI 代理使用长期有效的 API 密钥向下游服务进行身份验证, 这些密钥被固化在环境变量中。攻破一个代理 -> 攻破该密钥所能触及的一切。 无限期地。CISO 无法安眠。 **identity-mesh** 按需为每个代理颁发短期(默认 5 分钟)、限定受众、 加密签名身份。 - 窃取了 token?你只有 5 分钟的时间。 - 窃取了密钥?**根本不存在可供窃取的密钥。** - 需要撤销代理?停止注册即可。现有的 token 会自然过期。 ## 它是什么 五个与 SPIFFE 兼容的原语: | 组件 | 用途 | |---|---| | `SPIFFEID` | 解析/验证 `spiffe://trust-domain/path` URI | | `IdentityBroker` | 生成 JWT-SVIDs (RS256),持有信任域的签名密钥 | | `Workload` | 代理端身份持有者;缓存并自动刷新 SVIDs | | `Verifier` | 服务端验证器;检查签名、受众、颁发者和有效期 | | `Rotator` | 用于凭证轮换的后台 daemon | 基于 `pyjwt[crypto]` 和 `cryptography` 构建。没有自定义加密,没有意外。 ## 架构 ![Architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4de5eb8171135908.svg) ## SVID 生命周期 每个 token 默认存活 5 分钟 - 代理缓存、出示它, 并在过期前刷新。被盗的 token 在几分钟内就会作废, 而不是几年: ![SVID lifecycle](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/1cbd98ff56135915.svg) ## 安装 ``` pip install identity-mesh ``` 或者从源码安装: ``` git clone https://github.com/mizcausevic-dev/identity-mesh cd identity-mesh pip install -e ".[dev]" pytest ``` ## 快速开始 ### 完整的 broker -> agent -> service 流程 ``` from identity_mesh import IdentityBroker, Workload, Verifier # 安全团队负责运营 broker broker = IdentityBroker(trust_domain="prod.kineticgain.com") # 注册 agent agent = Workload(name="research-agent-1", broker=broker) # 使用 trust bundle 引导下游服务 service = Verifier( trust_domain="prod.kineticgain.com", trust_bundle=broker.trust_bundle(), ) # agent 获取全新的、限定 audience 的 SVID audience = "https://api.kineticgain.com/v1" svid = agent.get_svid(audience) # 服务进行验证 - 返回调用者的 SPIFFE ID caller = service.verify(svid, expected_audience=audience) # -> spiffe://prod.kineticgain.com/workload/research-agent-1 ``` ### 路径前缀授权 ``` if caller.is_under("/workload/research-"): # Allow only research-* agents handle_request(caller) else: raise PermissionError("forbidden") ``` ### 后台轮换 ``` from identity_mesh import Rotator # 每 4 分钟刷新一次 SVID(在 5 分钟过期前 1 分钟) rotator = Rotator( interval=240, callback=lambda: agent.get_svid(audience, refresh_before=120), ) rotator.start() # ... 稍后 rotator.stop() ``` ## 目标受众 - **CISO / 安全人员** - 消除长期有效的 API 密钥;满足 SOC2 CC6.6(逻辑访问)要求 - **平台工程师** - 为代理集群提供即插即用的零信任身份层 - **合规人员** - 每次代理调用在加密层面上均可追溯到 SPIFFE ID ## 搭配使用 - [`rate-limit-shield`](https://github.com/mizcausevic-dev/rate-limit-shield) - 纵深防御:边缘采用身份验证,在模型层实施速率限制 - [`agent-router`](https://github.com/mizcausevic-dev/agent-router) - 基于 `caller.path` 进行路由(研究代理 vs 管理代理) - [`agent-canary`](https://github.com/mizcausevic-dev/agent-canary) - 基于身份的 canary 测试群组 - [`model-registry-pro`](https://github.com/mizcausevic-dev/model-registry-pro) - 将审批请求者/审批者与 SPIFFE 身份绑定 ## 路线图 - [ ] X.509 SVIDs(与 JWT-SVIDs 并存) - [ ] Workload 证明(TPM,K8s service accounts) - [ ] gRPC SPIFFE Workload API endpoint - [ ] OIDC discovery + JWKS endpoint - [ ] HSM / KMS adapter 用于密钥托管 - [ ] 分布式 broker(Redis/etcd)以支持多区域 - [ ] PyPI 发布 ## 原则 三项规则: 1. **短 TTL 或无 TTL。** 五分钟的成本很低,但被攻破后的爆炸半径可不低。 2. **受众绑定。** 为服务 A 颁发的 token 对服务 B 必须是无效的。 3. **轮换 broker 密钥,就是轮换所有人的信任。** 在第 0 天就规划好第 1 天的密钥轮换。 ## 安全说明 - Broker 每次实例化都会生成一个全新的 RSA-2048 密钥。在生产环境中请**持久化该密钥** (从 secrets manager 或 KMS 挂载)。 - 默认的宽限时间是 5 秒的时钟偏移。在对抗性环境中请进一步收紧。 - 本库**不**提供传输层实现。请仅通过 mTLS 或 HTTPS 传递 SVIDs。 ## 许可证 MIT - 详见 [LICENSE](./LICENSE)。 由 [Mirza Causevic](https://github.com/mizcausevic-dev) 构建 - 属于 [mizcausevic-dev](https://github.com/mizcausevic-dev) AI 平台工程作品集的一部分。
标签:Agent, AI代理, Cryptography, DevSecOps, DLL 劫持, IAM, JSONLines, JWT, JWT-SVID, PyJWT, Python, RS256, SPIFFE, SPIRE, Streamlit, StruQ, 上游代理, 人工智能, 令牌, 大语言模型, 威胁情报, 安全架构, 密钥轮换, 开发者工具, 开源, 无后门, 无密钥认证, 服务网格, 用户模式Hook绕过, 短期凭证, 网络安全, 访问控制, 身份与访问管理, 身份代理, 身份安全, 身份网格, 隐私保护, 零信任, 零信任网络