摘要
- Butler Lampson 与合作者从机器真正能够观察到的对象出发:线路、连接、进程或密码学通道首先是一个可发言的主体;若要把它归责于人、设备、角色或群体,必须给出一条“代表发言”的推理链。
- 认证只回答请求应由谁负责,并不自动产生权限。操作能否执行,仍取决于受保护对象的规则、委托是否有效、命名依据是否可信,以及整条证明在判断时是否仍然成立。
机器先听见的是通道
1992 年的论文 Authentication in Distributed Systems: Theory and Practice 把认证问题放在一道“守卫”面前。请求已经抵达,守卫要替对象执行访问规则。但到达本身只证明某个输入通道说过一句话:可能是终端线、网络连接、管道、内核调用,也可能是成功解密后形成的安全通道。机器没有从这次电气或密码学事件中直接看见用户的脸。
这个起点改变了问题的顺序。日常语言会问“这是谁”,而系统必须先问“我刚才究竟听到了什么,它凭什么能替另一个主体说话”。如果设计文档直接从数据包跳到自然人姓名,中间那段关系就不会消失,只会被埋进证书颁发、登录会话、组成员表和运维习惯之中。
主体不一定是人
论文中的 principal 并不是“用户”的正式叫法,而是能够作出陈述、接收责任或出现在访问规则中的主体。它可以是个人、机器、服务、角色、组、密钥和通道。这个扩展很重要,因为分布式系统中的一次请求经常同时带着多层身份:连接证明某把密钥,密钥关联某台机器,机器上的进程以某个角色运行,角色又受某个组织委托。
把这些对象都当成主体,不表示它们彼此等价。恰好相反,它迫使设计者写清楚每一步。例如,“值班角色发出了请求”与“今天的某位员工使用了值班角色”是两条不同的陈述;前者可能足以恢复服务,后者才足以追究个人操作。系统需要哪一种责任粒度,应由具体对象和操作决定,而不能靠一个万能用户名替代。
“代表发言”填上中间的缺口
Lampson 等人用 “speaks for” 描述责任可以沿什么关系传递。若主体 B 可以代表主体 A 发言,守卫在满足相应前提时,能够把 B 的陈述视为 A 的陈述。它不是说 B 与 A 是同一个人,也不是说 B 获得了 A 的全部权利;它是一条有方向、有依据、可组合的责任推理。
于是,一次访问不再是“凭证匹配则通过”的黑箱。通道说了什么,通道代表哪把密钥,密钥由哪套命名权威绑定到机器或账户,当前进程又因何代表某个角色,都可以成为显式前提。守卫沿这些前提推导出一个足以用于本次决策的主体。链条越长,系统越应保存它为何成立,而不是只保存最后那个好看的名字。
名称借用签发者的可信度
一个名称不会凭字符串本身获得真实性。“Butler Lampson”、账户名或服务名究竟指向谁,取决于谁有权作出绑定,以及接收方是否认可那项权威。论文把名称、密钥和主体的关系纳入同一套推理,避免把目录查询当成无需解释的事实来源。
这使命名系统成为安全边界的一部分。证书机构、企业目录、设备登记、组管理员和本地配置都可能定义链条的一环。若签发者的权限过宽、命名空间发生迁移、别名被重新分配,旧凭证仍能通过密码学验证,却可能已经不再表达读者以为的那个人或组织。验证签名只是证明某方签过名;判断那一签名是否足以建立当前名称,仍是另一项制度性判断。
委托创造的是复合行动者
委托也不只是复制一份权限。在论文描述的模型中,B for A 这样的复合主体保留了“B 代表 A 行动”的结构。它既需要 A 授权委托,也需要 B 接受承担这一角色。请求因此不必假装由 A 亲自发出,同时还能让对象把规则写给 A、B,或写给这一特定组合。
这个细节对自动化尤其关键。批处理服务、代理程序和应急运维账户常替别的主体做事。若系统只把最终请求压成原委托人的身份,代理的行为边界会消失;若只记录代理,又看不出权限从何而来。复合主体把授权来源与实际执行者同时留在证据中,使“谁允许”和“谁动手”不必竞争同一个字段。
权限仍由对象决定
认证链推导出责任主体后,授权才开始。论文中的守卫要结合请求的操作、受保护对象及对象的访问控制规则作判断。同一个主体可以读取某个对象却不能修改它,可以在工作时间调用服务却不能改变服务策略。由此可见,“已认证”从来不等于“已获准”。
访问控制表也不是一个孤立的姓名清单。条目可能引用组、角色或委托主体,而这些引用又依赖当前的成员关系和命名依据。授权结果若想可复核,必须知道当时使用了哪个规则版本、哪个对象、哪项操作,以及认证链的哪些前提。只记录“允许”或“拒绝”,无法区分规则错误、身份链错误与证据过期。
时间会改变一条正确的链
密钥轮换、组成员变化、角色交接和撤销都会让昨天成立的陈述今天失效。缓存可以降低每次重建责任链的成本,却也会延长旧事实的寿命。凭证有效期、刷新策略与撤销传播因此不是外围运维细节,而是在定义系统愿意让多旧的授权事实继续产生效果。
Lampson 后来的实用安全原则把这种现实约束说得更直白:完美安全并不存在,设计必须面对成本、复杂度和可恢复性。对责任链而言,问题不是能否永远消除陈旧状态,而是能否限制它的影响范围、发现它、解释它,并在错误绑定或委托暴露后迅速改变判断依据。
审计要保存推理,而不只是答案
真正有用的审计记录应能重建守卫为什么接受一项请求。它至少要区分收到请求的通道、推导出的主体、使用的委托和组关系、访问的对象与操作、适用规则,以及这些证据的有效时间。这样的记录不是把形式逻辑逐字塞进日志,而是拒绝让“系统当时认为是他”成为无法追问的终点。
“speaks for”模型的长久价值正在这里。它没有承诺一套全球统一的身份基础设施,也没有消除信任。相反,它要求每次跨越——从通道到密钥、从密钥到名称、从服务到角色——都说明自己借用了谁的权威。这使失败不再只是认证服务的一盏红灯,而可以被定位为某一项绑定、委托、成员关系或对象规则的破裂。
来源
- https://www.microsoft.com/en-us/research/people/blampson/
- https://www.microsoft.com/en-us/research/publication/a-global-authentication-service-without-global-trust/
- https://www.microsoft.com/en-us/research/publication/authentication-in-distributed-systems-theory-and-practice/
- https://www.microsoft.com/en-us/research/publication/practical-principles-for-computer-security/
- https://www.microsoft.com/en-us/research/wp-content/uploads/2007/01/Lampson-Security-for-Marktoberdorf-slides-8-5.pdf
- https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/acrobat-11.pdf
- https://www.microsoft.com/en-us/research/wp-content/uploads/2019/09/BWL-StoryLabs-2018-04-709-square.jpg
- https://computerhistory.org/profile/butler-lampson/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
