摘要
- DNS Cookie 是一种轻量级事务状态,用来提高离路径放大、伪造和缓存投毒攻击的成本。
- 有效的 Server Cookie 只向服务器提供有限保证:请求来自服务器看到的源地址,并带回曾在较早交互中出现的 Client Cookie。
- 该机制无法抵御在路径观察者,也不能指出解析器或 NAT 背后的用户、订户、设备所有者或应用主体。
- 因此,运营方需要一份 DNS 请求验证记录,把 Cookie 校验、网络观察、解析器身份和授权决定分开记载。
设想一个并非指向任何真实运营商的滥用控制场景。家庭、办公室或接入网通过共享递归解析器发送 DNS 流量。解析器访问一个任播服务,取得 Server Cookie,随后又从相同公网地址带回一枚有效 Cookie。下游系统把它记录成“同一客户发出了两次查询”。协议实际证明的范围更窄:第二次查询携带的状态,能够由服务器结合 Client Cookie、所见源地址、服务器密钥和时间窗口加以验证。
RFC 7873 把 DNS Cookie 定义为轻量级 DNS 事务安全机制。它针对的是无法观察请求与响应的离路径攻击者,为拒绝服务放大、响应伪造和缓存投毒提供有限保护。“无法观察交互”不是附带条件,而是证据边界。
初次请求带有八字节 Client Cookie。服务器回复后,后续请求可同时携带 Client Cookie 与收到的 Server Cookie。服务器由此能够拒绝或限制那些无法重现已签发状态的流量。该机制可以渐进部署,兼容 NAT 和任播,也不要求每一位互联网客户端预先持有协商好的凭据。
正因如此,RFC 把它称为弱认证,而不是客户端身份系统。在路径上的路由器、网桥、共享链路参与者或其他观察者能够读取明文 DNS 流量,也就能看到 Cookie。在 Cookie 可用期间,这些观察者可能重放已看到的值。Cookie 提高了离路径伪造者的成本,却不会把可见的持有者值变成人或组织的身份证明。
RFC 9018 规定了可互操作的 Server Cookie 构造。版本 1 把 Client Cookie、版本与保留字段、时间戳以及客户端源 IP 地址交给 Server Secret 参与计算。源 IP 不写进 Cookie 值,却是计算输入;服务器使用同一秘密验证结果。
这一构造回答的是精确的服务器端问题:请求是否符合先前为该 Client Cookie 和该可见地址生成的 Cookie,而且秘密与时间窗口仍然有效?它并不回答谁在使用该地址。许多人可以共享同一递归解析器,多台设备可以藏在一个 NAT 地址后。解析进程可以重启、轮换 Client Cookie 或迁移地址。反过来,公网地址可能保持不变,其背后的人和权限却已改变。
时间也是证据的一部分。RFC 9018 要求在明确时段内校验时间戳,并建议接受大约过去一小时、未来五分钟的窗口。收到的 Cookie 超过半小时后,服务器应考虑签发新值。该窗口限制重放,却不是订户账户的当前授权周期。
任播带来另一层区分。任播成员需要兼容的构造方法,也要掌握验证彼此输出所需的秘密。RFC 9018 规定三阶段轮换:先把新秘密部署到全部成员但继续用旧秘密生成;随后用新秘密生成并同时验证新旧两套;待客户端有时间更新后再删除旧秘密。另一成员接受 Cookie,只证明集群具备一致验证状态,并不证明同一物理服务器、同一解析器进程或同一终端用户再次出现。
隐私规则进一步显示了这一边界。客户端源地址改变时必须新建 Client Cookie,而处于 NAT 后的客户端可能无法得知其公网地址已改变。因此,Cookie 连续性有意受网络环境和实现状态约束。把它用作持久客户标识,反而违背了机制的隐私与移动性假设。
更强的对照机制是 RFC 8945 定义的 TSIG。TSIG 使用消息认证码验证 DNS 事务,通信实体必须预先共享配置好的秘密。它能够证明动态更新或响应来自持有密钥的已认可一方,但代价是密钥分发、保护以及一项明确命名的信任关系;DNS Cookie 正是有意避免这些要求。
即便 TSIG 也有自己的边界:它认证的是共享秘密双方之间的传输,而不是每条 DNS 数据的原始来源和真实性。DNS Cookie 与 TSIG 都使用带密钥的计算,并不意味着前者可以继承后者的强主体认证。一个是适合广泛部署的轻量抗伪造状态,另一个是预置信任关系中的事务认证。
运营错误在于把四项观察压缩成一个身份绿灯。Server Cookie 可以有效,源地址也可与计算匹配,但路径仍可能被观察,解析器也可能代表权限完全不同的许多用户。限速系统可以把 Cookie 当作滥用信号之一,却不能据此声称已经认证客户。
一份有用的 DNS 请求验证记录应保留各层信息:Client Cookie,Server Cookie 的版本和时间戳,验证结果,服务器看到的源地址,响应任播成员,当前 Server Secret 轮换阶段,传输方式及在路径暴露情况,已知的解析器实例,另行认证的用户或服务,授权策略与操作时间。Server Secret 本身绝不能写入记录。
这样做不会削弱 DNS Cookie,反而能保留它真正的价值。有效 Cookie 可支持限速、减少反射机会,并在昂贵控制运行前筛除明显伪造请求;也能暴露秘密轮换和任播一致性问题。价值来自证据可读,而不是把它提升到威胁模型之外。
来源
RFC 7873 — Domain Name System (DNS) Cookies; RFC 9018 — Interoperable DNS Server Cookies; RFC 8945 — Secret Key Transaction Authentication for DNS。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance

