| + | Bits 0 - 3 | 4 - 7 | 8 - 15 | 16 - 18 | 19 - 31 | |
0 | Version | Header length | Type of Service | Total Length | |||
32 | Identification | Flags | Fragment Offset | ||||
64 | Time to Live | Protocol | Header Checksum | ||||
96 | Source Address | ||||||
128 | Destination Address | ||||||
160 | Options + Padding | ||||||
160/192+ | | ||||||
|
Figure 3: Entête IP
Comment le protocole est-il détourné?
Le champ d'identification du paquet IP est codé sur 16 bits et est employé pour identifier un datagramme IP dans un même flot, c.-à-d. un ensemble de datagrammes IP partageant le même quatre-tuple de source et de destination (IP de source, IP de destination et ports source et de destination). La valeur pour ce champ doit être choisie aléatoirement par la source, mais peut également contenir une valeur non-aléatoire sans perturber le mécanisme d'IP. Il est alors possible de détourner ce champ pour cacher 16 bits de données et les envoyer à n'importe quel autre système sur le réseau. Remarquons qu'il a été proposé de cacher les informations transmises dans ce champ de telle manière qu'on garde les propriétés de suite pseudo-aléatoire du champ d'identification.
D'autre part, le champ de 3-bits utilisé pour gérer les problèmes de fragmentation est facultatif et sans conséquence sur le fonctionnement du protocole IP. Par conséquent c'est un medium intéressant pour les canaux secrets, quoiqu'il puisse seulement faire circuler quelques bits par paquet. Le champ de remplissage est normalement à 0, mais rien n'empêche de choisir un remplissage autre que 0 et donc d'exfiltrer ainsi de l'information.
Le champ option de l'entête du paquet IP est prévu pour les opérations de service requises ou utiles dans quelques situations bien précises mais inutiles pour les communications les plus communes. C'est un champ très intéressant pour pouvoir faire circuler des informations, car il offre un débit spatial très intéressant.
Logiciels pouvant être utilisés:
On pourra utiliser covert_tcp.c ou new-sob.c, en mode IP.
Dans les deux cas la communication entre l'expéditeur et le destinataire est directe. Les logiciels créent le trafic qu'ils utilisent pour créer un canal caché et inscrire de l'information dans chaque paquet utilisé, donc nous sommes dans le cas d'un trafic spatial.
Sous Ipv6, certaines implémentations sont déjà en cours, par exemple le logiciel de Thomas Graf.
Aucun commentaire:
Enregistrer un commentaire