摘要

  • RFC 9523 把 Khronos 定义为 NTP 客户端的后台监督机制:它从大型集合随机抽取少量服务器、剔除偏移量两端的样本,并在达到阈值时接管本地时钟。
  • 其保证以受损样本比例为条件。一次通过的估算,不能证明不同 IP 背后具有独立的管理、网络、实现和上游参考时钟。
  • “可信时间”应连接七类收据:集合构成、独立性、抽样、原始样本、估算、时钟动作和外部参考。

十五台服务器都按时回应,偏移量紧密聚集。系统去掉最低三分之一和最高三分之一,剩余范围满足条件,Khronos 的估算也没有越过干预阈值。监控界面因此显示绿色。

但如果其中九个地址最终继承同一个错误的上游参考,这个绿色意味着什么?这不是已经发生的事故,也不是对 NTP Pool Project 或任何运营者的指控,而是一项控制假设。它揭示的不是算法算错了,而是人们可能把“算法在这组输入上通过”误读为“这组输入已经证明独立且正确”。

RFC 9523 提供了一种重要防御。它让攻击者在只能控制有限样本时更难推动客户端时钟。它没有把服务器发现机制变成时间源治理证书。

m、n、H 与 K 各自证明什么

Khronos 不改变 NTPv4 的线协议。正常情况下,它作为后台监督者保持被动,让普通 NTP 客户端继续提供精度,同时独立计算 Khronos 偏移量。当该偏移量超过预设阈值 H 时,它把分歧视为攻击迹象,并接管本地时钟的更新。

每个 Khronos 轮询周期从 n 个候选服务器中均匀随机选择 m 个。RFC 的代表性参数是 n=500、m=15。随机过程必须安全,因为可预测的选择会让攻击者提前集中控制下一批目标。

未响应者先被过滤。剩余数量不足时重新抽样;数量足够时,最低三分之一和最高三分之一的偏移量被剔除。中间样本既要满足范围限制,也要与两次轮询之间累计的时钟变化相容。测试失败会再次抽样,连续 K 次失败后进入 panic 模式。

这些步骤都有清晰的证据边界。它们可以证明候选集合、实际选择、原始响应、剔除项、保留项、测试结果和最终动作。它们不能从偏移量本身推断组织关系、软件供应链或上游参考的共同依赖。

“超过二十年”不能脱离条件单独传播

RFC 9523 的安全结论是:当受损时间样本比例低于三分之二时,Khronos 能阻止时钟被推动。文档还给出一个示例——500 台服务器中七分之一受攻击者控制,每次查询 15 台,目标偏移超过 100 毫秒时,成功所需的期望时间超过二十年。

这是带参数和模型的期望值,不是对所有部署的服务保证。引用它时必须同时保留 n、m、受损比例、轮询周期和攻击目标。更关键的是,必须解释如何判断“七分之一”以及何谓相互独立的服务器。

500 个地址不等于 500 个控制主体。不同主体可能共享同一托管设施或网络路径;不同网络可能运行同一实现;地理分布广泛的服务器仍可能追随同一上游时间参考。统计过滤解决的是有限数量异常值能否拖动估算,而来源证明解决的是哪些成员会一起失效。两者都重要,却不能相互替代。

校准决定了抽样的世界

Khronos 首次运行并定期校准本地集合。RFC 描述了对 NTP pool 进行多次 DNS 查询,将返回的地址合并为大型候选集;它建议使用通用池,而不是只查询客户端所在州或地区的池,也允许人工加入服务器或使用其他时间服务。

这使部署变得现实,同时把 DNS 名称、解析路径、回答、去重规则、保留期限和人工加入都纳入安全边界。安全随机数可以保护“从候选集选择谁”,却无法给候选集创造原本不存在的独立性。

因此,集合构成收据应记录查询的名称、时间、解析路径、全部返回地址、去重与过期规则及人工变更。独立性收据则尽可能记录每个成员的管理者、ASN 与路径、实现家族、托管环境和上游时间参考。无法确认时应写“未知”;不能因为 IP 不同就默认独立。

NTP Pool Project 组织志愿服务器,并规定稳定地址和监测要求。它解决的是大规模发现和服务供给。成员资格并不等于针对某个客户端用途的独立性审计;项目本身也没有承诺这种证明。

认证保证说话者,不保证他说的是正确时间

NTS 能提高通信认证能力并限制中间人攻击。RFC 9523 同时指出,当服务器本身被攻陷时,NTS 帮助有限。即使没有恶意,经过认证的服务器也可能忠实报告一个错误的上游时间。

所以通道收据与参考收据必须分开。前者记录端点、认证、请求与响应;后者记录 stratum、参考标识、已知来源关系以及与另一治理链条的对比。确认是谁回答,不等于确认其时钟正确。

七类收据把绿色状态限制在事实范围内

集合构成收据描述可抽样人口;独立性收据描述共同控制与共同故障。抽样收据保存安全随机实现、种子来源、n、m 和实际选择。样本收据保存每个请求、响应、延迟、偏移量、stratum、leap 状态与未响应。

估算收据显示上下两端各剔除哪些成员、中间集合、范围与轮询间测试、重抽次数和最终偏移量。时钟动作收据保存 H、K、被动/主动/panic 状态、实际调整以及 holdover 或回滚决定。外部参考收据则用另一治理链条的参考进行比较,并明确它自身的不确定性。

最后一类收据不是绝对真理。它的作用是避免同一时间生态既产生结论,又独自证明结论。Heng Lu 对最低规范、运行代码和观察现实的区分在这里十分具体:RFC 规定可移植机制,实施者写入随机与过滤,运营者配置集合与阈值,业务系统承担时间结果。问责来自对这些层的连接,而不是把它们压成一个绿色图标。

证据没有告诉我们的事

封闭来源中没有 Khronos 的采用普查、厂商支持矩阵、具名事故或全球失败率。开头的共同参考情景只是说明控制边界。超过 H 表明出现分歧,但攻击、配置错误、路径变化与参考漂移都可能解释它。通过过滤也不等于证明 UTC;它只证明在记录的参数与样本下,Khronos 的条件成立。

来源