北京酷鲨科技有限公司
专注时间同步 专注时间同步装置 主营时间同步服务器设备

行业动态
网络时间安全 (NTS):更新了 NTP 的安全性
来源: Meinberg Radio Clocks 时间:2021-12-10

网络时间协议第 4 版 (RFC 5905)是一个非常成功的网络时间传输协议。它几乎可以在每个 IP 网络中找到。NTP 信息通常会穿越租用线路或“公共互联网”。因此,NTP 客户端可以确定 NTP 服务器就是他们所说的那样,并且没有人更改路由中的消息,这一点尤为重要。幸运的是,NTPv4 有一个内置的安全机制,称为NTP 自动密钥(耶!)。不幸的是,autokey 有已知的弱点,现在可以通过蛮力攻击来破解(哦,不!)。不用担心强大的互联网工程任务组 (IETF)近期发布了一个更新的安全机制,称为没有这些弱点的网络时间安全 (RFC 8915)。

它是如何工作的?如果您对 NTP 使用除单播客户端-服务器之外的任何通信模式,则不会. 对于 NTP 的任何不太常见的通信模式,您都会在一段时间内陷入自动键或没有安全性的困境。抱歉,为单播定义 NTS 已经够难的了。让我们从识别游戏中的玩家开始,如图 1 所示。除了 NTP 服务器和客户端之外,还有 NTS-KE 服务器。KE 代表密钥交换。实际上,NTS-KE 服务器和 NTP 服务器可能是运行在同一台服务器上的两个程序,或者它们可能位于不同的硬件上。KE 服务器的目的是确保 NTP 客户端和服务器使用相同的加密算法,并可选择验证 NTP 服务器和客户端的身份。

网络时间安全 (NTS) 中的三个实体

图 1. 网络时间安全 (NTS) 中的三个实体

在客户端可以与 KE 服务器进行 NTS 对话之前,它使用传输层安全性 (TLS)打开一个安全会话。请参见图 2。TLS 与您之前在订购蝙蝠侠手表时使用的安全机制相同,而任何人都无法看到您的信用卡号。它还用于保护互联网上的许多其他协议,因此它是经过高度测试的安全协议。在不超过 5 分钟限制的情况下,我将无法描述 TLS 的详细信息,因此我将其留给读者作为练习。建立 TLS 会话后,客户端将发送AEAD 安全算法列表它支持(可选)网络堆栈中的选 NTP 服务器和端口号。KE 服务器将使用选定的算法、服务器 IP 地址、端口号和一个或多个初始 cookie 进行响应。由于 NTS 和 KE 服务器通常由同一时间服务器制造商实现并捆绑在一起,因此 NTS 没有指定它们之间的交互。NTS 服务器以某种方式告诉 KE 服务器它想要使用哪些安全算法以及用于加密 cookie 的密钥。

 NTP 客户端与 NTS-Key Exchange 服务器签入

图 2. NTP 客户端与 NTS-Key Exchange 服务器签入

一旦 NTP 客户端从 KE 服务器获得初始 cookie,它就可以向 NTP 服务器发送安全的 NTP 请求。NTP 服务器将使用 NTP 扩展字段中的信息来收集 cookie 并验证 NTP 请求。然后 NTP 服务器将生成下一个 cookie 并将其与 NTP 响应一起发送。这显示在图 3 中。那么所有 cookie 的来回是什么意思?原因是 NTP 服务器是“无状态的”。他们不想记住单个客户,因为可能有非常多的客户。请注意,客户端可能会从 KE 服务器获取多个 cookie,这样它就不必在每次需要重新启动 NTP 时再次向 KE 服务器签入。

使用 NTS 保护的 NTP

图 3. 使用 NTS 保护的 NTP

NTS 使用 NTP 扩展字段(RFC 标识符就像一个序列号,但从加密安全的随机数生成器中随机生成。这使 NTP 消息比普通序列号的信息具有更多的熵,这使得安全性更难破解使用暴力破解算法。相同的标识符将用于 NTP 请求和响应对。与 cookie 一起的是指向 NTS 服务器使用的密钥的指针,以便它可以解密 cookie。认证扩展字段包含一个综合校验值,即哈希码,与客户端和服务器在接收到消息时生成的值进行比较。如果它们匹配,则该消息在网络中没有被改变。

带有 NTS 扩展字段的 NTP 消息的结构

图 4. 带有 NTS 扩展字段的 NTP 消息的结构

那么你如何为 NTS 烤饼干呢?成分如图 5 所示。cookie 在加密之前不能食用。请注意,客户端将有加密的 cookie 发送到服务器,但无法读取它们。客户端只是为服务器存储信息,以节省服务器上的内存。nonce 是添加到消息中的随机位字段,用于增加加密 cookie 的熵。NTS 对客户端到服务器 NTP 请求 (C2S) 和服务器到客户端响应 (S2C) 使用不同的密钥。

NTS cookie 字段

图 5. NTS cookie 字段

本文标签: NTP NTP服务器

新闻资讯