Havenlon 设计哲学(三):任何组件都不应拥有无限权力
安全不是找到一个绝对可信的中心,而是让任何一个中心都无法单独造成灾难。
一、所有安全问题,最终都会收敛成同一句追问
做过系统架构的人大概都有类似的体感:一场安全评审进行到最后,无论开头讨论的是加密算法、权限模型还是审批流程,问题都会收敛成同一句话——
谁是可信的?
管理员是否可信?云端服务是否可信?硬件设备是否可信?审批人是否可信?而在今天,这份名单上又多了一个新角色:AI Agent 是否可信?
传统系统给出的答案,往往是去寻找一个最终可信者。
它可能是一个超级管理员账号,可能是一个云端控制台,可能是一把躺在 KMS 里的根密钥,也可能是一台被贴上"安全设备"标签的硬件。整套架构的逻辑非常简洁:只要这个最终可信者点头,系统就继续往下执行。
这种设计在正常状态下极其高效。它把复杂的信任判断压缩成一次校验,把分散的决策收敛成一个入口,性能好、实现简单、调试方便。
真正的问题出现在异常状态:一旦这个组件判断错误、配置错误、被攻击或者被滥用,它手里握着的就不再只是参与系统的权力,而是绕过整个系统的权力。
一个能绕过系统的组件,会让系统里其他所有防线同时失效。你写了多少策略、加了多少审批、部署了多少审计,在这一刻都不再重要。
所以 Havenlon 的第一个设计原则,不是去寻找一个更可信的中心,而是:
任何组件都不应拥有无限权力。
这里的"任何组件",范围要比通常理解的更宽——它既包括人,也包括软件、AI 模型、SaaS 服务、策略引擎,以及那台被称为"安全硬件"的设备。
一个成熟的安全架构,不应该建立在"某个组件绝对不会出错"的假设之上。它应该保证的是另一件事:
即使某个组件出错、失陷或被滥用,它也无法单独让灾难性执行发生。
二、Owner ≠ God:拥有系统,不等于可以绕过系统
系统所有者当然拥有管理系统的权力。
他可以配置策略、添加设备、分配角色、调整业务规则,也可以决定这套系统究竟服务于什么目标。这些都属于治理权,天经地义。
但"拥有系统",不应该等于"可以绕过系统"。
Owner ≠ God。所有者可以定义边界,却不应该在任何时刻都能无条件突破边界。
这条原则听起来有点反直觉:既然系统是我的,为什么我不能拥有最高权限?
因为在真实世界里,"所有者"从来不是一个永远稳定、永远清醒、永远安全的抽象身份。
它可能是一组账号,可能是一套凭证,可能是一个管理后台的登录态,也可能是某个正在承受巨大压力、被社工诱导、或者单纯判断失误的人。
账号会被盗; 凭证会泄露; 审批人会被骗; 管理员会误操作; 创始人也可能在深夜的紧急状态下按下错误的确认键。
如果"所有者身份"本身就足以绕过所有限制,那么攻击者的目标就变得异常清晰:不需要攻破任何一道技术防线,只需要拿到这个身份。整套安全系统会在一次成功的钓鱼之后瞬间归零。
所以在 Havenlon 的模型里,Owner 拥有完整的治理权,但不天然拥有无限的执行权。定义规则的人,同样受规则约束,这不是对所有者的不信任,而是对所有者的保护。
三、管理员不能成为系统的后门
很多系统表面上有一套相当复杂的权限控制,但仔细拆开会发现,里面始终留着一条超级管理员通道:
普通用户受策略限制,管理员却可以修改策略;
普通操作需要审批,管理员却可以重置审批流程;
普通设备需要验证,管理员却可以更换设备、导出密钥、关闭安全开关。
这意味着系统里所有的限制,最终都依赖同一个前提:
管理员不会出问题。
可是管理员并不天然比其他角色更安全。恰恰相反——管理员拥有更高权限,也因此更容易成为攻击目标。在真实的入侵链条里,攻击者从来不会去正面硬刚业务系统的权限校验,他们只会想尽办法拿下一个管理员。
如果一个身份能够同时做到修改规则、变更身份、关闭审计、触发执行这四件事,那么所谓的安全边界,不过是管理后台上的一层视觉效果。
一条能被单一身份完整绕过的边界,不是边界,是装饰。
真正的边界,必须能够约束管理员本身:
管理员可以发起变更,但关键变更需要独立确认;
管理员可以配置策略,但新策略不应自动获得执行能力;
管理员可以管理设备,但不能在缺少证据和约束的情况下让设备执行任意动作。
安全系统不应该通过寻找"一个更可靠的管理员"来解决问题,而应该通过架构本身,限制管理员的最大影响半径。
四、AI 可以提出行动,但不能单独让行动发生
AI Agent 的普及,让"无限权力"这个老问题变得前所未有地尖锐。
过去的软件在等待用户点击按钮。今天的 AI 可以理解目标、拆解任务、调用工具、生成参数、提交请求,并连续完成一整串操作。它已经不只是一个建议者,而是在结构上越来越接近执行者。
这带来了一个非常危险的误解:既然 AI 已经能够理解任务,是不是也应该让它直接完成任务?
Havenlon 的答案是明确的否定。
理解意图,不等于拥有执行权。
AI 可以判断"应该付款",但不应单独决定这笔款项最终打到哪个账户; AI 可以判断"应该部署",但不应单独决定哪段代码进入生产环境; AI 可以判断"应该关闭设备",但不应单独控制现实世界里的关键设施。
需要强调的是,这个约束并不是因为"AI 一定会犯错",也不是在争论 AI 是否比人更可靠。
真正的理由在于:任何单一智能体——无论是人还是模型——都不应同时握有理解、决策和最终执行的全部权力。这条原则对人成立,对 AI 同样成立。
而且存在一个反直觉的推论:AI 的能力越强,系统越不能只依赖 AI 的自我约束。因为能力越强,一次偏离所能造成的破坏半径就越大。
安全的目标从来不是要求 AI 永远正确,而是确保:
即使 AI 判断错误,它的错误也不能自动变成现实世界中的结果。
五、SaaS 可以参与治理,但不是最终权威
云端 SaaS 非常适合承担协同治理的角色。
它可以管理组织架构、配置策略、记录审批链路、对接身份系统,也可以让不同角色共同参与一次决策。这些能力,本地系统很难做得同样好。
但 SaaS 归根结底仍然是一套运行在远程基础设施上的软件。它同样会遇到账号失陷、服务端漏洞、内部权限滥用、配置错误、供应链攻击、状态不同步。
因此,SaaS 有资格表达这样一些事实:
某个请求已经通过审批;
某条策略当前有效;
某个身份持有某种角色;
某次操作满足了组织流程。
但它不应该仅凭一句Approval Passed,就让现实执行自动发生。
云端审批结果只能成为执行条件之一,而不能天然等于最终执行命令。
原因在于,审批所确认的是一件事:
组织是否同意这件事。
而执行边界还需要确认另一件事:
最终执行的对象、参数、状态和环境,是否仍然与被批准的内容一致。
这两者之间存在一个经常被忽略的时间窗口。从审批通过到实际执行之间,任何字段都可能发生变化:目标地址可能被替换,金额可能被修改,设备状态可能改变,策略可能过期,执行环境可能已经不再安全。
审批回答的是"该不该做",执行边界回答的是"现在做的还是不是当初批的那件事"。
这两个问题必须由两套独立的机制分别回答。把它们合并成一个,就等于把最终权力交给了云端。
六、硬件也不能成为新的神
当人们意识到软件和云端都不够可靠时,一个非常常见的反应是:把最终权力交给硬件。
硬件隔离、Secure Element、独立 MCU、物理按键、离线签名——这些手段确实能显著抬高攻击成本,也确实是可靠执行链路中不可替代的一环。
但"硬件更安全"并不等于"硬件应该拥有无限权力"。
硬件同样存在固件漏洞、实现缺陷、供应链风险和错误配置。更关键的是,硬件天然无法理解完整的业务语义,它没有能力凭自身判断一个操作是否符合组织意图。
如果一台安全硬件只要收到一条格式正确的命令就执行,那么它做的事情只是把原本属于软件的单点权力,原样搬进了一颗芯片里。
把神换个位置供起来,并不能解决无限权力的问题。
在 Havenlon 的设计中,硬件不是神,也不是业务决策者。它的职责被严格限定为:
验证执行请求是否满足已经定义的边界;
检查意图、审批对象与最终执行对象三者是否一致;
在信息缺失、冲突、过期或无法验证时拒绝执行;
保留独立否决权;
生成可验证的执行证据。
硬件不能凭空创造一个合法意图,也不能替代组织做出业务决定。
它拥有的从来不是无限执行权,而是受约束的最终裁决能力。
七、权力不是被取消,而是被拆开
"任何组件都不应拥有无限权力",并不意味着系统里没有权力。
系统仍然需要有人提出目标,需要 AI 理解任务,需要 SaaS 完成协同,需要策略定义边界,也需要硬件对最终执行进行裁决。这些权力一个都不能少。
关键在于:它们不能集中在同一个组件手中。
一次完整的现实执行,可以被拆解为六种彼此独立的能力:
提出意图 → 理解意图 → 批准意图 → 验证边界 → 形成执行 → 证明结果。
每一个角色都可以完整地完成自己负责的那一段,但没有任何一个角色能够独自走完全程:
| 角色 | 能做什么 | 不能做什么 |
|---|---|---|
| AI Agent | 提出并理解行动 | 自我授权 |
| 审批系统 | 同意行动 | 替换执行对象 |
| 策略引擎 | 定义允许范围 | 主动发起外部动作 |
| 安全硬件 | 拒绝执行 | 创造业务目标 |
| 执行器 | 完成动作 | 接收未经验证的执行对象 |
| 证据系统 | 记录结果 | 修改已发生的事实 |
这不是简单地往架构里堆更多组件,而是让不同能力之间形成相互约束的结构。
任何一环单独通过,都不足以让执行发生。
八、真正重要的,是独立否决权
传统系统很喜欢强调"多方同意"。但在高风险执行场景中,仅仅增加审批人数,并不会自动产生安全。
设想这样一种情况:所有审批人看到的是同一份被污染的信息,所有组件依赖的是同一个云端状态,最终设备无条件相信上游传来的结果。
那么这套系统表面上有很多参与者,实际上仍然只有一个信任来源。
参与者数量不等于信任来源数量。多个依赖同一份输入的确认,本质上只是一次确认。
所以 Havenlon 更关注的问题是:不同组件是否拥有真正独立的判断依据和真正有效的否决能力。
独立否决权意味着,当某个环节发现问题时,它可以直接阻止执行,而不是只能在日志里记录一条异常。
当意图与执行参数不一致时,拒绝;
当审批对象与最终对象不一致时,拒绝;
当证据缺失、过期或相互冲突时,拒绝;
当设备无法确认当前状态时,拒绝;
当任何必要条件不能被完整证明时,拒绝。
这种设计确实会在某些场景下降低便利性。但它换来的是一个更重要的性质:限制错误继续向下传播。
一个安全系统的价值,不体现在所有组件都正常时它跑得多顺,而体现在部分组件已经不可信时,它还守不守得住边界。
九、安全不是选出一个神,而是不允许神出现
很多安全架构都在寻找"最终可信根"。
但可信根的意义,从来不应该是拥有无限权力,而应该是提供一个不可轻易伪造的约束基础。这两者的差别,决定了一套架构在极端情况下的命运。
不够成熟的系统在问:
谁永远不会犯错?
成熟的系统在问:
当某个人、某个模型、某个服务或者某台设备已经犯错时,系统还能不能阻止错误变成不可逆的结果?
Havenlon 不试图创造一个永远正确的管理员、AI、SaaS 或硬件设备。它选择先承认现实:
人会犯错,AI 会偏离,软件会失陷,策略会过期,硬件也可能出问题。
正因为如此——
Owner 不是 God。
AI 不是 God。
SaaS 不是 God。
硬件同样不是 God。
真正可靠的执行控制,不是把最终权力交给其中任何一个,而是让每一个角色都被另一个边界所约束。
安全不是找到一个绝对可信的中心,而是让任何一个中心都无法单独造成灾难。