【Agent 身份与安全】Agent 身份谱系:从 API Key 到委托 Token
四代 Agent 身份模型:API Key、OAuth 用户 token、Service Account、RFC 8693 Token Exchange 委托链。拆解 subject_token、actor_token、act claim,以及与 JWT/JWKS 系列的交叉引用。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 69 篇文章 · 返回首页
四代 Agent 身份模型:API Key、OAuth 用户 token、Service Account、RFC 8693 Token Exchange 委托链。拆解 subject_token、actor_token、act claim,以及与 JWT/JWKS 系列的交叉引用。
从 coarse scope 到 resource-specific consent:UMA 2.0 Permission Ticket 模型、Google incremental auth 对照,以及 Agent 场景下的动态授权边界。
Tool schema 暴露面、允许列表 vs OPA/Cedar 策略引擎、SQL Agent 的 statement class 与 RLS 边界,以及 Host 层 tool 调用拦截架构。
高风险 Agent 操作的 step-up 认证、同步确认 vs 异步审批队列、超时与 Agent 状态机,以及与自适应认证和 PAM JIT 的衔接。
Model Context Protocol 的 Host/Client/Server 三角、stdio 与 Streamable HTTP Transport 安全差异、OAuth 2.1 for MCP 草案边界,以及多 Server secret 隔离与 tool 攻击面。
多 MCP Server 并存时的 secret 隔离、恶意 tool description 注入、SBOM 与签名验证,以及与零信任软件供应链的联动。
OpenID CAEP/SSE 草案、短有效期 token 与推送撤销、Agent 缓存 PII 风险,以及与 IAM 会话吊销和零信任持续验证的对照。
Agent 最小审计字段集、OpenTelemetry span 建模 tool 调用、PII 清洗点,以及与 PAM/IGA 审计和零信任可观测性的衔接。
IdP + Policy Engine + Agent Gateway + MCP Host 参考架构,Keycloak/OPA/Envoy 能力边界,以及从用户 token 直连到 Gateway 代签的迁移路径。
IAM 系列(人)与零信任系列(边界)的自然延伸:当 LLM Agent 代表用户调用 API、执行 SQL、读写邮件时,传统 OAuth 模型如何扩展?拆解 Token Exchange、MCP 安全模型、工具级授权、持续验证与审计归因。
从 OIDC、OAuth 2.1、SAML、SCIM 到多租户权限、CIAM、PAM 与身份平台选型——系统拆解现代身份与访问控制的协议、架构与工程实践。
TEE 保护什么、不保护什么?从 Intel SGX、AMD SEV-SNP、Intel TDX 到 ARM CCA,对照威胁模型、远程认证、Confidential Containers 与 Gramine/Occlum 软件栈,说明机密计算如何改变 Guest 与 Hypervisor 的信任关系,以及与容器隔离的互补边界。
FreeBSD 和 OpenBSD 从同一个 BSD 根分出两条相反的路径:一个追求通用性能与广泛生态,一个追求安全正确性与代码洁癖。本文从安全模型、文件系统(ZFS vs FFS)、网络栈(pf vs pf 正统)、虚拟化(jail/bhyve vs vmm)、社区治理、包管理、硬件支持到生产案例做逐项对比,给出选型框架和不该选 BSD 的典型场景。
SSO 只解决认证,SCIM 解决账号的生命周期管理。但 SCIM 2.0 的实现远不是调几个 REST API 那么简单:User/Group schema 的映射、Delta vs Full sync 的同步策略、Patch 操作语义,每个环节都有坑。本文从账号生命周期的四个关键事件出发,拆解 SCIM 2.0 的核心协议、同步模式、Schema 扩展,以及与企业 IdP(Azure AD、Okta)对接的实际工程经验。
从 2020 年 SolarWinds 到 2024 年 Okta 支持系统泄露,身份基础设施的安全失败反复证明一件事:IAM 不是 IT 支撑系统,而是安全架构的承重墙。本文建立现代 IAM 的全景地图——从认证协议、令牌体系、权限模型到身份治理与平台选型,给出 5 个贯穿全系列的核心问题。
OIDC 是当下企业 SSO 的事实标准,但大多数实现只用了它 20% 的规范。本文从 OIDC 核心规范出发,拆解 Authorization Code Flow + PKCE 的完整交互、ID Token 的验证规则、Discovery 与 Dynamic Registration 的互操作性机制,以及 RP-Initiated Logout 和 Session Management 的工程实现细节。
OAuth 2.1 不是新协议,而是对 OAuth 2.0 的安全加固:废除 Implicit Grant 和 Resource Owner Password Grant,强制 PKCE 用于所有使用授权码模式的客户端,要求精确 redirect_uri 比对。本文从 PKCE 的密码学动机出发,拆解 OAuth 2.1 的授权码流程完整交互、Refresh Token 轮换与发送者约束、DPoP 令牌绑定,以及 DCR (Dynamic Client Registration) 和 RAR (Rich Authorization Requests) 的实际应用。
2026 年了,SAML 2.0 这个诞生于 2005 年的标准在 OIDC 的压力下看似日薄西山,但全球超过 70% 的企业 SaaS 产品仍然把 SAML SSO 放在 Enterprise 定价方案的第一行。本文拆解 SAML 2.0 的核心协议模型、SP-Initiated 和 IdP-Initiated 两种 SSO 流程、NameID 的选择策略、SAML Metadata 的互操作性工程,以及 SAML 和 OIDC 在实际企业客户场景中的选型逻辑。
JWT 不等于 JWS。JWS 是签名格式,JWE 是加密格式,JWK 是密钥表示,JWKS 是密钥集合——这四个规范共同构成了 JOSE(JSON Object Signing and Encryption)技术族。本文从 JOSE 体系全景出发,逐层拆解 JWT 的三段式结构、JWS 的签名算法选择(从 HS256 到 EdDSA 的选择逻辑)、JWE 的密钥加密与内容加密双层模型、JWKS 的密钥轮换与缓存策略。
JWT 的无状态设计带来了可扩展性,但让令牌吊销变成了系统性问题——签出去的 JWT 在到期之前全是活令牌。Refresh Token Rotation、Token Introspection、基于事件的吊销通知、撤销列表——这些机制构成了身份系统的'紧急刹车',各自的成本、延迟和覆盖范围完全不同。本文拆解四种吊销机制的工程权衡。
MFA 从'额外的一道验证码'演变为以 WebAuthn/Passkey 为代表的无密码认证体系,但工程落地不是'加个 TOTP 就完事'——TOTP 的种子存储安全、WebAuthn 的 attestation 与 origin 绑定、Passkey 的跨设备同步与 recover 流程、以及各方案在用户流失率和安全强度之间的现实权衡,每一项都影响架构决策。
MFA 是固定策略——启用后每个人每次登录都要输入验证码。风险感知认证(Adaptive/Risk-based Authentication)让认证强度随风险动态调整:从新设备、新位置触发额外验证,到持续的行为分析和会话风险评估。本文拆解风险引擎的信号模型、设备指纹的实现选型、挑战升级的 UX 设计,以及硅谷大厂的实践对比。
前 9 篇讨论的都是'人'的身份——用户怎么登录、怎么验证。但微服务世界中,80% 的 API 调用是服务之间的。服务身份(Workload Identity)是整个 IAM 体系的另一半:mTLS 解决'传输层你是谁',SPIFFE/SPIRE 解决'在平台层你是谁且怎么证明',JWT Profile for OAuth 解决'我怎么拿到一个服务身份的 Token'。本文从这三条线拆解服务身份的工程实现。
RBAC 简单但会角色爆炸,ABAC 灵活但策略管理失控时更可怕,ReBAC 表达力强但引入了图遍历的性能约束。三种模型不是'选一个升级另一个'的线性关系,而是在表达能力、管理成本和性能三者之间做工程权衡。本文从每种模型的本质数据结构出发,拆解选型框架。
Google Zanzibar 论文在 2019 年发布后,引发了开源授权系统的一波重新设计:Auth0 FGA、SpiceDB、Permify、Ory Keto——全都基于 Zanzibar 的'关系图+命名空间配置'模型。但论文本身只讲了 What,没深入 Why。本文从 Zanzibar 的 relation tuple 模型、namespace config 的语义、consistency 模型(Zookie)和工程权衡出发,拆解为什么 Zanzibar 的设计决策是这样的,以及你自己实现时要面对什么。
OPA 是 CNCF 的策略引擎标准答案,Rego 是它的策略语言;Cedar 是 AWS 开源的新竞争者,基于 Rust 的 WASM 编译执行、语法更接近 SQL。两者在架构模式(sidecar vs 中心化)、策略语言设计哲学和性能特征上有根本差异。本文从策略引擎的架构模式出发,拆解 OPA Rego 的核心语义与性能限制、Cedar 的设计取舍,以及策略即代码(Policy as Code)在 CI/CD 中的落地。
多租户权限系统是 IAM 中工程复杂度最高的场景之一——每个租户想要自己的角色、自己的组织树、自己的审批流和完全隔离的数据。这四种需求会互相冲突。本文从租户隔离模型出发,拆解四层权限架构、租户级 RBAC 的扩展方案、组织树与数据权限的联动,以及跨租户授权(如第三方服务商访问客户数据)的架构设计。
API Gateway 是 IAM 的边界执行点——OAuth Token 的验证、Rate Limit 的绑定、请求级的授权决策都发生在这里。但网关层的认证授权逻辑应该做多厚?BFF(Backend for Frontend)模式把 Session 管理和 Token 兑换从浏览器移回后端后,网关的角色有什么变化?本文从网关层的认证授权架构出发,拆解三种部署模式及其安全边界。
Keycloak 是 CNCF Incubating 项目中最成熟的 IAM 平台,也是自建身份系统的首选开源方案。但它不是'下个 JAR 跑起来就行'的简单软件——Realm 的隔离模型、Authentication Flow 的执行引擎、Client Scope 和 Protocol Mapper 的职责分离、自定义 SPI 扩展点——理解这些内部架构才能做好生产部署。本文从 Keycloak 的核心概念模型出发,拆解其内部执行路径和扩展机制。
自建 Keycloak 省下的 license 费用,会在运维、高可用、多活、定制开发和知识积累上还回去。采购 Auth0/Okta/Entra 省下的运维成本,会在 license 账单、供应商锁定和功能黑盒上付出代价。本文不是产品推荐,而是一个工程决策框架——在什么规模、什么场景下,哪种选择的总成本(TCO)合理。
CIAM(Customer IAM)和 Workforce IAM 的架构差异不只是'人多了一些'——CIAM 面向的是百万到亿级的用户量、自注册到注销的完整消费者生命周期、GDPR/CCPA 的同意管理、跨设备跨渠道的统一身份,以及与营销和 CRM 系统的数据集成。本文从 CIAM 与 Workforce IAM 的本质差异出发,拆解 CIAM 的注册漏斗、渐进式画像、同意管理和 B2B/B2C 混合架构。
PAM(Privileged Access Management)管理的是'有钥匙的人'——域管理员、数据库 DBA、云基础设施 root 账号。IGA(Identity Governance and Administration)管理的是'谁应该有什么访问权限'——访问认证(Access Certification)、权限审计(SoD 分离)、自动化开通。两者加上审计日志构成安全合规的三足鼎立。本文拆解 PAM 的会话劫持与审计、IGA 的访问认证与角色挖掘,以及审计日志的不可篡改设计。
身份系统迁移是整个 IAM 领域中风险最高、回滚最难的操作——用户密码哈希不可逆迁移、MFA 种子不可迁移、WebAuthn credential 绑定到特定 RP ID、数百万活跃 Session 的中断窗口——任何一个环节出错都意味着用户无法登录。本文从迁移的四种策略出发,拆解密码哈希桥接、MFA 重新注册编排、Session 连续性保持、灰度切流的架构设计,以及身份安全事故的应急响应流程。
NIST SP 800-207 给了零信任最权威的定义,但大多数讨论只复述了 7 条原则。本文拆解 NIST 文档的完整架构模型:PEP、PDP、Policy Engine、Policy Administrator 的分工与交互协议、信任算法的三种模型、以及 NIST 有意留白留给实现者的工程决策。
Google 的 BeyondCorp 是最早把零信任从概念推到全公司规模的工程实践。从 2014 年第一篇论文到 2018 年第六篇,这六篇论文记录了每一次架构决策的动机、执行过程和后果。本文不是要点复述,而是把六篇论文当工程复盘来读。
身份感知代理(IAP)是零信任架构中用户进入企业资源的唯一入口——它取代了 VPN 的'拨入内网'模型,把每个 HTTP 请求的认证和授权检查放在资源前面。本文拆解 IAP 协议层的完整请求流、JWT 验证的严格性要求、Header Injection 的安全陷阱,以及 Pomerium/oauth2-proxy/Cloudflare Access 的实现差异。
零信任的'持续验证'从设备姿态开始——TPM 2.0 的远程证明提供硬件级可信测量,osquery 采集操作系统级安全信号,信任引擎把这些信号综合成一个可以写入策略引擎的分数。本文拆解 TPM 2.0 PCR 语义、AIK 证明协议、设备信任分数的计算与衰减模型,以及设备姿态系统的运维陷阱。
零信任把认证从'登录时一次'变成了'整个会话期间的持续评估'。但'持续'在工程中既不可能是'每个请求都完整评估',也不应该是'会话期间不重新评估'。本文回答持续验证的工程实现:什么频率叫持续、当风险信号变化时如何降级或撤销现有会话、以及 OpenID CAEP 协议的草案现状。
在零信任架构中,策略引擎(PDP)是每次访问决策的裁判——不仅要回答'这个人能不能访问这个资源',还要回答'在当前设备姿态、地理位置、时间上下文下,这个人能不能访问这个资源'。本文聚焦策略引擎在零信任场景中的额外要求:多维输入的协同、策略的实时更新、冲突检测和策略即代码的 CI/CD。
微分段是零信任在网络层的核心机制——从传统 VLAN 的广播域隔离,到 Kubernetes NetworkPolicy 的 IP 级别过滤,再到 Cilium 基于身份的 eBPF 执行和 Istio 的 L7 策略。本文拆解四层微分段技术的实现原理、性能差异和适用场景,以及从'全通'到'全白名单'的策略制定流程。
mTLS 是零信任服务间通信的基石,但从'单集群内启用 mTLS'到'全公司多集群、混合云的 mTLS',中间隔着 SPIRE 联邦、跨信任域证书验证、mTLS 握手并发瓶颈、连接池协议兼容性和故障排查等工程问题。本文不重复 SPIFFE/SPIRE 基础,而是聚焦大规模部署中才暴露的问题。
Zero Trust Network Access(ZTNA)是零信任架构中直接替代 VPN 的组件——它把'拨入内网'变成'按应用授权'。本文拆解 SDP 协议的三个阶段、SPA 单包授权的'端口隐藏'机制、Agent-based vs Agentless ZTNA 的实现差异,以及自建 ZTNA 技术栈的可行性。
零信任通常被讨论在网络和身份层面,但数据层才是攻击者的最终目标。当网络控制和身份验证都失败时,数据本身的加密和访问治理是最后一道防线。本文讨论应用层加密 vs 存储层加密、数据分类标签在授权决策中的应用,以及密钥管理的零信任化。
企业的工作负载已经从数据中心移到了 SaaS 和公有云——Google Workspace、Office 365、Salesforce、GitHub 是新的'内网'。零信任在 SaaS 和云原生环境中的实现方式与传统数据中心完全不同。本文拆解 CASB 的零信任化、SSPM/CSPM 的配置审计和多云 IAM 的最小权限实践。
SolarWinds 攻击告诉世界一件事:如果你的 CI/CD 管道被攻破,攻击者不需要攻破生产系统——在构建时注入后门就够了。本文拆解 SLSA 框架的四级成熟度、Sigstore 的无密钥签名机制、以及 SPIFFE/SPIRE 如何为 CI/CD 管道提供短有效期身份。
零信任不是 binary 的'做完/没做完'。CISA 的零信任成熟度模型(ZTMM v2.0)将零信任分解为五个支柱,每个支柱有四个成熟度等级。本文拆解 ZTMM 的评估框架,以及每个支柱从初级到高级的工程跳跃具体意味着什么。
零信任最重要的工程问题不是'采购什么产品',而是'怎么迁移'。已有 500 个遗留系统、数十个无法停机的关键业务、几千台未被管理的设备——本文拆解四种遗留系统升级策略、渐进式切流的流量控制与回滚条件,以及迁移中的人力成本和组织阻力。
零信任架构生成的安全日志比传统架构多一个数量级——每个访问代理的决策、每次 mTLS 握手、每条微分段策略的 allow/deny 事件。如果没有配套的日志聚合、异常检测和自动化响应,零信任就是一个'黑盒式拒绝'系统。本文拆解零信任的三层日志和特有的检测规则。
基于三个公开资料最充分的零信任实施案例——Google BeyondCorp、美国联邦政府 EO 14028 和金融服务行业——做工程视角的交叉对比分析:他们各自的基础条件、优先级选择、踩过的坑和时间线。
零信任的现状主要服务于'人访问应用'和'服务调用服务'两种模式。但三个新兴场景正在挑战零信任的基本假设:AI Agent 的自主操作、边缘计算的间歇性连接、以及 PQC 对 X.509 证书和 mTLS 握手的冲击。本文展示工程挑战和当前最优实践,不假装有成熟的标准答案。
零信任是 IAM 的自然延伸——当身份变成新边界,VPN 的'拨入即信任'模型必须被'永不信任、始终验证'取代。本系列从 NIST SP 800-207 规范、Google BeyondCorp 六篇论文、SPIFFE/SPIRE 联邦到微分段、持续验证、ZTNA 和零信任迁移的工程策略,系统拆解零信任的每一种组件和每一步实施。
从开源库到硬件加速,从等保密评到 DTLS 国密,全面剖析国密生态的技术选型与合规落地路径。
不依赖 OpenSSL,用纯 C 从零实现 TLS 1.3 一次往返握手——X25519 密钥交换、HKDF 密钥派生、AES-128-GCM 加密,一个文件搞定。

