aslancarlos/machine-identity-explainer

GitHub: aslancarlos/machine-identity-explainer

一个交互式单页应用,用于逐步讲解机器身份安全的核心概念(SPIFFE/SPIRE、SVID、mTLS),并支持在线体验真实 SCEP 证书注册流程。

Stars: 0 | Forks: 0

# machine-identity-explainer [![build](https://static.pigsec.cn/wp-content/uploads/repos/cas/05/052bc9eaea1744e860f382f618f1146be38e27dfd499bb29c253bcd1827fad60.svg)](https://github.com/aslancarlos/machine-identity-explainer/actions/workflows/build.yml) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) 这是一个交互式单页应用,旨在逐步讲解**机器身份安全 (Machine Identity Security)** 的核心构建块:SPIFFE、SPIRE、X.509 SVID、JWT SVID、mTLS,以及支撑现代云原生安全的零信任工作负载身份模型。它是 [IDIRA Secrets Manager 演示](https://demo.minha.cloud) 的配套项目。 在线访问:`https://machine.minha.cloud/` ## 演示内容 机器身份是未来十年的身份难题。每个工作负载、服务、CI runner 和 AI agent 都需要向其他工作负载进行身份验证——且无需依赖长期的 API key、共享密钥或人工干预。本讲解涵盖了以下基础模式: | 概念 | 展示内容 | |---|---| | SPIFFE ID | 跨云、K8s 和 VM 的工作负载通用命名方案 | | SPIRE Server / Agent | 身份在运行时如何被证明和颁发 | | X.509 SVID | 作为工作负载凭证的短期证书 | | JWT SVID | 针对HTTP 和消息总线工作负载的基于 JWT 的替代方案 | | mTLS | 基于工作负载身份(而非网络位置)的双向身份验证 | | Trust Domain | 组织和云之间的联盟 | 每个部分都是交互式的——你可以逐步体验证明流程,检查证书内容,并查看工作负载如何在不触及任何静态密钥的情况下,从“无身份”转变为“完全证明并授权”。 ## 为什么这很重要 业界已经花费了二十年的时间来强化人类身份(SSO、MFA、条件访问)。机器身份的现状大致相当于人类身份在 2010 年的水平:长期凭证、广泛的权限范围、轮换薄弱且可观测性极低。SPIFFE/SPIRE 是填补这一差距的开源基础之一,与 IRSA、Workload Identity Federation 和 Conjur `authn-jwt` 等云原生基础组件并驾齐驱。 ## 在线 SCEP 注册 `/scep` 工具可以从任何 SCEP 服务器 (RFC 8894) 请求真实证书—— 例如 Venafi、Microsoft NDES、EJBCA 等。提供 SCEP URL 和挑战密码 (challenge password), 然后以**机器**身份(CN = FQDN,DNS SAN)或**用户**身份(CN = 名称,email / UPN SAN)进行注册。完整的交互流程——`GetCACaps`、`GetCACert`、RSA 密钥生成、PKCS#10 CSR、已签名/封装的 `PKCSReq` pkiMessage、`PKIOperation` 以及对已颁发 证书的解密——都在 `api/scep.cjs` 中于服务端运行(纯 Node.js + `node-forge`)。 密钥、CSR 和挑战密码永远不会在服务端持久化或记录。面向 公众的代理会解析目标主机并拒绝私有/内部 地址(SSRF 防护),并默认验证端点的 TLS(跳过私有/自签名 CA 验证需要明确的按请求手动开启)。 ## 本地运行 ``` npm install npm run dev ``` 然后打开 `http://localhost:5173`。 ## 构建 / Docker ``` npm run build docker build -t machine-identity-explainer . docker run -p 8080:8080 machine-identity-explainer ``` ## 技术栈 - **Vite + React + TypeScript** 用于构建 SPA - **Tailwind CSS** 用于样式设计 - **Nginx** 作为生产服务器(在 Docker 镜像中) ## 相关项目 - [conjur-explainer](https://github.com/aslancarlos/conjur-explainer) — 相同的讲解模式,专注于 IDIRA Secrets Manager - [k8s-eso-shop](https://github.com/aslancarlos/k8s-eso-shop) — K8s 上 External Secrets Operator 的端到端演示 ## 许可证 Apache License 2.0 — 详见 [LICENSE](LICENSE)。
标签:MITM代理, SPIFFE/SPIRE, 交互式可视化, 安全教育, 机器身份, 自动化攻击, 请求拦截, 零信任网络