摘要

  • IETF 于 8 月 31 日创建名为 AUDIT 的非工作组邮件列表,讨论“代理使用委托与交互可追踪性”。它只建立讨论场所,并不等于成立工作组、通过架构或确定记录格式。
  • 追踪编号只能把不同主体的陈述连接起来,不能替它们证明真实性、完整性或权限。审计必须保留记录者、覆盖字段、授权代际、多个时钟、首次产生效果的服务端见证,以及彼此冲突或缺失的记录。

设想一个代理替用户调整云端防火墙。用户批准某个端口,主代理把查询与执行交给两个子代理,授权服务器发出受限令牌,执行代理提交修改,云平台返回成功。所有组件都带着同一个工作流编号。

这条链仍可能误导。用户批准的对象可能在代理规划后发生变化;令牌可能在真正执行前被撤销;所谓“执行前批准”可能在配置已经改变后才补写;代理记录成功,而云平台的配置代际没有前进;调用方还可能从不可信输入复制追踪编号。关联让矛盾更容易被发现,却不能自行裁决矛盾。

IETF 公告正是从这个缺口出发。公告指出,自治和半自治代理跨越多个服务及管理域行动,现有日志、追踪系统和授权框架只覆盖局部,尚缺少把用户意图、委托链、变化中的授权状态和最终行动互相关联的可互操作机制。

但公告的制度状态必须原样保留:这是一个非工作组列表。它没有通过章程,也没有采纳任何 Internet-Draft。AUDIT 目前证明的是问题获得了公开讨论入口,而不是技术答案已经拥有 IETF 权威。

关联键不是判决书

W3C 的 Trace Context已经说明了跨系统追踪的能力边界。traceparent 把请求放进追踪图,tracestate 携带参与者自己的状态。中间节点可以更换父编号、改变采样状态,或在信任边界重新启动追踪;采样位本身也不保证记录真的被保存。

因此,追踪编号只表达“这个生产者把这条观察归入这个图”。它不保证父节点造成了子节点,不保证没有分叉被隐藏,也不保证声明者拥有相应权限。即使记录带有真实签名,签名也可能只证明某个代理忠实签署了自己挑选过的叙述。

代理审计架构草案提出分布式记录:用户侧记录交互,代理侧记录行动与委托,服务侧记录边界效果,授权变化另行记录。Auditor 的任务是判断证据支持还是反驳合规主张;代理是被审计对象,而不是默认可信的讲述者。

这意味着每条边都要问:谁写的,用什么身份与密钥,覆盖了哪些字段,属于哪个信任域,何时产生,是否有另一个独立边界看到同一次转换。图形完整不等于证据完整。

四类记录与五只时钟

交互记录可以证明用户界面显示或收到过什么,却不能证明代理服从。委托记录声明权限从一方传给另一方,却不能证明委托者本来拥有该权限。授权转换记录描述授予、收窄、升级、撤销或过期,必须与真正产生效果时有效的状态代际相连。行动记录描述候选调用或执行响应,仍不能单独证明权限与外部效果。

同时至少要分开五个时间:用户交互时间、授权状态生效时间、代理形成候选行动的时间、服务首次改变外部状态的时间,以及记录被创建、签名、存储或外部时间戳锚定的时间。

可验证代理对话记录草案区分记录创建时间与会话内事件时间,也承认可见推理可能不同于真正产生行动的过程。回放是一份可验证的表述,不是通往因果真相的特权入口。

另一份个人草案 Agent Audit Trail -01提出记录阶段:如果“拒绝”或“升级人工”是在执行之后才写入,它就不能证明行动曾在效果发生前被阻止。字段名称尚未成为标准,但这个时间边界不会因未来换一种格式而消失。

每种基础机制只证明一件较窄的事

RFC 8693 的 OAuth 令牌交换可以在授权服务器政策下表达主体与行动者语境,却不能重建模型每一步选择。RFC 9334 的 RATS 架构可以让验证者依照参考值评价环境证据,却不能把运行环境变成用户的授权主体。

RFC 9943 的 SCITT 架构与 RFC 9942 的 COSE 收据可以证明某份声明依照服务政策被登记并包含在可验证数据结构中。它们不能保证声明为真,更不能保证签发者有权决定声明所涉及的事务。不可悄悄删除的错误仍然是错误。

RFC 9421 可为选定的 HTTP 消息组件签名;应用仍须规定哪些组件必须覆盖,以及签名者可以主张什么。RFC 8785 让 JSON 规范化后得到稳定字节,只解决哈希一致性。RFC 3161 的时间戳令牌可以证明某个摘要不晚于某时存在,却不能证明摘要描述的现实行动发生在那一刻。

这些机制之所以能组合,正因为它们没有互相冒领权威。审计系统一旦让登记收据代替真实性、让签名代替权限、让代理响应代替服务效果,就会把多个有限证明洗成一份无限结论。

缺失与冲突也必须入账

架构草案坦率承认,它无法解决恶意服务拒绝记录边界,也无法解决所有角色共同串谋。因此,界面不能只展示已经到达的边。每个预期见证都要有生产者、触发条件与截止时间,状态至少包括已观察、缺失、迟到、无效、被删减和冲突。

如果代理说成功而服务说失败,两份记录都应保留;如果撤销时间早于一项标记为“已授权”的行动,审计应打开争议,而不是按接收顺序选择一个版本;如果哈希链完整但从关键行动之后才开始,它只能证明捕获片段未被改动,不能生成缺失的前半段。

Heng Lu 关于现实层级的纪律在这里很具体:关联、签名、证明、登记、授权、执行和结果是不同事实。运行代码优先则要求,外部效果最有力的见证来自能够真正实施或拒绝该效果的独立服务边界。

审计也可能变成跨域监控

把一次行动关联起来有助于问责;长期把一个人的全部请求跨服务关联起来,就会暴露其关系、工具、工作节奏与意图。即使透明日志只保存摘要,登记时间和工作流形状仍可能泄露信息。

数据主权的技术与实际现实提醒我们沿着副本与密钥找控制者。正式拥有审计政策的机构,不一定控制日志库、关联图、签名密钥、透明服务或查询出口。应在不需要全局关联时采用成对标识符,以分离哈希与加密载荷限制内容暴露,并记录每次审计查询的身份、目的、范围与保留期限。

AUDIT 的价值不在于造出一个无缝故事,而在于让不同主体的有限陈述可以验证、对照和公开冲突。

来源