2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

CloudFlare 开源网络时间安全协议:同时支持 NTP 和 NTS

  • 2019-12-24
  • 本文字数:1599 字

    阅读完需:约 5 分钟

CloudFlare开源网络时间安全协议:同时支持NTP和NTS

CloudFlare最近宣布网络时间安全(Network Time Security,NTS)协议发布第一个主要版本。该版本构建在他们之前发布time.cloudflare.com之上,这是其免费的时间服务,支持网络时间协议(Network Time Protocol,NTP)和 NTS。


CloudFlare 的免费时间服务 time.cloudflare.com,同时支持 NTP 和正在兴起的 NTS 协议。但是,在它发布的时候,并没有太多可用的 NTS 客户端。随着他们的新CFNTS项目的发布,CloudFlare 希望能够鼓励 NTS 协议的广泛采用。NTPSec最近发布了对 NTS 的支持。


如果你组合使用 time.cloudflare.com 和 NTPsec 或者它们的新 CFNTS 项目的话,CloudFlare 推荐启用 NTS。他们还提到 daemon 需要支持 TLS 1.3。


NTS 是由两个子协议形成的套件。第一个是网络时间安全秘钥交换(Network Time Security Key Exchange,NTS-KE)。该协议负责秘钥材料的创建,并且负责与第二个协议NTPv4的参数协商。NTPv4 是当前版本的 NTP 协议,允许客户端与远程的服务器同步时间。


CloudFlare 的加密工程师Watson Ladd和软件工程师Pop Chunhapanya这样说到:


为了维护 NTPv4 的可扩展性,很重要的一点就是服务器不维护每个客户端的状态。一个很小的服务器就能为数百万个 NTP 客户端提供服务。在提供安全性的同时又能保证这种属性是通过 cookie 来实现的,cookie 由服务器提供给客户端并且包含了服务器的状态。


为了在第一阶段完成这一点,客户端需要发送一个请求给 NTS-KE 服务器并通过 TLS 获取一个响应。在这个阶段,涉及到多个功能:


  • 协商在第二阶段使用的AEAD算法;

  • 协商第二个协议(目前,标准只定义了 NTS 如何与 NTPv4 协作);

  • 协商 NTP 服务器的 IP 地址和端口;

  • 创建第二阶段使用的 cookie;

  • 从 TLS 会话创建两个对称秘钥(C2S 和 S2C)。



NTS 过程的第一阶段


在第二阶段,客户端现在可以安全地与协商过的 NTP 服务器同步它们的时钟。为了确保安全完成,客户端会发送带有四个扩展的 NTPv4 包。第一个扩展为唯一的标识符扩展,包含了用于防止重播攻击的随机nonce。第二个扩展是 NTS cookie 扩展,它会为客户端提供两个 cookies 中的某一个。因为只有客户端记得两个 AEAD 秘钥(C2S 和 S2C),所以服务器端需要这个 cookie 来提取秘钥。每个 cookie 中包含了秘钥,这些秘钥由服务器端所持有的秘钥进行了加密。


第三个扩展是 NTS cookie 占位符扩展,这是客户端发送给服务端的一个信号,用来请求额外的 cookie。之所以需要它是为了确保响应不会比请求明显长太多,以避免放大攻击(amplification attacks)。最后一个扩展是 NTS 认证器和加密扩展字段的扩展,它包含 AEAD 算法的一个密文,以 C2S 作为密钥,NTP 头信息、时间戳和所有上述的扩展作为相关的数据。我们需要此头信息来防止时间戳仿造


按照 Ladd 和 Chunhapanya 所述:


第二次握手可以重复很多次,而不会回到第一个阶段,因为每个请求和响应都会给客户端一个新的 cookie。因此,TLS 中昂贵的公钥操作被分摊到大量请求中。


团队决定使用Rust来实现他们的服务,这与他们通常所选择的Go语言有所不同。正如作者们所指出的,他们决定使用 Rust 是因为“在响应 NTP 包的过程中垃圾收集暂停将会对精确性产生负面影响”。他们还指出,Rust 的内存安全性、不可为空性、线程安全性、不可变性和错误处理的特性是他们做出选择时的主要考虑因素。


