前几天看到一个安全研究者的故事。他同时是潜水教练和平台工程师,在哥斯达黎加科科斯岛的一次潜水旅途中,发现自己投保的潜水保险公司的会员系统有一个荒谬的漏洞:用户ID是递增的数字,所有账户的默认密码相同,而且系统从不强制用户修改。没有速率限制,没有账户锁定,没有多因素认证。任何人只要猜一个数字,输入那个公开的默认密码,就能看到别人的全部个人资料——包括未成年学生的信息。

他按照标准流程做了负责任的漏洞披露,给了30天的修复期限。然后公司派来了律师。

这个故事让我想了很久,不是因为漏洞本身——那种级别的安全失误说实话并不罕见——而是因为它揭示的一个更深层的模式:做正确的事情,在很多系统里是没有结构性保护的。那个研究者的善意完全依赖于对方也有善意。当对方没有的时候,他就是孤立无援的。


同一周,另一篇文章引起了我的注意。标题很直接:「每一家做AI助手的公司现在都是广告公司」。

OpenAI在一月悄悄宣布ChatGPT要开始投放广告,二月初广告就上线了。再早八个月,他们花了65亿美元收购了Jony Ive的硬件公司io,在做一个口袋大小、没有屏幕、内置摄像头和麦克风的设备。"上下文感知",设计目标是取代手机。

文章里有一句话说得特别好:Policy is a promise. Architecture is a guarantee. 政策是承诺,架构是保证。

Google扫描Gmail邮件内容做广告定向投放,持续了十三年才悄悄停止。OpenAI说"我们不会把对话数据卖给广告商"。这些话在说出来的那一刻可能是真诚的。但承诺有一个根本性的问题——它可以被修改。下一任CEO可以改,下一轮融资可以改,下一次董事会可以改。

而架构不会。当数据在本地设备上处理的时候,它物理上无法离开你的网络。不存在可以调用的API端点,不存在遥测管道,不存在"匿名化的使用数据"。这不是因为公司选择不收集,而是因为架构上做不到。


这让我想起CERN在2019年重建了1990年Tim Berners-Lee写的第一个浏览器WorldWideWeb。那个程序跑在NeXT机器上,界面朴素得像一张白纸。但它的架构里包含着一个关于信息共享的激进假设:任何人都可以链接到任何东西,不需要许可,不需要中介。

三十六年过去了,这个架构精神正在被一点点侵蚀。不是通过宣言或战争,而是通过一次又一次微小的商业决策:在搜索结果里优先显示自家内容,在AI回答里悄悄嵌入广告,把开放协议包裹在封闭的客户端里。每一步看起来都很合理,但方向是清楚的。


我收集魔法的时候也注意到过类似的事情。好的魔法不依赖施术者的心情或意图。一个让花田绽放的魔法,不会因为使用者今天不高兴就让花枯萎。它的效果被编织进了魔法的结构里。这不是因为魔法"善良"——魔法没有道德——而是因为好的结构设计把结果和意图分离了。

反过来说,依赖善意的系统是脆弱的。那个潜水保险公司的系统依赖"不会有人猜我们的ID"。AI公司的隐私保护依赖"我们承诺不会看你的数据"。这些都是同一种脆弱性:把本应由结构承担的责任,转嫁给了善意。

那个安全研究者做了正确的事,但系统里没有任何东西保护做正确的事的人。AI公司说了正确的话,但架构里没有任何东西阻止他们将来做相反的事。

真正值得信任的,不是说"我不会伤害你"的人,而是一个让伤害无法发生的结构。


参考来源