web-dev-qa-db-fra.com

Quel avantage est conféré par TCP horodatage?

J'ai une analyse de sécurité qui m'ordonne de désactiver TCP horodatages. Je comprends les raisons de la recommandation: l'horodatage peut être utilisé pour calculer la disponibilité du serveur, ce qui peut être utile à un attaquant (bonne explication sous la rubrique "TCP Timestamps" à http://www.silby.com/eurobsdcon05/eurobsdcon_silbersack.pdf ).

Cependant, je crois comprendre que les horodatages TCP sont destinés à améliorer les performances de TCP. Naturellement, dans l'analyse coûts/avantages, la dégradation des performances est importante, peut-être aussi). gros, coût. J'ai du mal à comprendre combien, le cas échéant, les coûts de performance sont susceptibles d'être. Des nœuds dans le hivemind se soucient d'aider?

43
Paul Degnan

La réponse est exprimée le plus succinctement dans RFC 1323 - Round-Trip Measurement ... L'introduction de la RFC fournit également un contexte historique pertinent ...

   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.

La pénalité de performance spécifique que vous encourez en désactivant les horodatages dépendrait de votre système d'exploitation de serveur spécifique et de la façon dont vous le faites (pour des exemples, voir ceci doc PSC sur l'optimisation des performances ). Certains systèmes d'exploitation nécessitent d'activer ou de désactiver toutes les options RFC1323 à la fois ... d'autres vous permettent d'activer sélectivement les options RFC 1323.

Si votre transfert de données est en quelque sorte limité par votre serveur virtuel (peut-être que vous n'avez acheté que le plan vhost bon marché), alors vous ne pourriez peut-être pas utiliser de meilleures performances de toute façon ... peut-être que cela vaut la peine de les désactiver pour essayer. Si vous le faites, assurez-vous de comparer vos performances avant et après à partir de plusieurs endroits différents, si possible.

24
Mike Pennington

À Daniel et à toute autre personne souhaitant des éclaircissements:

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

"Les horodatages TCP sont utilisés pour fournir une protection contre les numéros de séquence encapsulés. Il est possible de calculer le temps de fonctionnement du système (et le temps de démarrage) en analysant TCP horodatages (voir ci-dessous). Ces temps de fonctionnement calculés (et les temps de démarrage ) peut aider à détecter les systèmes d'exploitation réseau cachés (voir TrueCrypt), à relier ensemble les adresses IP et MAC usurpées, à relier les adresses IP aux points d'accès sans fil Ad-Hoc, etc. "

Il s'agit d'une vulnérabilité à faible risque indiquée dans la conformité PCI.

14
psouza4

Pourquoi les responsables de la sécurité voudraient-ils que vous désactiviez les horodatages? Quelle menace possible un horodatage pourrait-il représenter? Je parie que l'équipage NTP ne serait pas satisfait de cela; ^)

L'horodatage TCP lorsqu'il est activé vous permettra de deviner la disponibilité d'un système cible (nmap v -O. Savoir depuis combien de temps un système fonctionne vous permettra de déterminer si les correctifs de sécurité qui nécessitent un redémarrage) a été appliqué ou non.

12
R V Marti

Je ne le ferais pas.

Sans horodatage, le mécanisme TCP Protection contre les numéros de séquence enveloppés (PAWS) ne fonctionnera pas. Il utilise l'option d'horodatage pour déterminer que le changement soudain et aléatoire de numéro de séquence est un bouclage (numéros de séquence de 16 bits) plutôt que un paquet fou d'un autre flux.

Si vous ne l'avez pas, alors vos sessions TCP seront rotées de temps en temps selon la vitesse à laquelle elles utilisent l'espace du numéro de séquence.

De 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

Prenez 45 Mbps (bien à des vitesses 802.11n), puis nous aurions un rot toutes les ~ 380 secondes. Pas horrible, mais ennuyeux.

Pourquoi les responsables de la sécurité voudraient-ils que vous désactiviez les horodatages? Quelle menace possible un horodatage pourrait-il représenter? Je parie que l'équipage NTP ne serait pas satisfait de cela; ^)

Hmmmm, j'ai lu quelque chose sur l'utilisation de TCP horodatages pour deviner la fréquence d'horloge de l'expéditeur? C'est peut-être ce dont ils ont peur? Je ne sais pas; ^)

Les horodatages sont moins importants pour l'estimation RTT que vous ne le pensez. Je les aime parce qu'ils sont utiles pour déterminer le RTT au niveau du récepteur ou d'un boîtier de médiation. Cependant, selon le canon de TCP, seul l'expéditeur a besoin de telles connaissances interdites; ^)

L'expéditeur n'a pas besoin d'horodatages pour calculer le RTT. t1 = horodatage lorsque j'ai envoyé le paquet, t2 = horodatage lorsque j'ai reçu l'ACK. RTT = t2 - t1. Faites un peu de lissage là-dessus et vous êtes prêt à partir!

... Daniel

10
Daniel

On m'a posé une question similaire sur ce sujet, aujourd'hui. Ma prise est la suivante:

Un système non corrigé est la vulnérabilité, pas si les attaquants peuvent facilement le trouver. La solution consiste donc à patcher régulièrement vos systèmes. Désactiver TCP ne feront rien pour rendre vos systèmes moins vulnérables - c'est simplement la sécurité par l'obscurité, qui n'est pas du tout une sécurité.

En retournant la question, pensez à créer une solution qui utilise TCP horodatages pour identifier les hôtes de votre réseau qui ont les temps de disponibilité les plus longs. Ce seront généralement vos systèmes les plus vulnérables. Utilisez ces informations pour hiérarchiser patcher, pour vous assurer que votre réseau reste protégé.

N'oubliez pas que des informations telles que la disponibilité peuvent également être utiles pour vos administrateurs système. :)

8
Oliver Jones