NTS ###### overview ============ `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)。 cookie ========================================================== 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)轮转减少非对称的资源消耗