当前 CT 日志读取 API 的设计给日志操作员满足正常运行时间要求的能力带来了压力。API 端点是动态的,如果没有能够识别 CT API 的定制缓存规则,则很难缓存。例如,get-entries端点允许客户端从日志中请求任意范围的条目,而get-proof-by-hash端点则要求服务器为客户端请求的任何证书构建包含证明。为了处理这些请求,CT 日志服务器需要由 5-10TB 大小的数据库支持,以便每天处理数千万个请求。这增加了操作员的复杂性和成本,更不用说处理这些请求的高昂带宽成本了。
不幸的是,MMD 违规并不少见。Cloudflare 自己的 Nimbus 日志过去曾经历过长时间的 亚美尼亚电报号码数据 中断,最近一次是在2023 年 11 月,原因是运行日志的数据中心完全断电。在正常的日志操作期间,如果日志接收条目的速度快于其合并条目的速度,积压日志可能会增长到超过 MMD。日志操作员可以通过限制速率或暂时禁用写入 API 来解决这个问题,但这反过来可能会导致违反正常运行时间要求。
日志运营的高门槛限制了运营CT日志的机构,目前只有Cloudflare和其他五家公司!丢失一两条日志就足以危及CT生态系统的稳定性。显然,我们需要做出改变。
2024年5月,Let's Encrypt宣布推出 Sunlight,这是专为现代 WebPKI 设计的下一代 CT 日志实现,融合了十年运行 CT 及类似透明系统的经验教训。新的 CT 日志设计称为静态 CT API,部分基于Go 校验和数据库,并将日志数据组织为一系列易于缓存和提供的切片。新的设计提高了效率,从而降低了运营成本,帮助日志满足可用性要求,并降低了完整性违规的风险。