SYN cookie - Wikipédia

Computer Networking and Cybersecurity · notes

Voir tous les documents en sécurité informatique

SYN cookie - Wikipédia

http://fr.wikipedia.org/wiki/SYN_cookie

SYN cookie

Les SYN cookies (syncookies) sont des valeurs particulières des numéros de

séquences initiales générés par un serveur (ISN: Initial Sequence Number) lors d'une

demande de connexion TCP. La technique mise en œuvre permet notamment de se

défendre contre les attaques par inondation de requêtes SYN et accessoirement par IP

spoofing.

Sommaire

1 Principe

2 Valeur de syncookie

3 Inconvénients

4 Paramétrage sous Linux

5 Notes

6 Articles connexes

7 Lien externe

Principe

Une demande de session TCP se fait en trois étapes:

le client envoie au serveur un paquet SYN avec un numéro de séquence initial

un numéro d'acquittement nul

le serveur place alors cette requête dans sa file d'attente de connexion et renvoie au

client un paquet SYN|ACK de numéro de séquence

égal à

le client répond par un paquet ACK de numéro de séquence

d'acquittement

Publicité

et un numéro d'acquittement

et un numéro

et

La connexion est alors établie et le client et le serveur peuvent commencer à échanger

des données.

client serveur

| flags: SYN=1,ACK=0 SN:56 |

|----------------->>-------------------|

| flags: SYN=1,ACK=1 SN:90 ACK:57 | création d'un contexte

|-------------------<<-----------------|

| flags: SYN=0,ACK=1 SN:57 ACK:91 |

|-------------------->>----------------|

| | connexion établie

| |

1 sur 3

23/10/2013 12:38

SYN cookie - Wikipédia

http://fr.wikipedia.org/wiki/SYN_cookie

Même si la procédure de connexion n'est pas encore terminée, le serveur a quand

même alloué une ressource pour enregistrer la demande de session du client. Cette

propriété est justement exploitée dans les attaques par SYN flooding. En utilisant un

SYN cookie, le serveur va se servir du réseau comme zone mémoire. Au lieu de créer

directement un contexte localement, il va envoyer au client les informations dont il a

besoin pour établir la connexion. Le client les lui retournera, puis il vérifiera si le

numéro d'acquittement du paquet envoyé par le client passe un test de sécurité

Publicité

spécifique pour créer enfin un contexte et établir la connexion. La procédure de

demande de session se passe alors comme suit.

client serveur

| SYN:56 ACK:0 |

|------------->>-----------|

| SYN:syncookie ACK:57 |

|------------<<------------|

| SYN:57 ACK:syncookie+1 |

|------------>>------------|

| |création d'un contexte

| |connexion établie

Valeur de syncookie

Étant donné que le champ d'acquittement ne contient que 32 bits , les informations

2

envoyées au client sont restreintes, les informations conseillées sont les suivantes :

1

les cinq premiers bits contiennent la valeur modulo 32 d'un compteur incrémenté

toutes les 64 secondes. Ce champ permet de garantir que la valeur contenue dans le

champ SYN sera croissante

les trois bits suivant contiennent la valeur codée du MSS négocié (aucun contexte n'a

été créé chez le serveur donc le réseau est utilisé pour stocker cette valeur)

les 24 derniers bits contiennent la valeur d'une fonction gardée secrète par le serveur

et qui prend en compte les adresses des deux sites, les numéros de ports utilisés et la

valeur du compteur de temps précédent. Ce champ est donc une sorte de signature

cryptographique qui permet d'authentifier chaque demande de connexion.

Publicité

3

Inconvénients

L'utilisation des syncookies présente quelques désavantages. En effet, comme les

options de TCP ne sont pas sauvegardées lors de la demande de connexion, certaines ne

seront pas prises en compte. Par exemple, dans l'exemple ci-dessus, la taille de la

fenêtre d'émission et le temps de temporisation ne sont pas traités. Ce qui peut

entraîner un faible rendement du réseau.

D'un autre côté, les administrateurs soucieux de la sécurité de leur réseau doivent tenir

compte de quelques risques qui peuvent subvenir. Étant donné que l'authentification de

la connexion est basée uniquement sur la valeur du champ d'acquittement du paquet ACK

envoyé par le client, si un attaquant arrive à deviner le protocole d'authentification

utilisé par le serveur, il peut se faire passer pour n'importe qui. De plus il peut

également inonder de paquets ACK le serveur pour tenter de créer une connexion. Et

2 sur 3

23/10/2013 12:38

SYN cookie - Wikipédia

http://fr.wikipedia.org/wiki/SYN_cookie

enfin, un serveur utilisant des syncookies ne pourra pas effectuer un filtrage de

paquets ACK, ce qui peut permettre éventuellement à un attaquant de passer à travers

un pare-feu qui filtre les paquets SYN de demande de connexion.

Paramétrage sous Linux

Sous linux, le paramétrage de ce mécanisme de protection est fait par le paramètre

tcp_syncookies du fichier sysctl.conf.

Notes

1.

Publicité

2.

3.

Voir le format d'un paquet TCP.

(en) référence (http://cr.yp.to/syncookies.html)

Maximum Segment Size : taille maximale des données que peut contenir un paquet TCP

Articles connexes

Usurpation d'adresse IP

Ddos

Attaque de Mitnick

Lien externe

(en) référence (http://cr.yp.to/syncookies.html)

Ce document provient de « http://fr.wikipedia.org/w/index.php?title=SYN_cookie&

oldid=90061668 ».

Dernière modification de cette page le 14 mars 2013 à 02:44.

Droit d'auteur : les textes sont disponibles sous licence Creative Commons paternité

partage à l’identique ; d’autres conditions peuvent s’appliquer. Voyez les conditions

d’utilisation pour plus de détails, ainsi que les crédits graphiques. En cas de

réutilisation des textes de cette page, voyez comment citer les auteurs et mentionner la

licence.

Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de

bienfaisance régie par le paragraphe 501(c)(3) du code fiscal des États-Unis.

3 sur 3

23/10/2013 12:38