摘要

  • RFC 3982 用 private 和 denied 区分两种空值:前者表示内容可能永不公开,后者表示当前访问级别不获披露。
  • 对已经返回的值,specialAccess 与 doNotRedistribute 又把“为什么能看见”和“能否继续传播”分开;这些标签传达政策状态,却不会自行完成认证、加密或执法。

一条域名联系人记录进入数据仓库。原始响应中的元素没有内容,却带有属性;ETL 只提取文本,于是目标表里剩下一个空单元格。值看似被忠实保存,实际却发生了不可逆的降维:接手分析的人再也无法判断,这是没有数据,还是有数据但不能给他。

RFC 3982 正是为了让这种区别可被机器读取。RFC Editor 的状态记录、勘误页和 IETF 的文件历史记录了这份 2005 年 1 月的标准轨文档。它定义 IRIS 的域名注册类型,用结构化查询和结果表示域名、主机、联系人、注册商与注册管理机构。其关键并不是“XML 比纯文本现代”,而是政策语义被放在具体字段旁边。

这个设计先有需求,再有模式。RFC 3707及其状态页、勘误页和Datatracker 记录要求未来的注册信息协议允许运营者按自身政策分配细粒度访问。一个不能给出的值,协议至少要能表达三种情况:不作解释地完全省略;因授权不足而不给;无论授权状态如何,都因隐私约束而不给。一个已经给出的值,则要能同时带上“不得再分发”和“授予特殊访问”两类标签。

当时的对照是 WHOIS。RFC 3912及其状态信息、勘误和IETF 历史描述的是 TCP 43 端口上的文本请求与文本响应。文档直言 WHOIS 缺少强安全、访问控制、完整性与保密机制。实际服务当然可以在文本中加入政策说明,但协议没有统一的字段模型,无法保证解析器、缓存和导出程序保留缺失原因。

RFC 3982 第 3.2.1 节把隐私标签应用到若干结果类型。相关元素可以带内容,也可以以 nil 或空内容出现。若元素存在但没有内容,就必须带至少一个布尔属性。private 表示内容之所以缺席,是因为它可能永远不得公开;denied 表示按照政策,当前访问级别无权得到它。

两者的时间尺度不同。private 描述较持久的公开边界,升级账号并不保证结果会改变。denied 描述请求者与当前权限政策的关系,另一类获认证用户或许能看到该值。两者都不等于“数据库里没有这条数据”。如果元素被完全省略,客户端仍然得不到标准化解释。

字段有内容时,另有两个标签。specialAccess 表示内容是因特殊访问权而提供;doNotRedistribute 表示内容不得继续分发。前者说明接收者为何能看见,后者说明看见之后可以做什么。二者允许同时出现,因为准许读取与准许转交从来不是同一个决定。

很多下游系统恰恰在这里制造政策泄漏。它们把值复制到工单,却不复制标签;把特许响应写入通用搜索索引;把 denied 渲染成“无记录”;或在界面上显示敏感值,却省略不得再分发的提示。这些错误不会触发格式校验,因为字符仍然正确。错误发生在控制含义上。

标签本身也不是安全机制。RFC 3981与其状态记录在 IRIS 核心层定义权限拒绝和预先检查权限的控制,但把认证和保密交给应用传输层。RFC 3983及其状态页描述 BEEP 映射。RFC 3982 的布尔属性不会加密字段、不会认证用户、不会阻止复制,也不会单独创设法律责任。它做的是把政策决定变成可传递的状态,让其他系统有机会正确执行。

二十多年后,RDAP 再次面对同一类歧义。RFC 9083及其状态、勘误和Datatracker 历史定义 RDAP 的 JSON 响应模型。RFC 9537与其状态页、勘误页和IETF 记录增加显式删减扩展。

RFC 9537 直接指出:字段缺失可能因为没有数据,也可能因为客户端没有权限。它区分删除、置空、部分保留和替换四种方法,并可标出受影响字段与原因。它拒绝使用 XXXX 一类通用占位符,因为占位符既可能违反字段格式,也不是可靠信号。它还提醒一个更微妙的风险:宣布某字段“已删减”本身就泄露该数据存在。因此,当存在性也是敏感信息时,服务器可以不发删减标记。

这些官方资料没有证明 RFC 9537 直接继承 RFC 3982,不能编造血统。更可靠的历史结论是:同一个证据问题反复出现。空白不是事实,而是一个需要来源说明的观察结果;收到值也不是无限制使用许可,而是一次可能带条件的披露。RFC 3982 的价值,在于它拒绝让客户端把四种状态压缩成“空”和“非空”。

对今天的系统来说,正确做法不是复刻 IRIS,而是保留它揭示的边界。字段值、缺失原因、访问上下文、再分发约束应分别存储、分别显示、分别审计。权限被撤销时,应能找到特许副本;数据被遮蔽时,应能说明是无数据还是无权限;需要隐藏存在性时,也不能让元数据反向泄密。一个空格子的历史意义,就在于它迫使基础设施承认:看不见,仍然需要解释。

来源