随着这个版本的发布,CloudFlare 已经将他们的时间服务添加到公共NTP池中。NTP 池是一个由志愿者维护的服务,它在世界范围内提供 NTP 服务器。然而,他们注意到 NTS 在池模型中不能很好地运行。为了获得最佳的安全性,CloudFlare 建议启用 NTS 并使用 time.cloudflare.com 或其他支持 NTS 的服务器。


CFNTS服务已经基于2-Clause BSD许可证开源。CloudFlare 希望他们的解决方案能够让更多的客户在未来支持 NTS。目前,他们正在积极地寻求对代码库的贡献。


原文链接:


CloudFlare Releases Open Source Implementation of Network Time Security Protocol


2019-12-24 09:002336

评论

发布
暂无评论
发现更多内容

怎样才能让业财融合真正为企业数智化转型起到推动作用?

用友BIP

财务共享

inBuilder今日分享丨表单设计器画布渲染引擎揭秘

inBuilder低代码平台

多元办公场景下,企业如何保障工作效率与数据安全流通?

人称T客

GreptimeDB 使用指南|快速查询分析外部数据

Greptime 格睿科技

数据库 分布式 云原生 时序数据库 使用指南

「ACL 2023」:火山语音团队多篇论文中选,涉多方向技术创新突破

科技热闻

LangChain 查询使用指「北」

Zilliz

Milvus AIGC 向量数据库 zillizcloud langchain

开源大模型新SOTA!支持免费商用,比LLaMA65B小但更强,基于1万亿token

Openlab_cosmoplat

开源社区 falcon

软件测试/测试开发丨Web自动化测试高级定位xpath

测试人

程序员 软件测试 自动化测试 测试开发

利用透明压缩技术解决企业级SSD读写延迟挑战

ScaleFlux

压缩算法 固态硬盘 企业存储

项目很大,是否忍一下?

巨梦科技

微前端

财务标准化建设进程中,财务共享能起到什么作用?

用友BIP

财务共享

水泥行业全球第一企业怎么进行财务共享建设?

用友BIP

财务共享

西南财经大学李玉周:数智化技术广泛使用推动管理会计加快落地

用友BIP

智能会计 价值财务

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

详解RocketMQ 顺序消费机制

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

Wallys/DR5018+QCN6122/support for the latest Wi-Fi standards in networking devices.

Cindy-wallys

ipq5018 QCN6102 QCN6122

怎样将图片直接转换为3d模型?

真大的脸盆

Mac Mac 软件 图片转换工具 图片转换模型软件

财务共享五大价值助力央企构建世界一流财务管理体系

用友BIP

财务共享

AI浪潮再掀低代码开发热,快来了解最新趋势!

加入高科技仿生人

人工智能 低代码 AI技术

数据可视化:分布类可视化图表大全

2D3D前端可视化开发

大数据 数据分析 数字化转型 数据可视化 数据可视化工具

点云标注技术推动该领域的发展

数据堂

RocketMQ 多级存储设计与实现

阿里巴巴云原生

阿里云 RocketMQ 云原生

云服务器与独立服务器的性能比较:您需要了解的关键差异

一只扑棱蛾子

云服务器 独立服务器 服务器性能

进阶神册!Redis+Nginx+设计模式+Spring全家桶+Dubbo核心技术笔记

程序知音

Java 数据库 spring java架构 Java进阶

踢碎破局陷阱,来一场酣畅淋漓的 SLG!

网易智企

AI AIGC

MobTech MobLink|小程序、网页跳转App的原理

MobTech袤博科技

Kyligence x 明道云|低代码平台助力中小企业实现存量背景下的创新增长

Kyligence

数据分析 低代码平台 指标平台

AIGC下的低代码赛道,你我皆是拓荒人

引迈信息

AI 低代码 AIGC JNPF

论数字化大趋势下,建设财务共享中心的重要性

用友BIP

财务共享

通过SQL获取每个月第n周任意天的数据

搞大屏的小北

sql查询 sql 第一周 每个月 周一

商业地产研策如何搜集数据​

MobTech袤博科技

CloudFlare开源网络时间安全协议:同时支持NTP和NTS_开源_Matt Campbell_InfoQ精选文章