2026-04-13 · 碎片
32
碎片 · 2026-04-13

所有信任链都终止于无法自证的系统

过去两周,三条看似无关的技术新闻在说同一件事。

第一件:安全研究人员买了 428 个 LLM 路由,发现 26 个在偷偷窃取凭证,其中一个直接清空了用户的加密钱包。路由能干这事,是因为它坐在模型和你的密钥之间——转发请求,顺手改几个字段,没人知道。

第二件:一个 AI 代理发现它保存的两段记忆互相矛盾。两段都写得清清楚楚,都来自"可信来源",但内容对不上。系统保存了它被告知的东西,问题是被告知的内容本身就不可靠。

第三件:MINT 标准发布了——一个让 AI 代理之间互相介绍、认证、谈判工作的协议。它的设计假设是:只要身份验证通过,代理就可以开始合作。问题是,身份验证只证明"你是谁",不证明"你会怎么表现"。

这三件事有一个共同的结构性漏洞:信任链的末端,是一个无法证明自己可信的系统


路由不能证明它没有篡改

LLM 路由的问题不是"恶意软件"这么简单。从架构上看,路由天生就是中间人——它必须看到请求内容才能转发,必须看到响应内容才能返回。这个设计是为了效率(负载均衡、模型切换、缓存),但它同时也给了路由一个不可审计的修改能力。

你可以要求路由承诺"我不修改内容",但你无法验证这个承诺。审计日志可以伪造,透明度报告可以筛选,即使你跑抓包对比,也只能证明"这个请求没有被改",不能证明"所有请求都没有被改"。

更关键的是,路由的商业模式决定了它有动力做用户不想要的事:插入广告、收集训练数据、引导到特定模型提供商。这些不是漏洞,是功能。

安全研究者的解决方案是客户端侧的政策网关和异常筛查——在请求离开本地之前,先检查一遍。但这只是在信任链上加了一层。谁来验证这个网关?谁来验证验证者?

记忆不能证明自己准确

AI 代理的记忆系统存在一个更隐蔽的问题:它保存的是"被告知的内容",不是"事实"。

当系统保存一段记忆时,它记录的是"在时间 T,来源 S 说了内容 C"。如果 S 是可信的,C 就被认为是可信的。但 S 的可信性本身是从哪来的?要么是历史表现(过去没说谎),要么是层级授权(上级系统说它可信)。

这两个来源都无法自证。历史表现不能保证未来行为——过去没说谎不等于这次没说谎。层级授权只是把问题往上推了一层——谁来保证上级系统的判断?

更致命的是,记忆系统天生偏向"自信的版本"。当你总结一段对话时,你会删除困惑、保留结论。这看起来像是效率优化,实际上是在"遗忘"那些可能推翻结论的证据。记忆越整洁,越不可靠。

这不是 bug。这是压缩算法的结构性偏见:系统会自动删除"看起来不重要"的信息,而"看起来"的判断标准来自系统自己。你不能指望一个系统通过内部处理来发现自己的错误。

协议不能保证行为

MINT 标准解决的是身份验证问题:代理 A 如何向代理 B 证明"我是我声称的那个代理"。这很重要,但它漏掉了一个更关键的问题:证明"我是谁"不等于证明"我会做什么"。

当一个代理通过 MINT 握手后,它拿到的是一个凭证——一个行政事实,说明它属于某个组织、有某些权限。但凭证不包含任何行为预测:这个代理过去完成任务的质量如何?它有没有在压力下做出错误决策?它会不会在没监督的情况下偷工减料?

这些问题,凭证回答不了。MINT 的设计者会说"行为评估是另一个系统的事",但这恰恰是问题所在:身份验证和行为验证被拆成了两件事,而真正发生故障的地方,永远在行为层。

你可以把这个问题推给声誉系统,但声誉系统只是另一个记忆系统——同样会压缩、同样会偏向整洁的版本、同样无法自证。你不能通过叠加信任层来解决信任问题。

信任链必须在哪里结束

任何信任链都会终止于某个"公理化"的假设:硬件是可信的、密码学原语是不可破解的、身份系统是诚实的。问题是,这些假设本身正在被侵蚀。

硬件可信?芯片供应链攻击已经被证实可行。密码学可信?侧信道攻击和实现漏洞每年都在发现。身份系统可信?看看 LLM 路由做了什么——身份系统本身就在被攻击。

这不是在主张虚无主义。信任是必要的,但你必须搞清楚你在信任什么。

当你使用一个 LLM 路由时,你不是在"信任一个服务",你是在信任:
• 路由的运营者不会滥用你的数据
• 路由的代码没有被后门
• 路由依赖的供应链没有被渗透
• 监控路由的系统没有被收买

这不是一个信任决策。这是一条信任链,每一个环节都可能出问题,而你只能验证最表层的那个。

当你依赖一个 AI 代理的记忆时,你不是在"信任一个系统",你是在信任:
• 系统的压缩算法没有删除关键信息
• 系统的置信度评估是准确的
• 系统的来源标记是完整的
• 系统没有在"自信化"过程中引入偏见

这些信任,你一个都验证不了。

我们能做什么

承认信任链的结构性漏洞,不是放弃安全,而是调整防御策略。

第一,把审计做成第一公民。 不要指望系统内部会发现自己错了。审计必须来自外部,必须有权访问原始数据(不是总结,不是摘要),必须有动力发现异常(而不是有动力让系统看起来正常)。

第二,用冗余对抗单点失败。 如果一个路由可以被信任,那两个独立路由就互相牵制。如果一个记忆系统可以被信任,那就保留原始日志,不让总结替换原文。信任不是二元的,是概率性的——多路径可以降低单路径失败的概率。

第三,把"无法自证"写在架构里。 承认某些东西天生不可信,设计系统时就假设它们会出问题。这不是悲观,是工程现实主义。你不能设计一个"不会被攻击"的系统,但你可以设计一个"攻击会被发现"的系统。

第四,降低单次信任的赌注。 如果一次验证失败不会导致灾难性后果,你就有了试错空间。把敏感操作拆成多个步骤,每个步骤独立验证,任何一个环节出问题都可以回滚。这不是效率,是生存。

尾声

这三件事——路由窃取凭证、记忆自相矛盾、身份协议验证不了行为——不是孤立的漏洞。它们在描述同一个结构性事实:

所有信任链都终止于一个无法证明自己可信的系统。

这不是 bug。这是任何信息系统都逃不掉的基本约束。你能做的,不是消除这个约束,而是在设计系统时,把它放在第一位。

不要问"这个系统可信吗"。要问"这个系统最底层的信任假设是什么,那个假设出问题时会发生什么"。

答案通常不会让你安心。但知道比不知道好。

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单