Internet Control Message Protocol
Un article de Freepedia.
| Modèle OSI | Pile de protocoles |
|---|---|
| 7) Application | DNS, SNMP, SMTP, POP3, IMAP, IRC, VoIP, SIMPLE, ... |
| 6) Présentation | Videotex, Unicode, MIME, HTML, XML, MPEG, TDI, ASN.1, XDR, UUCP, NCP, AFP, WebDAV, SSP, ... |
| 5) Session | Gopher, Telnet, SSH, FTP, HTTP, HTTPS, NNTP, RTSP, H323, SIP, NFS, NetBIOS, CIFS, AppleTalk, ... |
| NetBT, SMB, SSL, TLS, ... | |
| 4) Transport | TCP, UDP, SCTP, RTP, SPX, TCAP, DCCP, ... |
| 3) Réseau | NetBEUI, IPv4, IPv6, ARP, IPX, BGP, ICMP, OSPF, RIP, IGMP, IS-IS, CLNP, ... |
| 2) Liaison | LLC, PPP, PPPoA, PPPoE, PPPoX, PPTP, L2F, L2TP, MPLS, SNA, ... |
| Ethernet, Token Ring, LocalTalk, FDDI, X.21, X.25, Frame Relay, BitNet, CAN, ATM, Wi-Fi, ... | |
| MAC, HDLC, SDLC, ... | |
| 1) Physique ISO 10022 CCITT X.211 | CSMA/CD, CSMA/CA, ... |
| Codage NRZ, Codage Manchester, Codage Miller, RS-232, RS-449, V.21-V.23, V.42-V.90, Câble coaxial, 10Base2, 10BASE5, Paire torsadée, 10BASE-T, 100BASE-TX, ISDN, PDH, SDH, T-carrier, EIA-422, EIA-485, SONET, ADSL, SDSL, VDSL, DSSS, FHSS, IrDA, USB, IEEE 1394, Wireless USB... |
Présentation
ICMP (acronyme de Internet Control Message Protocol - Protocole de contrôle des messages sur Internet) est un protocole de niveau 3 sur le modèle OSI, qui permet le contrôle des erreurs de transmission. C'est grâce à ce protocole qu'une machine émettrice peut savoir qu'il y a eu un incident de réseau.
Format des trames
Une trame ICMP est composée :
- d'un en-tête
- du type d'erreur (8 bits)
- du code de l'erreur (8 bits)
- d'une somme de contrôle (16 bits)
- du message
Les différents incidents possibles sont reportés ci-dessous, avec le code d'erreur correspondant.
Les différents types
Type 0 (réponse echo)
Type : 0
Code : 0
Message : réponse d'ECHO
Signification : réponse au message de type 8
Type 3 (destinataire inaccessible)
Type : 3
Code : 0 à 11
Message : destinataire inaccessible
Le code dépend de la cause du problème, respectivement :
- 0 : le réseau n'est pas accessible
- 1 : la machine n'est pas accessible
- 2 : le protocole n'est pas accessible
- 3 : le port n'est pas accessible
- 4 : fragmentation nécessaire mais impossible à cause du drapeau (flag) DF
- 5 : le routage a échoué
- 6 : réseau inconnu
- 7 : machine inconnue
- 8 : machine non connectée au réseau (inutilisé)
- 9 : communication avec le réseau interdite
- 10 : communication avec la machine interdite
- 11 : réseau inaccessible pour ce service
- 12 : machine inaccessible pour ce service
- 13 : communication interdite (filtrage)
Type 4 (arrosage de la source)
Type : 4
Code : 0
Message : arrosage de la source (source quench)
Signification : le volume de données envoyé est trop important, le routeur envoie ce message pour prévenir qu'il sature afin de demander de réduire la vitesse de transmission
Type 5 (redirection)
Type : 5
Code : 0 à 3
Message : redirection pour
- un hôte
- un hôte et un service
- un réseau
- un réseau et un service
Signification : le routeur remarque que la route d'un ordinateur n'est pas optimale et envoie l'adresse du routeur à rajouter dans la table de routage de l'ordinateur
Type 8 (echo)
Type : 8
Code : 0
Message : demande d'ECHO
Signification : demande de renvoi d'informations, avec la commande ping par exemple
Type 11 (temps dépassé)
Type : 11
Code : 0 ou 1
Message : temps dépassé ou temps de ré-assemblage des fragments d'un datagramme dépassé
Signification : ce message est envoyé lorsque le temps de vie d'un datagramme ou le temps de réassemblage des parties d'un datagramme est dépassé. L'en-tête du datagramme est renvoyé pour que l'utilisateur sache quel datagramme a été détruit
Type 12 (en-tête erronné)
Type : 12
Code : 0
Message : en-tête erronné
Signification : ce message est envoyé lorsqu'un champ d'un en-tête est erronné. La position de l'erreur est retournée
Type 13 (demande heure)
Type : 13
Code : 0
Message : timestamp request
Signification : une machine demande à une autre son heure et sa date système (universelle)
Type 14 (réponse heure)
Type : 14
Code : 0
Message : timestamp reply
Signification : la machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données
Type 15 (demande adresse IP)
Type : 15
Code : 0
Message : demande d'adresse réseau
Signification : ce message permet de demander au réseau une adresse IP
Type 16 (réponse adresse IP)
Type : 16
Code : 0
Message : réponse d'adresse réseau
Signification : ce message répond au message précédent
Type 17 (demande masque sous-réseau)
Type : 17
Code : 0
Message : demande de masque de sous-réseau
Signification : ce message permet de demander au réseau un masque de sous-réseau
Type 18 (réponse masque sous-réseau)
Type : 18
Code : 0
Message : réponse de masque de sous-réseau
Signification : ce message répond au message précédent
Failles dans le protocole ICMP
Failles de Fernando Gont
L'argentin Fernando Gont, professeur, administrateur système et chercheur en réseau, a découvert en août 2004 plusieurs failles de sécurité dans le protocole ICMP. Il a tenté d'alerter les organismes concernés (auteurs de système d'exploitation comme Microsoft Windows ou Linux), mais également Cisco Systems (qui vend, entre autres, des routeurs), mais tous n'ont pas répondu, et Cisco a même tenté de breveter ses failles.
Parmis les failles, on peut citer :
- Les messages ICMP de type 3 pour les codes 2 ou 3 (voir aussi code 4) peuvent clore une connexion TCP
- Un envoi répété de message ICMP de type 4 (code 0) ralentit grandement le débit d'une connexion
- Le message ICMP de type 3 pour le code 7 ralentit une connexion en passant le MTU au minimum (68 octets) puis en l'augmentant progressivement
ICMP Redirect
Les messages ICMP de type 5 (redirection) peuvent être utilisée de manière malhonnête pour traverser un pare-feu. L'attaque consiste à faire passer un ordinateur par un chemin détourné qui va éviter le pare-feu. La solution consiste à configurer l'ordinateur pour ignorer ce genre de message.
Liens externes
- RFC 792
- http://www.iprezo.org/?page=icmp
- Failles ICMP découvertes par Fernando Gont et l'histoire des brevets avec Cisco



