• Aucun résultat trouvé

12 ECNE R´eserv´e pour utilisation dans

Explicit Congestion Notification

13 CWR R´eserv´e pour utilisation dans

Explicit Congestion Notification

14 SHUTDOWN Acquittement de la portion

COMPLETE SHUTDOWN ACK

15-62 Non attribu´es dans RFC2960

63 Extension r´eserv´ee par l’IETF

64-126 Non attribu´es dans RFC2960

127 Extension r´eserv´ee par l’IETF

128-190 Non attribu´es dans RFC2960

128 ASCONF-ACK Acquittement de la portion

ASCONF

191 Extension r´eserv´ee par l’IETF

192-254 Non attribu´es dans RFC2960

192 FORWARD TSN Gestion avanc´ee des acquittements

193 ASCONF Configuration des adresses

255 Extension r´eserv´ee par l’IETF

Tab. 5.1: Les types des portions de SCTP

Les portions de donn´ees peuvent ˆetre mises dans un message avec des portions de

contrˆole. Il y a pourtant certaines contraintes :

– les portions du type INIT, INIT ACK et SHUTDOWN COMPLETE doivent ˆetre

seules dans un paquet,

– la portion ABORT ne peut pas ˆetre mise dans le mˆeme message que les portions des

donn´ees (du type DATA),

– la taille totale du message ne peut pas exc´eder le MTU (la taille maximale de trame

- Maximal Transmission Unit).

La figure 5.1 pr´esent le format g´en´eral d’un message SCTP qui montre l’en-tˆete

commune et plusieurs portions diff´erentes.

5.2 Initialisation s´ecuris´ee

Un des points faibles de TCP est la possibilit´e d’effectuer une attaque de d´eni du service

de typeSYN-flood. Il s’agit d’une attaque o`u un attaquant commence plusieures connexions

avec de fausses adresses source. Comme ces adresses sont fausses, voire n’existent pas, le

serveur TCP ne peut pas r´epondre et donc ´etablir la connexion compl`ete. Dans cette

situation, le serveur consomme des ressources (m´emoire) pour maintenir les connexions

semi-ouvertes. Cela provoque un ´epuisement de la m´emoire et finalement un blocage du

serveur.

Fig. 5.1 – Format g´en´eral d’un message SCTP

Pour se prot´eger contre ce type d’attaques, le protocole SCTP pr´evoit un m´ecanisme

d’initialisation s´ecuris´ee bas´e sur un COOKIE. C’est une valeur calcul´ee par le serveur pour

v´erifier le client qui a demand´e l’initialisation d’une association. Le sch´ema d’initialisation

avec un COOKIE est pr´esent´e dans la figure 5.2, suivi d’une explication d´etaill´ee du

m´ecanisme.

INIT

Le client qui veut ´etablir une association envoie vers le serveur un message INIT qui

contient obligatoirement les informations suivantes :

– Initiate Tag- la valeur qui sera utilis´ee par le client comme ´etiquette de v´erification

(Verification Tag) dans tous les messages ´emis pendant l’association.

5.2. INITIALISATION S ´ECURIS ´EE 27

Fig. 5.2 – Initialisation de l’association SCTP

– Advertised Receiver Window Credit - le nombre d’octets que le client peut

recevoir du serveur.

– Number of Outbound Streams- le nombre de flots sortants propos´es par le client

pour cette association.

– Number of Inbound Streams - le nombre de flots entrants propos´es par le client

pour cette association.

– Initial TSN - la valeur initiale du TSN pour le client. La valeur du Initiate Tag

peut ˆetre utilis´ee comme le TSN initial.

Dans le message INIT le client peut aussi mettre optionnellement :

– IPv4/IPv6 Address Parameter - si le client veut utiliser plusieurs adresses

pendant une association, il peut inclure des adresses suppl´ementaires IPv4 ou/et

IPv6. Les deux types d’adresses peuvent ˆetre utilis´es en mˆeme temps dans une

association.

– Host Name Address - le client peut mettre son nom au lieu de son adresse IP.

L’autre extr´emit´e doit convertir ce nom en adresse IP pour ´etablir une association.

On peut utiliser cette option pour ´etablir une association en pr´esence d’un serveur

NAT (Network Address Translation).

– Supported Address Types- le client peut sp´ecifier les types d’adresse support´es :

IPv4, IPv6 ou Hostname.

– Cookie Preservative- la dur´ee de validit´e des COOKIES. Par d´efaut un COOKIE

est valable pendant 60 secondes.

INIT-ACK

Un serveur qui re¸coit un message INIT ne cr´ee aucune structure de donn´ees dans

sa m´emoire et ne stocke aucune information concernant cette association. En se basant

sur les donn´ees re¸cues dans le message INIT, il calcule un COOKIE. La longueur et la

m´ethode de la calcul du COOKIE ne sont pas pr´ecis´ees dans la sp´ecification et elles peuvent

ˆ

etre diff´erentes pour chaque impl´ementation de SCTP. En fait, le COOKIE est important

seulement pour le serveur, car c’est lui qui doit le reconnaˆıtre dans l’´etape suivante. Le

client ne traite pas de COOKIE, mais le renvoie simplement au serveur. Cela ne d´epend

pas du format de COOKIE.

Dans le message INIT-ACK le serveur met aussi obligatoirement les informations

suivantes :

– Initiate Tag- la valeur qui sera utilis´ee par le serveur comme ´etiquette de v´erification

(Verification Tag) dans tous les messages ´emis pendant l’association.

– Advertised Receiver Window Credit - le nombre d’octets que le client peut

recevoir du serveur.

– Number of Outbound Streams - le nombre de flots sortants propos´es par le

serveur pour cette association.

– Number of Inbound Streams- le nombre de flots entrants propos´es par le serveur

pour cette association.

– Initial TSN - la valeur initiale du TSN pour le serveur. La valeur du Initiate Tag

peut ˆetre utilis´ee comme le TSN initial.

Le serveur peut ajouter des param`etres optionnels :

– IPv4/IPv6 Address Parameter - si le serveur veut utiliser plusieurs adresses

pendant une association, il peut inclure dles adresses suppl´ementaires IPv4 ou/et

IPv6 comme un param`etre optionnel.

– Host Name Address - le serveur peut mettre son nom au lieu d’adresses IP. Le

client doit convertir ce nom en adresse IP pour terminer l’initialisation.

– Error - si le serveur n’a pas reconnu un des param`etres dans le message INIT, il

envoie un message d’erreur.

COOKIE-ECHO

En troisi`eme phase d’initialisation le client renvoie au serveur le COOKIE trouv´e dans

le message INIT-ACK. Ce message ne contient rien de plus, mais le client peut mettre une

portion des donn´ees (DATAchunk) dans le mˆeme paquet avec le message COOKIE-ECHO.

Apr`es la r´eception du message COOKIE-ECHO, le serveur calcule encore une fois le

COOKIE de la mˆeme fa¸con qu’apr`es la r´eception du message INIT. Si le COOKIE calcul´e

est identique avec le COOKIE re¸cu dans le message COOKIE-ECHO, le serveur peut ˆetre