Havenlon 对抗性完整(一):不是谁可信,而是谁可能变坏

📅 2026/6/25 16:04:25
Havenlon 对抗性完整(一):不是谁可信,而是谁可能变坏
在讨论 Havenlon 的执行控制架构时我越来越意识到仅仅解释“系统如何正常工作”是不够的。一个系统在正常条件下能够运转并不代表它在真实世界里足够可靠。真正困难的问题往往不是流程是否顺畅而是当流程中的某一层出错、被误用、被诱导、被攻破甚至被内部人利用时系统还能不能保持基本的安全边界。这也是我开始思考“对抗性完整”的原因。所谓对抗性完整不是说一个系统可以防住所有攻击也不是说系统永远不会失败。任何负责任的工程系统都不应该这样承诺。对抗性完整真正关心的是当系统处在不理想的环境里当某些组件、人员、策略或上下文不再可信时系统是否仍然知道自己应该如何失败是否仍然能够限制错误的传播是否能够避免单点失效直接变成灾难性执行。换句话说Havenlon 要解决的问题不只是“谁可信”而是“谁可能变坏”。一、传统系统经常从信任开始但执行系统必须从不信任开始很多软件系统在设计之初都会天然假设某些角色是可信的。比如用户登录之后系统默认这个账号代表真实用户管理员拥有权限之后系统默认管理员的操作是合理的SaaS 平台下发策略之后终端默认策略来自可信来源审批流程通过之后系统默认这次操作已经被正确确认。在普通业务系统里这种假设可以提高效率也符合大多数产品的设计习惯。因为大量系统主要处理的是数据、流程、展示和协作错误虽然会带来损失但很多时候仍然存在回滚、修改、补偿和人工介入的空间。但是执行系统不一样。执行系统一旦连接到真实资产、真实密钥、真实 API、真实证书、真实生产环境它处理的就不再只是“信息是否正确”而是“某个动作是否真的发生”。这类动作一旦发生往往具有外部后果。比如一笔资产被转出一个 API Key 被调用一张证书被使用一个生产操作被提交一个成员权限被改变或者一个自动化代理执行了某个不可逆任务。在这种系统里如果仍然从“谁可信”开始设计就很容易留下结构性风险。因为真实世界里可信关系从来不是永久稳定的。今天可信的账号明天可能被盗用今天正确的策略明天可能被误配置今天可靠的审批者明天可能被社工诱导今天干净的执行请求可能在某个链路中被替换今天正常工作的 SaaS也可能在某个时间点被入侵或出现逻辑错误。所以Havenlon 不能只问“哪个角色应该被信任”而必须先问“如果这个角色不再可信系统会发生什么”这就是对抗性完整的出发点。二、攻击者不一定是黑客也可能是任何改变执行结果的人在很多人的直觉里攻击者就是黑客是通过漏洞入侵系统的人。这当然是安全设计中非常重要的一类对手但对于执行控制系统来说这个定义太窄了。在 Havenlon 的语境下攻击者不一定非要突破防火墙也不一定非要拿到服务器权限。只要某个行为能够让系统执行一个不该执行的动作或者让系统在错误条件下放行一个动作它就已经构成了执行层面的攻击。这种攻击者可能是外部黑客也可能是内部成员可能是恶意行为也可能是错误配置可能是账号被盗也可能是 AI Agent 被 prompt injection 诱导可能是 SaaS 平台被攻破也可能是用户在错误上下文里点击了确认可能是 payload 被替换也可能是审批界面展示的内容和最终执行内容不一致。这意味着Havenlon 所面对的对手并不是单一形态的“入侵者”而是所有可能改变执行结果的因素。一个普通权限系统可能会认为只要账号是合法的、Token 是有效的、审批记录存在操作就可以继续。但 Havenlon 需要进一步追问这个合法账号是否真的代表当前用户意图这个 Token 是否处在正确上下文中这次审批是否绑定了真实 payload策略是否被绕过执行链路是否完整最终执行的内容是否仍然等于最初被确认的内容如果这些问题没有被回答清楚那么“合法”并不等于“安全”。这也是执行控制和传统访问控制最大的区别之一。访问控制关注的是谁可以访问系统而执行控制关注的是一个动作是否应该被允许发生。前者更多处理入口后者必须处理结果。三、系统不能假设用户永远清醒很多安全系统喜欢把最终责任交给用户尤其是在涉及确认、授权和签名的场景里。系统会显示一段信息然后让用户点击确认。只要用户点了系统就认为责任完成转移。这种设计在早期可能是合理的因为系统面对的是相对简单的操作人类可以通过界面直接理解自己正在做什么。但随着系统复杂度增加尤其是在 Web3、多签、企业审批、API 自动化、AI Agent 工具调用等场景中用户面对的已经不再是简单按钮而是复杂上下文中的执行决策。用户可能并不理解完整 payload可能不知道这个请求来自哪里可能无法判断某个地址是否异常可能无法识别一段看似正常的调用背后隐藏的后果也可能在高压、疲劳或社工诱导下做出错误确认。因此Havenlon 不能把用户确认简单视为万能的安全边界。用户确认很重要但它必须被放在完整的执行控制链里而不是孤立存在。也就是说用户确认必须回答几个问题用户确认的到底是什么确认内容是否和最终执行内容一致确认动作是否发生在正确设备上确认是否经过策略校验确认是否绑定了 IntentHash 或其他可验证摘要确认之后是否仍然可能被替换、重放或绕过如果用户只是看到了一个抽象描述然后点击了一个按钮而系统并没有把这个确认和最终执行对象进行强绑定那么这个确认并不能构成真正可靠的执行授权。在对抗性完整的框架下用户不是被否定的角色而是被保护的角色。系统不能假设用户永远清醒、永远理性、永远理解完整后果。系统应该承认人会犯错并通过结构设计降低单次错误带来的破坏性。四、系统不能假设 SaaS 永远可信现代系统大量依赖 SaaS。SaaS 可以承担身份管理、策略配置、审批协作、审计展示、日志归档、风控判断和组织管理等功能。对于 Havenlon 来说Bletchley 这类云端策略与协同层也非常重要因为它可以让组织管理、策略变更、审批流和风险控制变得更清晰。但问题在于SaaS 不应该拥有最终执行权。这是 Havenlon 架构里非常重要的一条边界。SaaS 可以判断可以协调可以展示可以记录可以提出建议可以参与决策但它不应该绕过本地设备和硬件边界直接完成执行。原因很简单SaaS 本身也是攻击面。它可能出现账号被盗、权限配置错误、接口被滥用、后台被入侵、逻辑漏洞、供应链依赖问题、数据库污染、管理员误操作甚至也可能因为业务压力引入不安全的快捷流程。如果系统把最终执行权交给 SaaS那么 SaaS 的任何高危问题都可能直接变成执行层面的灾难。对抗性完整要求我们承认云端系统再重要也不应该成为单点上帝。这并不是说 SaaS 不可信因此不要 SaaS。恰恰相反SaaS 在组织治理、策略管理和协同效率上非常有价值。但它应该被放在它该在的位置上它是决策层、协调层、策略层和审计层而不是最终执行层。Havenlon 的设计目标不是消灭云而是限制云的执行权。云可以帮助系统做出更好的判断但最终动作必须经过本地边界、硬件约束和可验证执行链。这样即使 SaaS 某一时刻出现问题它也不能单独造成不可逆执行。五、系统不能假设硬件天然安全很多人提到硬件安全会自然想到密钥隔离、安全芯片、硬件钱包或者 HSM。硬件确实可以提供比普通软件环境更强的隔离能力但这并不意味着“只要用了硬件系统就是安全的”。硬件同样可能被错误设计、错误使用或错误集成。设备可能被盗固件可能存在漏洞调试接口可能没有关闭供应链可能被污染安全芯片可能被错误配置显示内容可能和真实执行内容不一致硬件只负责签名但不理解策略最终也可能变成一个“安全地执行错误动作”的工具。所以 Havenlon 对硬件的理解不应该停留在“密钥放在硬件里”。真正重要的问题是硬件是否拥有拒绝执行的能力硬件是否能够验证执行上下文硬件是否知道自己正在执行什么硬件是否能把策略、意图、审批和最终 payload 绑定在一起硬件是否能在不确定时停止而不是继续签名换句话说硬件的价值不只是保护密钥而是形成物理执行边界。如果一个硬件设备只负责保存密钥然后对外部传进来的 payload 进行签名那么它解决的是密钥泄露问题却未必解决错误执行问题。Havenlon 更关心的是执行动作在离开硬件边界之前是否已经经过了完整的策略校验、审批绑定、上下文确认和证据记录。因此在对抗性完整的视角下硬件不是一个被盲目信任的对象而是一层必须被设计、约束和验证的执行边界。硬件不是因为“硬”所以可信而是因为它承担了不可绕过的最终拒绝能力所以才有意义。六、系统不能假设内部人永远站在同一边很多安全系统最难处理的不是外部攻击而是内部人风险。因为内部人往往拥有合法身份、合法权限和真实业务上下文他们的操作看起来并不异常甚至完全符合流程。在组织场景中Owner、管理员、审批者、财务成员、运维人员、合伙人、离职成员、外部服务商都可能成为风险来源。这种风险不一定来自恶意也可能来自误解、疏忽、被诱导、利益冲突或临时失控。如果一个系统默认 Owner 永远正确管理员永远可信多签成员永远理性审批者永远理解执行后果那么这个系统的安全性其实依赖的是人的稳定性而不是系统结构本身。Havenlon 需要承认一个现实人在组织关系中是会变化的。今天的合作者明天可能产生利益冲突今天的管理员明天可能离职今天的审批者可能在某一次高压场景中做出错误判断今天的 Owner也不应该拥有不受约束的绝对权力。所以Havenlon 的共同治理原则里一个重要方向就是 Owner ≠ God。Owner 可以拥有更高职责但不能天然绕过所有执行边界。高风险治理动作比如移除成员、替换设备、修改策略、迁移资产、改变证书、关闭安全规则都不应该由单一角色随意完成。这不是为了制造流程负担而是为了防止组织安全完全绑定在某个人的状态上。对抗性完整要求系统把内部人风险纳入设计而不是把它当成管理问题丢给制度。真正成熟的执行控制系统必须能回答如果某个内部成员作恶系统如何限制他如果多个成员串通系统如何暴露证据如果 Owner 账号被盗系统如何阻止灾难性动作如果成员拒绝配合系统如何在不破坏共同治理原则的情况下进入安全状态这些问题不一定都有完美答案但系统必须正面面对它们。七、系统不能假设 AI Agent 理解边界AI Agent 时代让执行控制问题变得更加复杂。过去的软件系统大多由人明确点击和提交虽然也会出错但执行路径相对清晰。AI Agent 出现之后系统开始从“人直接操作”转向“人给目标AI 拆解任务并调用工具”。这带来了一个新的风险AI 可能并不真正理解执行边界。它可以生成计划可以调用 API可以根据上下文做推理可以自动完成一系列步骤但它可能不知道某个动作在现实世界中的不可逆后果。它可能把建议当成授权把上下文当成事实把工具调用当成普通文本处理把一个危险操作包装成看起来合理的自动化流程。AI Agent 的问题不只是“会不会幻觉”而是它可能在不确定的情况下继续执行。对于一个聊天模型来说错误回答可以被纠正但对于一个连接到生产系统、资产系统、密钥系统或权限系统的 Agent 来说错误执行可能直接造成现实损失。因此Havenlon 的基本态度应该是AI 可以建议但不能单独执行。AI 可以生成 intent但 intent 不能自动变成 execution。AI 可以参与流程但必须被执行控制层约束。AI 的输出必须被视为输入而不是授权。这并不是否定 AI 的价值。相反AI 会极大提升复杂系统的操作效率但效率越高越需要边界。没有边界的自动化不是智能而是放大风险的执行通道。在对抗性完整的设计里AI Agent 必须被放在可控位置。它可以提出请求可以解释风险可以辅助生成策略可以帮助审计日志但最终执行必须经过人、策略、设备和硬件边界共同约束。八、对抗性完整不是追求完美安全而是控制失败方式讨论到这里可以回到最核心的问题什么是 Havenlon 的对抗性完整它不是承诺系统不会被攻击也不是承诺每个组件永远可靠。现实世界中没有任何系统可以做到这一点。真正可信的系统应该能够诚实地承认自己会遇到错误、攻击、误判和失控并且提前定义这些情况发生时系统应该如何反应。如果 SaaS 被攻破它不能直接执行。如果用户被诱导系统不能只靠一次点击放行高危动作。如果 AI Agent 生成错误 intentintent 不能自动变成执行。如果审批流程被误用审批内容必须和最终 payload 强绑定。如果 Hub 处在异常状态它不能继续表现得像一切正常。如果证据链断裂系统应该进入降级或 Safe Mode而不是继续执行。如果内部成员作恶系统应该限制单点权力并留下可验证证据。如果硬件无法确认执行上下文它应该拒绝而不是盲签。这些原则背后的共同逻辑是系统安全不应该建立在“大家都不会出错”的假设上而应该建立在“有人一定会出错某些层一定会失效攻击一定会发生”的现实基础上。这就是对抗性完整和普通安全设计的区别。普通安全设计经常试图证明系统在理想条件下是安全的而对抗性完整更关心系统在不理想条件下是否仍然可控。九、从“可信组件”转向“受限组件”Havenlon 的架构思想可以进一步概括为一句话不要轻易定义可信组件而要定义受限组件。SaaS 不是可信的所以它只能决策和协调不能直接执行。用户不是永远清醒的所以用户确认必须绑定真实 payload而不能只是点击按钮。AI Agent 不是可靠执行者所以它只能提出 intent不能单独完成 execution。Hub 不是上帝所以它必须受到本地策略、云端策略、硬件边界和证据链约束。硬件不是魔法所以它必须具备上下文验证、策略校验和拒绝执行能力。内部成员不是永远一致的所以治理动作必须防止单点权力造成不可逆后果。这种设计方式会让系统看起来更复杂但这是执行控制系统必须付出的复杂度。因为一旦系统连接真实资产、真实 API、真实证书和真实生产操作简单的信任假设就不再足够。真正的安全不是把某一层神化而是让每一层都被限制在合理范围内。一个对抗性完整的系统不是没有可信点而是不让任何单一可信点拥有灾难性执行能力。十、结语Havenlon 不是为理想世界设计的Havenlon 的核心并不是假设世界会变得更可信而是承认世界正在变得更复杂、更自动化、更难预测。AI Agent 会越来越多地参与决策和执行SaaS 会承载越来越多组织治理流程硬件会连接越来越多真实资产和系统接口团队协作会跨越更多角色、设备和地域。所有这些趋势都会带来效率但也会让执行风险变得更难被单一权限系统覆盖。在这种背景下Havenlon 需要回答的不是“我们能不能相信某一层”而是“当这一层不能被相信时系统是否仍然不会失控”。这就是对抗性完整的第一条原则不是谁可信而是谁可能变坏。从这个原则出发Havenlon 的执行控制才不只是一个产品功能而是一种系统设计方法。它要求我们把用户、AI、SaaS、Hub、硬件、成员、策略和证据链都放进同一个对抗环境里重新审视。只有当系统在这些角色部分失效时仍然能够限制错误执行它才真正具备成为执行控制基础设施的可能性。