你的容器能调用 reboot()。是的,现在就能。除非有人拦住它。Capabilities 拆分 root 权限,Seccomp-BPF 过滤系统调用——两道防线,缺一不可。本文用 C 代码拆解这两套机制,看看 Docker 到底替你挡住了什么。
容器运行时需要 root 权限?不一定。User namespace 让普通用户也能创建容器——容器内是 root,容器外是你自己。Podman 就是这么干的。但 rootless 不是免费午餐,限制比你想象的多。
TLS 1.3 标准握手用 X25519+AES-128-GCM+SHA-256,全换成 SM2+SM4-GCM+SM3 后,握手报文到底改了多少?本文从 ClientHello 到 Finished 逐字节对比,并结合 Wireshark 抓包和双证书体系深入分析。
从信任模型的哲学分歧、证书格式的 ASN.1 编码、算法 OID 的注册差异、到双证书体系的 KMC 密钥托管——逐层拆解国际 PKI 与国密 PKI 在设计理念和工程实现上的本质区别。
从 Hybrid 模式到证书链迁移,从 NIST ML-KEM/ML-DSA 到国密 SM2 的量子威胁,一份面向工程落地的后量子密码迁移指南。
SM3 和 SHA-256 都基于 Merkle-Damgård 结构、256-bit 输出、64 轮压缩——但消息扩展、布尔函数、常量选取的设计哲学完全不同。本文用 simple_gmsm 代码逐步拆解 SM3 压缩函数,并在 x86-64 / ARM64 上实测性能。
AES 和 SM4 都是 128-bit 分组密码,但设计哲学截然不同:AES 走代数优雅路线,SM4 走工程实用路线。本文从 S-Box 设计、轮函数结构、密钥扩展、硬件加速到 GCM 模式性能实测,全面对比两条路线的取舍。
如何在 Libevent 中实现双向 TLS 认证 (mTLS)。从证书生成、SSL_CTX 配置到 bufferevent 集成,构建零信任网络基础。
Seccomp 只能说 yes or no,但攻击者早就学会了在 yes 里面做文章。是时候让 eBPF 接管安全审计了。
在数据为王的时代,数据隐私和安全变得至关重要。我们希望在利用数据带来价值的同时,保护其不被泄露。传统的数据加密技术(如 AES、RSA)可以有效地保护静态存储和传输中的数据,但一旦需要对数据进行计算或处理,就必须先解密。解密后的数据以明文形式暴露在内存中,极易受到攻击,这在云计算等第三方计算环境中构成了巨大的安全风险。
在传统的用户名 + 密码登录系统中,服务器通常要么直接保存口令派生值(如 salt + hash(password)),要么依赖 TLS+密码的组合来实现认证。一旦服务器数据库被攻破,攻击者就可以对这些口令派生值做离线暴力破解,且整个系统的安全性高度依赖 TLS 与密码派生方案的组合是否正确实现。OPAQUE(The…
密码学最危险的不是算法被破解,而是正确的算法被错误地使用。本文梳理 7 个真实 CVE 中的密码学工程错误,附代码与修复方案。
密码安全存储最佳实践:哈希算法、加盐、bcrypt/scrypt/Argon2 使用指南
XSS 跨站脚本攻击实战:攻击原理、防御方法与安全编码最佳实践
Linux 提权技术详解:权限提升原理、常见漏洞利用方法与防护措施