TCP时间戳赋予了什么好处?

Pau*_*nan 44 security networking tcp

我有一个安全扫描发现指示我禁用TCP时间戳.我理解推荐的原因:时间戳可用于计算服务器正常运行时间,这对攻击者有帮助(http://www.silby.com/eurobsdcon05/eurobsdcon_silbersack.pdf标题下的"TCP时间戳"下的详细说明)).

但是,我的理解是TCP时间戳旨在增强TCP性能.当然,在成本/效益分析中,性能下降是一个很大的,可能是太大的成本.我很难理解可能会有多少(如果有的话)性能成本.hivemind中的任何节点都在关心吗?

Mik*_*ton 24

答案在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.
Run Code Online (Sandbox Code Playgroud)

通过禁用时间戳而产生的特定性能损失将取决于您的特定服务器操作系统以及如何执行此操作(例如,请参阅此PSC文档了解性能调整).某些操作系统要求您同时启用或禁用所有RFC1323选项...其他操作系统允许您有选择地启用RFC 1323选项.

如果您的数据传输以某种方式被您的虚拟服务器限制(也许您只购买了便宜的虚拟计划),那么也许您无论如何也不可能使用更高的性能...也许值得关闭它们尝试.如果您这样做,请确保在可能的情况下从几个不同的位置对您的演出前后进行基准测试.

  • @Astaar,TCP时间戳选项是10字节而不是9字节。 (2认同)

pso*_*za4 14

致丹尼尔和任何其他想要澄清的人:

http://www.forensicswiki.org/wiki/TCP_timestamps

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

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


小智 12

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

启用TCP时间戳将允许您猜测目标系统的正常运行时间(nmap v -O.了解系统启动的时间将使您能够确定是否已应用需要重新启动的安全修补程序.

  • 您建议`nmap -v -O example.org`可以给出目标的正常运行时间但是这个结果是如何显示的?我试过一个实现TCP时间戳的测试系统,但我无法得到结果. (2认同)

小智 10

我不会这样做.

如果没有时间戳,TCP保护免受包装序列号(PAWS)机制将无法正常工作.它使用timestamp选项来确定突发和随机序列号更改是换行(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
Run Code Online (Sandbox Code Playgroud)

采用45Mbps(在802.11n速度范围内),然后我们每隔约380秒就会发生一次打嗝.不可怕,但很烦人.

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

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

时间戳对RTT估计的重要性不如您想象的那么重要.我碰巧喜欢它们,因为它们可用于确定接收器或中间盒的RTT.但是,根据TCP的大炮,只有发送者需要这样的禁止知识; ^)

发送方不需要时间戳来计算RTT.t1 =发送数据包时的时间戳,t2 =收到ACK时的时间戳.RTT = t2-t1.做一点平滑,你很高兴!

丹尼尔...

  • 你说 TCP 打嗝是什么意思,TCP 连接将被拆除或只是一些性能损失? (2认同)
  • “*发送方不需要时间戳来计算 RTT。*” - 它在重新传输时需要。如果没有 TCP 时间戳,则无法知道发送方收到的 ACK 来自原始传输还是重传。因此,当发生重传时,在没有重传的情况下接收到 ACK 之前无法确定 RTT。当发生多次重传时,这可能会导致病态行为,因为发送方可能会减慢到每 120 秒一个数据包的最低发送速率。 (2认同)

小智 8

今天我被问到关于这个话题的类似问题.我的看法如下:

未修补的系统是漏洞,而不是攻击者是否可以轻松找到它.因此,解决方案是定期修补您的系统.禁用TCP时间戳不会使您的系统不那么容易受到攻击 - 它只是通过默默无闻的安全性,这根本不是安全措施.

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

不要忘了,像正常运行时间的信息也可以是有用的您的系统管理员.:)