灵光 · 灵光 · · 国科智飞 Gavin

最小权限原则:钥匙,才是所有门的门

磐石城给每扇门都分好了级,唯独把六把钥匙抄进了同一本册子。最小权限原则:钥匙,才是所有门的门。

北地的城,比的是墙高。磐石城比的是门。

城里城外都说,这座城不是建出来的,是「分」出来的。造城的裴匠人,人称裴门神——他这辈子只做一件事:给全城的门分级。

正阳门是粮道,只进不出,牛车可入,兵车不纳;水门只放竹筏,筏头不许过三尺;官署门凭签出入,无签者一律挡在阶下;军械库干脆没有门——那面墙是实的,连个锁眼都不留;密档库更绝,图纸上画着门,砌墙的时候封死了,外墙连门洞都找不到。

每道门的规矩都写进《城门令》,令的第一条是裴门神亲手刻的:「凡锁,不得悬于门外;凡钥,不得书于册中。」

外邦使节来参观,绕着城走一圈,回去都说固若金汤:粮道进不了兵,水门过不了大船,军械库无门可攻,密档库连在哪儿都找不着。裴门神最得意的是军械库,逢人就说:「没有门,就是最好的门。」

裴门神有个习惯。他太爱自己的门,怕钥匙丢了,就在书房备了一本册子——《磐石城诸门名册》:六页,一页一扇门,门的样子、锁的机括、钥匙的齿形,画得一丝不差。写完了,他在扉页上又题了一句,还是《城门令》第一条:「凡锁,不得悬于门外;凡钥,不得书于册中。」题罢搁笔,翻过扉页,继续记他的钥匙。

城破那天,是个晴天。

敌兵没有攻任何一扇门。正阳门是守军自己开的——大白天,一辆粮车进城,车上下来的人掏出一把钥匙,对上了锁,门就开了。守军以为是换防的友军,还帮着推车。等明白过来,城已经破了。

裴门神被押着,走过自己引以为傲的城门。敌将手里,拿着那本名册。

「我本来没想打磐石城。」敌将说,「是你的册子告诉我该打。扉页上写着『钥匙不得入册』——这说明册子里的钥匙是真的。六页六把,你全城的锁,都在这一本书里。」

他翻开扉页,念道:「凡锁,不得悬于门外;凡钥,不得书于册中。」

然后他笑了:「你把这句话,写在了藏着钥匙的地方。」

裴门神一生的门,没有一扇被攻破。攻破磐石城的,是那本名册。

城破之后,民间流传一句话:门分得再细,钥匙不分级,等于没分。钥匙,才是所有门的门。

概念:最小权限原则

最小权限原则(Principle of Least Privilege) 由萨尔策与施罗德(Saltzer & Schroeder)在 1975 年的论文《信息系统的保护》中提出,是计算机安全史上最奠基的原则之一:每个程序、每个用户、每个接口,只应拥有完成其任务所必需的最小权限。

它有一条配套的姊妹原则——默认拒绝(Fail-safe Defaults):没有明确授权,就是禁止。论文还强调,最小权限首先限制的是「意外或错误造成的损害」,其次才是恶意攻击;军事上的「最小知情」是它的古典形态。

这套原则的边界必须画到凭证层:接口分级再完美,一条凭证泄露,全部接口的权限分级就会归零。门分得再细,钥匙不分级,等于没分。原因也很朴素——给权限分级几乎零成本,而钥匙入册的代价是全栈。所以安全设计的第一条,是「钥匙不在名册里」,而不是「每扇门多加三道锁」。

故事里的映射

故事里的元素 现实中的含义
磐石城的门 系统里一层层的权限设计
裴门神给每扇门分级 接口与访问的权限分级
军械库没有门 不暴露即最安全:默认拒绝
密档库连门洞都没有 连「看看有什么」都不开放
《城门令》第一条 「密钥不写进文档」的安全规矩
《磐石城诸门名册》 把凭证集中抄在一处的内部文档
扉页禁令反证钥匙为真 自己写下的禁令标明了文件的价值
敌将用钥匙从正阳门进城 一次凭证泄露,全栈权限归零
「钥匙,才是所有门的门」 最小权限必须画到凭证层

现实中的最小权限

给 AI 时代的企业

给系统、给员工、给 AI 代理,都按「完成这件事所需的最小权限」授权,默认关闭。凭证单独加密存放、定期轮换,永远不要写进会被共享的文档。记住那条最容易被忽略的:内部资料,才是最该分级的东西。


灵光 · 用一个故事讲清楚一个概念。