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?
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.
À 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.
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.
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
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. :)