Roughtime

Roughtime: Securing Time with Digital Signatures

其实主要是ntp没有啥安全校验,sntp的authenticated key又挺弱的

Roughtime是client先发一个nonce。

server端回复timestamp+radius,并且打签名的时候把nonce带上。

server端的public key合法性可以由上一级的delegator签名来校验。

NTS

RFC8915: Network Time Security for the Network Time Protocol

这篇的设计比较好。

Server拆分成2个角色:NTS-KE Server,NTP Server

NTS-KE Server

client通过TLS连接到NTS-KE Server进行首次密钥协商,port 4460

双方使用RFC7301的 tls alpn 机制指定 nts-ke 协议,节省rtt

双方使用RFC5705的 tls exported key material机制派生K,节省rtt

NTS-KE使用K加密cookie相关内容。

NTS-KE向NTP Server同步(I, K)。

NTP Server的内容密钥信息(P)由Server随机生成,包含3部分:

  • The AEAD algorithm negotiated during NTS-KE.
  • The S2C key.
  • The C2S key.

随机生成唯一标识I,用于标识K

随机生成N: nonce

使用K,结合nonce,加密P,获得C

Cookie形式为:(I, N, C)。

NTP Server

Client 使用 cookie 向 NTP Server 发送时间同步请求。

NTP Server基于cookie中的I定位到对应的K,再使用K,结合N,解密C,获得P。

NTP Server使用P中的C2S/S2C key处理相关NTP数据,响应包中带I。

NTP Server可以随机生成新的(I, K),使用K包装新的P,在响应包中带上新的Cookie信息。

安全

NTS-KE Server负责非对称,NTP Server负责对称,减少资源消耗型ddos风险

通过cookie机制减少放大攻击的风险

通过AEAD减少劫持的风险

通过NTP Server的(I, K)轮转减少非对称的资源消耗



Published

02 August 2020

Tags


Share On