Le protocole TCP est un protocole situé sur la couche 4 (Transport) du modèle OSI, et permet de gérer des connexions entre deux éléments actifs d'un réseau de manière efficace et contrôlée. Ce protocole assure la bonne émission et réception des données à l'aide notamment d'un système de numéros de séquence et d'acquittement, numéros habituellement pseudo-aléatoires, évitant de fait la possibilité d'insertion de données malveillantes dans une connexion déjà établie. Afin d'établir cette connexion, le protocole TCP se base sur une triple poignée de main (aussi appelée 3-way handshake), qui assure une mise en accord sur les numéros de séquence et d'acquittement initiaux à employer lors des envois et réceptions effectués via la connexion établie. On considère par ailleurs celle-ci comme établie lorsque les hôtes ont réalisé la triple poignée de main (SYN/SYN-ACK/ACK). Un ensemble de drapeaux (flags) permet de notifier l'un ou l'autre des protagonistes de multiples états possibles de la transmission, et permet aussi d'assurer la bonne trans- mission des données. De plus, un système de fenêtre (Windowing) est employé afin de controler le débit en émission et réception. Un système de "sliding windows" permet l'ajustement de celles-ci. 50^W^W27 ans nous séparent de la date de création du protocole TCP, mais celui-ci reste malgré tout LE protocole le plus employé sur Internet, bien que le protocole UDP soit de même utilisé (principalement pour les transferts de voix/image ou encore pour des protocoles tels que TFTP ou SNMP). Mais ce n'est pas pour autant que ce protocole est un protocole fiable, car plusieurs attaques existent sur ce protocole, mais il faut bien noter que toutes ne reposent pas forcément sur la couche transport. Une attaque bien typique du protocole TCP consiste à essayer de prédire les numéros de séquence et d'acqui- tement envoyés dans les trames lors d'un dialogue entre deux machines. Si quelqu'un est en mesure de prédire ces numéros (à l'aide d'informations diverses glanées sur la ma- chine ciblée), alors il/elle est capable d'env^W^Wd'injecter des paquets TCP légitimes au- x machines du réseau, en les trompant grâce notamment à du spoofing d'adresse IP. Cette technique a été bien éprouvée par un certain Kevin Mitnick, qui l'a mise en application très souvent lors de ses "hacks" de machines, avant son arrestation en 1995. Une autre attaque possible sur le protocole TCP consiste à abuser des drapeaux (flags) en les forgeant à l'aide d'outils afin de déduire des informations sur les états des ports, ce qui permet de réaliser un scan. Bref, TCP est omniprésent, et non sûr. Semi-Fail quoi =)