NTP 时间协议
一、简介
1.作用
NTP是从时间协议(Time Protocol)和ICMP时间戳报文(ICMP TimeStamp Message)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。
NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。
NTP协议是基于UDP进行传输的,使用端口号为123。
2.特征
NTP提供了准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。
计算机主机一般同多个时间服务器连接, 利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。
为防止对时间服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
二、报文
1.报文格式
2.报文字段
字段名 | 长度 | 含义 |
---|---|---|
LI(Leap Indicator) | 2比特 | 这是一个两位的代码,表示在NTP时间标尺中将要插入的下一跳情况。值为“11”时表示告警状态,时钟不能被同步。 |
VN(Version Number) | 3比特 | NTP的版本号。 |
Mode | 3比特 | NTP的工作模式。不同值表示的含义如下:0:reserved,保留。1:symmetric active,主动对等体模式。2:symmetric passive,被动对等体模式。3:client,客户模式。4:server,服务器模式。5:broadcast,广播模式。6:reserved for NTP control messages,NTP控制报文。7:reserved for private use,内部使用预留。 |
Stratum | 8比特 | 时钟的层数,定义了时钟的准确度。层数为1的时钟准确度最高,从1到15依次递减。 |
Poll Interval | 8比特 | 轮询时间,即发送报文的最小间隔时间。 |
Precision | 8比特 | 时钟的精度。 |
Root Delay | 32比特 | 到主参考时钟的总往返延迟时间。 |
Root Dispersion | 32比特 | 本地时钟相对于主参考时钟的最大误差。 |
Reference Identifier | 32比特 | 标识特定参考时钟。 |
Reference Timestamp | 64比特 | 本地时钟最后一次被设定或更新的时间。如果值为0表示本地时钟从未被同步过。 |
Originate Timestamp | 64比特 | NTP报文离开源端时的本地时间。 |
Receive Timestamp | 64比特 | NTP报文到达目的端的本地时间。 |
Transmit Timestamp | 64比特 | 目的端应答报文离开服务器端的本地时间。 |
Authenticator | 96比特 | (可选)验证信息。 |
三、安全问题
1.可导致Windows拒绝服务
漏洞能够导致NTP守护进程崩溃,并且触发Windows系统拒绝服务。 “漏洞能够让未授权的用户用构造好的UDP包是的ntpd崩溃,导致空指针引用。” Stubman在周一的公告中写道。 “根据NTP.org,ntpd没有默认开启trap服务,如果trap被开启,攻击者就能通过特别构造的数据包导致空指针引、ntpd崩溃,进而导致服务器拒绝服务。这个漏洞只影响Windows服务器。”卡内基梅隆大学软件工程学院CERT发布的漏洞记录VU#633847中写道。 Stubman发布了针对这一漏洞的PoC。理论上来说任何人都可以通过构造数据包来使Windows服务器崩溃。 “NTP用户应该立即采取行动保证NTP守护进程无法遭攻击。用户们可以趁此机会通过BCP38部署Ingress和Egress过滤。ntp-4.2.8p9已于11月21日发布,新版本修复了1个高危漏洞,2个中危漏洞,2个中低危漏洞和5个低危漏洞,还修复了28个bug和其他一些改进。”
更多建议: