TCP 时间戳有什么好处?

问题描述 投票:0回答:5

我的安全扫描发现指示我禁用 TCP 时间戳。我理解建议的原因:时间戳可用于计算服务器正常运行时间,这对攻击者很有帮助(http://www.silby.com/eurobsdcon05/eurobsdcon_silbersack 标题“TCP Timestamps”下有很好的解释。 pdf)。

但是,据我了解,TCP 时间戳旨在增强 TCP 性能。当然,在成本/效益分析中,性能下降是一个很大的、甚至可能太大的成本。我很难理解可能会产生多少性能成本(如果有的话)。 hivemind 中是否有任何节点可以提供帮助?

networking tcp security
5个回答
28
投票

答案在RFC 1323 - 往返测量中得到了最简洁的表达...RFC 的介绍还提供了一些相关的历史背景...

   Introduction

   The introduction of fiber optics is resulting in ever-higher
   transmission speeds, and the fastest paths are moving out of the
   domain for which TCP was originally engineered.  This memo defines a
   set of modest extensions to TCP to extend the domain of its
   application to match this increasing network capability.  It is based
   upon and obsoletes RFC-1072 [Jacobson88b] and RFC-1185 [Jacobson90b].


  (3)  Round-Trip Measurement

       TCP implements reliable data delivery by retransmitting
       segments that are not acknowledged within some retransmission
       timeout (RTO) interval.  Accurate dynamic determination of an
       appropriate RTO is essential to TCP performance.  RTO is
       determined by estimating the mean and variance of the
       measured round-trip time (RTT), i.e., the time interval
       between sending a segment and receiving an acknowledgment for
       it [Jacobson88a].

       Section 4 introduces a new TCP option, "Timestamps", and then
       defines a mechanism using this option that allows nearly
       every segment, including retransmissions, to be timed at
       negligible computational cost.  We use the mnemonic RTTM
       (Round Trip Time Measurement) for this mechanism, to
       distinguish it from other uses of the Timestamps option.

禁用时间戳所带来的具体性能损失将取决于您的特定服务器操作系统以及您的操作方式(例如,请参阅有关性能调整的PSC 文档)。某些操作系统要求您立即启用或禁用所有 RFC1323 选项...其他操作系统允许您有选择地启用 RFC 1323 选项。

如果您的数据传输在某种程度上受到虚拟服务器的限制(也许您只购买了便宜的虚拟主机计划),那么也许您无论如何都无法使用更高的性能......也许值得尝试关闭它们。如果您这样做,请务必在多个不同位置对您的前后性能进行基准测试(如果可能)。


17
投票

为什么安全人员希望您禁用时间戳?时间戳可能代表什么威胁?我敢打赌 NTP 工作人员会对此不满意;^)

启用 TCP 时间戳后,您可以猜测目标系统的正常运行时间 (

nmap v -O <target>
)。了解系统已运行多长时间将使您能够确定是否已应用需要重新启动的安全补丁。


16
投票

致 Daniel 和任何其他想要澄清的人,来自 forensicswiki.org

TCP 时间戳用于提供针对包装序列号的保护。可以通过分析 TCP 时间戳来计算系统正常运行时间(和启动时间)(见下文)。 这些计算出的正常运行时间(和启动时间)可以帮助检测隐藏的启用网络的操作系统(请参阅 TrueCrypt)、将欺骗性 IP 和 MAC 地址链接在一起、将 IP 地址与 Ad-Hoc 无线 AP 链接等。

这是 PCI 合规性中表示的低风险漏洞。


13
投票

今天我就这个话题被问到了类似的问题。我的看法如下:

未打补丁的系统才是漏洞,而不是攻击者是否可以轻松找到它。因此,解决方案是定期修补系统。禁用 TCP 时间戳不会做任何事情来降低您的系统的脆弱性 - 这只是通过默默无闻的安全性,这根本不是安全性。

彻底扭转这个问题,考虑编写一个解决方案脚本,使用 TCP 时间戳来识别网络上正常运行时间最长的主机。这些通常是您最容易受到攻击的系统。使用此信息确定修补的优先级,以确保您的网络受到保护。

不要忘记,正常运行时间等信息对于您的系统管理员也很有用。 :)


11
投票

我不会这么做。

如果没有时间戳,TCP 保护序列号 (PAWS) 机制将无法工作。它使用时间戳选项来确定突然且随机的序列号更改是换行(16 位序列号),而不是来自另一个流的疯狂数据包。

如果你没有这个,那么你的 TCP 会话会根据它们使用序列号空间的速度每隔一段时间打一次嗝。

来自 RFC 1185:

ARPANET       56kbps       7KBps    3*10**5 (~3.6 days)
DS1          1.5Mbps     190KBps    10**4 (~3 hours)
Ethernet      10Mbps    1.25MBps    1700 (~30 mins)
DS3           45Mbps     5.6MBps    380
FDDI         100Mbps    12.5MBps    170
Gigabit        1Gbps     125MBps    17

以 45Mbps(完全在 802.11n 速度范围内)为例,那么我们每约 380 秒就会打嗝一次。不可怕,但很烦人。

为什么安全人员希望您禁用时间戳?时间戳可能代表什么威胁?我敢打赌 NTP 工作人员会对此不满意;^)

嗯嗯,我读过一些关于使用 TCP 时间戳来猜测发送者的时钟频率的内容?也许这就是他们所害怕的?我不知道;^)

时间戳对于 RTT 估计并不像您想象的那么重要。我碰巧喜欢它们,因为它们对于确定接收器或中间盒的 RTT 很有用。然而,根据 TCP 的规则,只有发送者需要这种禁止的知识;^)

发送方不需要时间戳来计算 RTT。 t1 = 发送数据包时的时间戳,t2 = 收到 ACK 时的时间戳。 RTT = t2 - t1。对其进行一些平滑处理,就可以开始了!

...丹尼尔

© www.soinside.com 2019 - 2024. All rights reserved.