针对网络代理,Cloudflare 提出的“签名代理”方案被批评为一种由单一公司控制的白名单机制,它将开放的互联网变成了受限制的“边境检查站”,违背了互联网的开放精神。真正适用于代理时代的解决方案应是开放、可验证且去中心化的协议,而非少数公司控制的许可制度。这需要基于公钥加密、可验证的委托链和任务范围的授权,以确保网络的持续开放与创新。
Cloudflare 的方案:一个披着羊皮的狼
Cloudflare 的“签名代理”方案看似为了安全,实则是一个为开放网络建立的 白名单。它要求开发者申请许可,但这根本不是互联网的运作方式。
是的,代理的身份识别是个真问题。但 Cloudflare 的解决方案就像一个边境检查站。要么进入它的名单,要么被当作非法入侵者。这是一种供应商审批,而不是一个互联网协议。
一个由 单一公司 运营的白名单,本质上是将开放网络变成了需要通行证才能进入的封闭系统。这与互联网因无人拥有而繁荣的核心精神背道而驰。
历史的教训:开放标准胜过封闭平台
我们以前见过类似的剧情。开放标准最终战胜了封闭的插件。
- 开放的胜利: HTML5 和开放网络平台取代了像 Adobe Flash 和微软 Silverlight 这样的专有技术。
- 失败的尝试: 90年代,微软试图通过“拥抱并扩展”来控制网络,但最终失败了。正是因为没有单一公司能够控制网络,任何人才可以自由发布和创新。
规律很清晰:当公共领域定义了接口时,创新就会不断涌现;当供应商开始分发许可时,创新就会停滞。
代理时代:认证与授权的新挑战
代理(Agents)将是网络的下一批主要用户,它们会自动执行信息检索、工作流、购物和合同谈判等任务。人类与代理行为之间的界限将变得模糊。
这就引出了两个核心问题:
- 认证 (Authentication): 谁在行动?
- 授权 (Authorization): 它被允许做什么?
这两个问题截然不同,但 Cloudflare 试图用一个“机器人护照”来同时解决。这是行不通的。一个可以被轻易传递的单一签名毫无意义。我们需要的是一个能够同时证明 委托链条 和 每次请求真实性 的方法。
在互联网上,没人知道你是一条狗。如果一个身份凭证可以被任意传递,那么它就无法证明任何事情。
一个开放、去中心化的解决方案
一个真正有效的系统必须具备以下特点:
- 可验证: 你可以独立地核实声明的真实性。
- 可组合: 它可以跨越多个委托链条工作。
- 去中心化: 没有单一的守门人来决定谁是“有效”的。
公钥加密 已经为我们提供了一个模型。公司可以通过 DNS 记录来证明所有权,同样地,它们也可以用这种方式发布公钥。这样一来,服务提供商只需检查 DNS 就可以验证第三方,而无需任何人填写表格或向中央机构注册。
授权:凭证应跟随任务,而非代理
过去的软件通常范围狭窄(如一个只读的报告生成脚本),但未来的代理是 通用 的。同一个代理可能既要订机票,又要支付晚餐,还要汇总银行对账单。
赋予代理一个拥有所有权限的“万能钥匙”虽然方便,但极其危险。我们必须抵制这种模式。
正确的做法是,授权必须是针对具体任务的,而不是针对代理本身。
- 例如: 当我让代理“支付晚餐”时,它获得的授权令牌应该只能用于支付。
- 而当 我让它“显示近三个月的开销”时,它不应该有权限转移资金。
幸运的是,现代加密技术(如 macaroons 或 biscuits)和策略引擎(如 OPA)已经可以实现这种精细、短暂且可委托的授权。
协议,而非守门人
这个挑战比任何一家公司都大。网络的未来不能取决于谁掌握了钥匙。我们需要的是 协议,而不是守门人。认证、授权和商业化模式必须保持开放、可互操作和标准化。
如果我们让少数几家公司来决定哪些代理是“合法的”,那么代理网络将分裂成一个个封闭的“围墙花园”。未来不应是谁来守门,而应是让每个人都能创造、分享和创新的协议。