La sécurisation du flux média pour la VoIP

Transcription

La sécurisation du flux média pour la VoIP
La sécurisation du flux média pour la VoIP
Duc-Anh NGUYEN
Florian MERCERON
Cedric L’OLLIVIER
Institut National des Télécommunications
Evry
18 mai 2005
Sécurité des Systèmes et des Réseaux
Table des matières
1 Introduction
1
2 Faiblesses, menaces et attaques sur le flux média pour la
2.1 Problématique de sécurité du protocole RTP . . . . . . . .
2.1.1 Service de confidentialité . . . . . . . . . . . . . . .
2.1.2 Service d’authentification et d’intégrité . . . . . . . .
2.1.3 La gestion des clés . . . . . . . . . . . . . . . . . . .
2.1.4 Déni de service . . . . . . . . . . . . . . . . . . . . .
2.2 Attaques IP appliquées à la VoIP . . . . . . . . . . . . . . .
2.2.1 Attaques de reconnaissance . . . . . . . . . . . . . .
2.2.2 Problématiques de confidentialité . . . . . . . . . . .
2.2.3 Problématique de l’authentification . . . . . . . . . .
2.2.4 Problématique du contrôle d’intégrité . . . . . . . .
2.2.5 Attaques par déni de service . . . . . . . . . . . . .
VoIP
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
3
3
4
4
4
4
5
5
3 Les protocoles sécurisés
3.1 Le protocole SRTP (RFC3711) . . . . . . . . . . . .
3.1.1 Objectifs de srtp . . . . . . . . . . . . . . . .
3.1.2 Caractéristiques de srtp . . . . . . . . . . . .
3.1.3 Le contexte de cryptographie : . . . . . . . .
3.1.4 Traitement d’un paquet SRTP . . . . . . . .
3.1.5 Les Algorithmes de cryptographie . . . . . .
3.1.6 L’authentification . . . . . . . . . . . . . . . .
3.1.7 Gestion des clés . . . . . . . . . . . . . . . . .
3.1.8 Bilan des protocoles SRTCP et SRTP . . . .
3.2 La gestion des clés avec MIKEY (RFC 3830) . . . .
3.2.1 Généralités sur MIKEY . . . . . . . . . . . .
3.2.2 Fonctionnement de MIKEY . . . . . . . . . .
3.2.3 Interaction entre MIKEY et SRTP . . . . . .
3.2.4 Méthodes de transports et d’échange des clés
3.2.5 Gestion des autorisations . . . . . . . . . . .
3.2.6 Conclusion sur MIKEY . . . . . . . . . . . .
3.3 IPSEC . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 VOIPsec . . . . . . . . . . . . . . . . . . . . .
3.3.2 Problèmes avec IPsec . . . . . . . . . . . . .
3.3.3 Conclusion . . . . . . . . . . . . . . . . . . .
3.4 cIPsec . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Description cIPsec . . . . . . . . . . . . . . .
3.4.2 Conclusion . . . . . . . . . . . . . . . . . . .
3.5 DTLS . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Rappel TLS . . . . . . . . . . . . . . . . . . .
3.5.2 Description DTLS . . . . . . . . . . . . . . .
3.5.3 Conclusion . . . . . . . . . . . . . . . . . . .
3.6 Cutlass . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
6
8
9
9
12
14
14
14
14
14
15
15
17
18
18
18
19
20
20
21
21
21
22
22
24
24
Mini-projet
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
La sécurisation du flux média pour la VoIP
Sécurité des Systèmes et des Réseaux
4 Conclusion
25
Bibliographie
26
Mini-projet
La sécurisation du flux média pour la VoIP
Introduction
Chapitre 1
Introduction
La voix sur IP remporte actuellement un vif succès notamment grâce à son coût très avantageux. Cependant l’interconnexion de la téléphonie avec le monde IP apporte les risques du monde IP vers un monde
qui était « protégé » car fermé à l’informatique. Les menaces sont larges et nous aborderons uniquement la
sécurité des flux médias de la voix IP. Cela signifie que nous n’aborderons pas la sécurité des signalisations
SIP et H323.
De nombreuses attaques IP sont valables sur la voix sur ip. Nous aborderons quelques uns de ces scénarios
d’attaques impactant la confidentialité, l’authenticité et l’intégrité. Il est donc important de pouvoir
appliquer des services de sécurité.
Nous allons donc décrire une évolution du protocole RTP le protocole SRTP, le protocole DTLS qui
correspond à une adaptation de TLS à UDP et les solutions de tunnels IPSEC et SSL. Cependant
cette étude sur la sécurisation des flux média VOIP est théorique et donc ne se repose pas sur les
implémentations des constructeurs.
Mini-projet
La sécurisation du flux média pour la VoIP
1
Faiblesses, menaces et attaques sur le flux média pour la VoIP
Chapitre 2
Faiblesses, menaces et attaques sur
le flux média pour la VoIP
Cette partie sera consacrée aux faiblesses et menaces sur les flux média VoIP. Nous verrons que celles-ci
sont pour une grande partie liées aux attaques qui touchent de manière générale les réseaux IP. Certaines
restent cependant spécifiques à un environnement VoIP avec notamment des vulnérabilités sur le protocole
RTP que nous détaillerons. Dans le cadre de cette étude, seuls les flux média pour la VoIP seront pris en
compte. Mais il est important de noter que le flux de signalisation, et notamment SIP, présente également
de nombreuse failles et vulnérabilités exploitables par un attaquant : attaques déni de service par injection
de messages SIP Cancel, Bye ou attaque par détournement d’appel (Call Hijacking) avec l’utilisation des
messages SIP 30x.
2.1
Problématique de sécurité du protocole RTP
RTP (Real-time Transport Protocol) est un protocole de niveau applicatif conçu notamment pour les flux
sensibles aux délais comme la vidéo ou la VoIP. Il est aujourd’hui largement utilisé pour des communications VoIP à travers Internet, réseau non sécurisé. Dans cette partie nous ne rappellerons pas les principes
de base des protocoles RTP et RTCP décrits dans la RFC1889, nous nous focaliserons davantage sur les
mécanismes et problématiques de sécurité liés à RTP.
2.1.1
Service de confidentialité
Le chiffrement est possible avec l’algorithme DES-CBC. Le mode CBC permet de garantir que le paquet
perdu empêche uniquement le déchiffrement de ce paquet et du suivant : c’est une caractéristique vitale
pour des flux sensibles aux délais comme la VoIP, peu tolérants aux retransmissions. Si un autre algorithme
de chiffrement devait être utilisé, l’implémentation sera indépendente du protocole RTP qui ne supporte
que DES en mode CBC.
L’algorithme DES-CBC n’est aujourd’hui plus adapté dans la mesure où il est facilement cassable avec
les puissances de calcul disponibles. De plus, il peut présenter un conflit avec la compression d’en têtes
et donc dégrader de manière significative les performances, surtout pour les connexions bas débits. Un
autre point négatif a lieu dans un environnement conférence où chaque participant possède la clé de
chiffrement partagée. La compromission de la clé par l’un des hôtes entraı̂ne évidemment la supression
de la confidentialité de l’ensemble de la conférence. La sécurité pour des sessions à plusieurs participants
est donc difficile à garantir avec ce mode de fonctionnement.
2.1.2
Service d’authentification et d’intégrité
L’authentification dans le protocole RTP est implicite et se base sur la connaissance de la clé de chiffrement
partagée. Le contrôle d’intégrité est effectué à partir de la vérification de champs connus comme le numéro
de version du protocole, la longueur du paquet et le type de payload.
Mini-projet
La sécurisation du flux média pour la VoIP
2
Faiblesses, menaces et attaques sur le flux média pour la VoIP
Ce faible niveau d’authentification introduit par le protocole RTP et qui repose sur une authentification
purement implicite des participants est aujourd’hui inadapté et peu fiable. De plus les participants d’une
communication étant identifiés par leur SSRC, il est possible de forger un paquet avec une SSRC différente
afin de perturber une session RTP.
2.1.3
La gestion des clés
Le seul système de gestion de clé spécifié par la RFC1890 pour RTP est l’utilisation de MD5 pour dériver
la clé de chiffrement à partir du mot de passe. Pour une gestion plus complexe des clés, la mise en œuvre
doit être effectuée par d’autres protocoles voire par les applications elles-mêmes.
2.1.4
Déni de service
– Une attaque possible entrainant un déni de service consiste à utiliser les collisions SSRC (Synchronize
Source) dans le protocole RTP. Un participant peut envoyer une commande et revendiquer le SSRC
d’un autre participant. Ce dernier, selon les spécifications du protocole RTP dans la RFC, cesse toute
communication et doit sélectionner un nouveau SSRC.
– A partir d’un paquet RTP forgé avec un numéro de SSRC utilisé par un participant, il est possible
de modifier les champs numéro de séquence et timestamps avec des valeurs supérieures aux valeurs
réelles : les paquets forgés envoyés sont donc d’abord traités par l’utilisateur et peuvent aboutir à une
forme de déni de service.
– Une autre attaque spécifique à la VoIP vise à modifier les codecs audio dans une session RTP établie, à
partir de l’injection de paquets RTP par un pirate : choix d’un codec plus gourmand en bande passante
et entrainant davantage de pertes de paquets. Les conséquences peuvent être multiples allant de la
dégradation de la qualité du son au déni de service.
Fig. 2.1 – Format de l’en tête RTP
(source : Pierre Vincent, http://www-lor.int-evry.fr/~vincent/expArad/arad2001/voIP/www.html#
3.4)
Détail des champs de l’en tête RTP :
V : Version sur 2 bits, la version approuvée par l’IETF est la version 2.
P : Bourrage sur 1 bit.
X : Extension sur 1 bit. Si l’extension de l’en-tête ; 0 : pas d’extension pour la téléphonie
CC : nombre de CSRC sur 4 bits ; en téléphonie cc=1.
M : Marqueur sur 1 bit.
PT : Type de contenu (Payload Type) sur 7 bits. Ce champ identifie le type de données audio ou
vidéo transporté par ce paquet et leur format de codage. Il détermine la manière dont elles devront être
interprétées. Les différents types sont JPEG, GSM, PCM, G711,G721...
Numéro de séquence : Numéro d’ordre de sortie des paquets sur 16 bits. Il sera utilisé par le destinataire
pour remettre les paquets dans l’ordre ou constater une perte éventuelle
Horodatage : Sur 32 bits. Le paquet de données est horodaté à l’instant même de l’échantillonnage du
premier octet le constituant. L’horloge doit être monotone, linéaire dans le temps et avoir une précision
suffisante pour assurer celle de la resynchronisation
SSRC : Sur 32 bits. Le champ SSRC identifie la source de synchronisation c’est à dire l’émetteur sur
lequel il faudra caler la base de temps du flux. Il est choisit aléatoirement pour être unique au sein d’une
même session RTP.
CSRC : De 0 à 15 éléments de 32 bits chacun. La liste CSRC nomme toutes les sources ayant contribué
aux données contenues dans le paquet. Dans le cas de la téléphonie, il n’y aura qu’un seul CSRC.
Mini-projet
La sécurisation du flux média pour la VoIP
3
Faiblesses, menaces et attaques sur le flux média pour la VoIP
2.2
Attaques IP appliquées à la VoIP
Les nombreuses menaces du réseau IP sont valables pour un environnement de VoIP. Dans cette partie,
nous avons choisi de mettre en évidence quelques attaques IP appliquées à la VoIP plutôt que de dresser
une liste exhaustive (qui serait trop longue !) des attaque sur le réseau IP.
2.2.1
Attaques de reconnaissance
Il s’agit en général de la première phase d’une attaque. L’objectif pour un pirate est de récupérer un
maximum d’informations sur le réseau VoIP, comme obtenir les ports ouverts ou encore les adresses IP
qui sont les identifiants des téléphones IP. Des logiciels en téléchargement libre (ex : Angry IP Scanner)
sont disponibles sur Internet pour réaliser ces attaques.
2.2.2
Problématiques de confidentialité
Sniffing (ou EavesDropping) :
Cette attaque consiste à écouter passivement le trafic sur le réseau VoIP. Il est ainsi possible de reconstituer entièrement une communication entre deux téléphones IP. Si un hub est utilisé pour interconnecter
des téléphones IP, il suffit pour un pirate de se brancher sur un des ports du hub pour écouter les
conversations : en effet, un hub duplique le trafic sur l’ensemble de ses ports.
Fig. 2.2 – Exemple d’une attaque par ”sniffing”
Dans le cas d’un switch, le pirate a la possibilité de lancer au préalable une attaque de type CAM Overflow
afin de remplir sa table d’association adresse MAC/port : le commutateur se comporte alors comme un
hub. Il s’agit là d’une attaque générale valable pour tous les réseaux commutés (de niveau 2) et donc
pour une architecture VoIP.
Attaque Man In The Middle :
Il s’agit pour un pirate de s’insérer dans une communication téléphonique de manière transparente pour
les utilisateurs. Les possibilités d’actes malveillants pour le pirate sont variées : simple écoute, redirection
de la conversation téléphonique...
Un exemple concret de ce type d’attaque a été démontré en environnement réel et a été effectué en
environnement réseaux commutés. L’attaque de l’ARP Spoofing consiste dans la génération de GARP
(Gartuitous ARP ou ARP non sollicités) afin de modifier les tables ARP des équipements (switch et
téléphones IP). Il en résulte une attaque « Man In The Middle » qui est totalement transparente pour
les utilisateurs (aucun moyen de déceler l’attaque, on ne dénote aucune baisse de qualité du son pendant
et après l’attaque).
2.2.3
Problématique de l’authentification
L’attaque consistant à usurper l’identité par spoofing d’adresse IP reste valable en environnement VoIP,
ce qui donne la possibilité à un pirate de se faire passer pour un rogue phone.
Mini-projet
La sécurisation du flux média pour la VoIP
4
Faiblesses, menaces et attaques sur le flux média pour la VoIP
2.2.4
Problématique du contrôle d’intégrité
Le service de sécurité d’intégrité assure que des informations n’ont pas été altérées par une tierce personne. Les menaces liées au service d’intégrité incluent des données ou des fonctionnalités qui auraient
été corrompues volontairement ou même involontairement. Un exemple de problème d’intégrité est la corruption de la fonctionnalité DHCP (qui attribue les adresses IP aux téléphones IP), essentielle dans une
architecture ToIP. Un serveur DHCP pirate qui attribuerait une fausse adresse IP au téléphone pourrait
avoir des conséquences importantes : attaque Man In The Middle ou déni de service.
2.2.5
Attaques par déni de service
Une architecture VoIP repose largement sur une partie software (téléphone IP, passerelle, serveur) et qui
sont donc susceptibles à des failles et vulérabilités : buffer overflow, bug, virus ou même worms (dans le
cas de softphones)... Nous ne détaillerons pas cette partie qui est spécifique à chaque système et logiciel.
Un autre type d’attaque par déni de service pourrait consister à inonder de paquets forgés à destination
d’équipements critiques tels que les serveurs ou les passerelles utilisés dans l’architecture VoIP. Le but
étant de produire un déni de service par une incapacité de l’équipement à assurer sa fonction ou même
un crash.
Mini-projet
La sécurisation du flux média pour la VoIP
5
Les protocoles sécurisés
Chapitre 3
Les protocoles sécurisés
3.1
3.1.1
Le protocole SRTP (RFC3711)
Objectifs de srtp
L’objectif principal de cette boı̂te à outil est de fournir les services de sécurité suivants :
– confidentialité du contenu utile de RTP et RTCP
– intégrité de l’ensemble du paquet RTP et RTCP
– protection contre le rejeu
L’ensemble de ces services est optionnel et indépendant excepté l’intégrité des flux srtcp.
D’autre part, la conception de ce protocole respecte les contraintes suivantes :
– une évolution possible des algorithmes de cryptographie
– une faible consommation de bande passante avec préservation de l’efficacité de compression des en-têtes
RTP
– une faible consommation en ressource de calcul
– une taille de code et occupation mémoire minimale
– l’indépendance vis à vis des autres couches avec forte tolérance à la perte de paquet et à leurs remises
en ordre.
3.1.2
Caractéristiques de srtp
SRTP et SRTCP représentent un profil de RTP et doivent être implémentés sans aucune modification
de RTP. C’est pour cette raison que l’on parle de RTP en tant que boite à outil. Afin de visualiser les
changements voici les formats des paquets SRTP et SRTCP.
Mini-projet
La sécurisation du flux média pour la VoIP
6
Les protocoles sécurisés
Format d’un paquet SRTP
Fig. 3.1 – Format d’un paquet SRTP
Seul le champ MKI et l’étiquette d’authentification apparaissent :
SRTP MKI (Master Key identifier) : cet identifiant permet de repérer la clé maı̂tre à partir de laquelle
la clé de session a été produite.
L’étiquette d’authentification :
– La validation de l’intégrité dont le numéro de séquence permet d’éviter les rejeux.
– Le cryptage est toujours effectué avant la création du tag authentification
– Le MKI n’est pas protégé car cela n’apporte pas de protection en plus
Mini-projet
La sécurisation du flux média pour la VoIP
7
Les protocoles sécurisés
Format d’un paquet SRTCP
Fig. 3.2 – Format d’un paquet SRTCP
Les nouveaux champs apparaissent à partir du drapeau E :
– champ E : il indique si ce paquet est crypté ou non
– SRTCP index : contrairement au SRTP où il doit être calculé, il est ici directement indiqué
– étiquette d’authentification : données d’authentification
– MKI (Master Key Indicator) : idem au SRTP
3.1.3
Le contexte de cryptographie :
Le contexte de cryptographie permet le partage d’information sur la sécurité entre les deux extrémités
de la communication. Il est identifié par le triplet : SSRC, adresse de destination et port de destination.
Le contexte comporte un ensemble de paramètres appelés « paramètres indépendants de transformation
». Ces données sont stockées sur les deux extrémités d’une communication. Voici quelques-uns de ces
paramètres :
– un ROC (Roll Over Counter) : il compte le nombre de fois que le numéro de séquence à été réinitialisé
à 0. Ce paramètre permet de calculer l’index.
– un index tel que i = 21 6 * ROC + SEQ : Cet index est en fait la localisation du paquet dans l’ensemble
des séquences reçues. Dans le cas du SRTCP, il l’est pas nécessaire de le calculer car il est fournit
directement dans chaque paquet.
– un identifiant de l’algorithme de cryptage et de son mode
– un identifiant de l’algorithme d’authentification
– une liste de rejeu au niveau du récepteur contenant les derniers paquets SRTP authentifiés reçus.
– etc...
Ces paramètres permettent donc d’identifier les algorithmes de cryptographie pour chaque paquet et de
se protéger des attaques par rejeu.
La liste de rejeu et l’index apportent une protection supplémentaire contre les attaques par rejeu. Dans
la pratique, la liste de rejeu ne peut pas contenir l’ensemble des paquets reçus et authentifiés à cause
de la taille de stockage (cf voir objectifs). D’où l’utilisation d’une fenêtre glissante, pour chaque paquet,
Mini-projet
La sécurisation du flux média pour la VoIP
8
Les protocoles sécurisés
un index est calculé. Puis on valide que cet index se trouve au dessus de la fenêtre ou à l’intérieur (à
condition qu’il ne soit pas déja présent).
Pour terminer, les flux SRTCP utilisent le même contexte de cryptographie que le SRTP sauf séparation
du ROC, de la liste de rejeu et du compteur paquet SRTCP par clé maı̂tre.
3.1.4
Voici
1.
2.
3.
4.
5.
6.
7.
8.
9.
Traitement d’un paquet SRTP
les étapes du traitement d’un paquet srtp lors de la réception.
Recherche du contexte de cryptographie grâce au triplet.
Calcul de l’index du paquet
Recherche de la clé maı̂tre et de la clé salt grâce à l’index ou au MKI
Recherche de la clé de sessions de cryptage et clé session salt grâce à la fonction de dérivation des
clés à partir de la clé maı̂tre et de la clé salt ainsi que du taux de dérivation.
Vérification que le paquet n’a pas été rejoué en comparant l’index et la fenêtre de rejeu.
Vérification de l’étiquette d’authentification
Décryptage de la partie cryptée
Mise à jour du Roll Over Counter
Suppression des étiquettes d’authentification et du MKI afin de le transformer en paquet RTP
standard
3.1.5
Les Algorithmes de cryptographie
Dans cette partie nous allons décrire les algorithmes de dérivation de clés et les algorithmes de cryptages
et d’authentification.
Dérivation et formation des clés
Une seule clé maı̂tre peut être utilisée à la fois pour le srtp et srtcp grâce à une fonction de dérivation de
clé de session. La nécessité de la dérivation des clés est facile à comprendre :
– seulement deux clés sont transmises à l’initialisation : la clé maitre et la clé ”salt” maı̂tre
– si une clé de session est découverte, il sera impossible de retrouver les autres clés de sessions
– différentes clés de sessions permettent de se prémunir contre les attaques par collisions (voir ci dessous).
Cependant l’utilisation de clés de sessions ne rallongent pas la durée de vie de la clé maı̂tre.
Voici la procédure de dérivation simplifiée des clés :
Fig. 3.3 – Procédure de dérivation des clés
La clé salt est l’une des forces de protocole. Elle sert à se prémunir des attaques par collision. En effet,
l’une des solutions la plus simple et la plus fiable pour ce prémunir de ce type d’attaque est de rallonger
la clé principale par une séquence pseudo-aléatoire. La clé salt permet ainsi d’allonger artificiellement les
clés. Par défaut la taille de la clé salt est de 112 bit, ce qui impose au cryptanalyste d’essayer 2112 clés.
Rappel sur les attaques par collision :
Référence : ”The Need of Salt” , http://www.3gpp.org/ftp/tsg_sa/WG3_Security/TSGS3_35_Malta/Docs/PDF/S3040796.pdf
Les attaques par collision sont basées sur la connaissance préalable de données en clair par l’attaquant.
A partir de ces données, l’attaquant est apte à savoir lorsque la clé est bonne ou pas. Les étapes de
l’attaquant sont les suivantes :
Mini-projet
La sécurisation du flux média pour la VoIP
9
Les protocoles sécurisés
1. L’attaquant connait déjà les parties contenant les données connus, ou il fait en sorte que des données
connues rentrent dans des flux qu’il a à décrypter
2. Il crypte ces données connues par un ensemble de clé
3. Il enregistre le trafic crypté qu’il souhaite casser et recherche une collision (similarité entre sa base
de données connue crypté et une donnée dans le fichier crypté)
4. Il valide la collision en testant la clé sur l’ensemble des données cryptées.
Procédure de cryptage
Chaque paquet est crypté par un segment keystream pseudo aléatoire. Ce segment est créé à partir de
l’index du paquet et de la clé secrète. Donc chaque segment correspond à un seul paquet. Enfin le système
de génération du keystream dépend du cryptage ainsi que son mode.
Fig. 3.4 – Procédure de cryptage
Les algorithmes de cryptage
Deux algorithmes sont disponibles :
– Null Cipher : pas de cryptage.
– AES : deux modes sont proposés le ”Segmented Integer Counter (AES-CTR)” et le f8-mod
AES mode Segmented Integer Counter :
Ce mode consiste en un cryptage par incrémentations successives.
Mini-projet
La sécurisation du flux média pour la VoIP
10
Les protocoles sécurisés
Fig. 3.5 – AES mode Segmented Integer Counter
Le rfc indique bien que le SSRC et l’index doivent être indépendants de la clé salt, sinon cela casserait
complètement ce système. (Cela pourrait être un axe d’étude dans le cassage des sessions SRTP)
AES mode f8 :
Ce mode a été développé pour l’UMTS. Voici son fonctionnement :
Mini-projet
La sécurisation du flux média pour la VoIP
11
Les protocoles sécurisés
Fig. 3.6 – AES mode f8
On peut remarquer la présence d’une authentification implicite de l’en-tête via la création du vecteur
d’initialisation. D’autre part, la clé salt sert ici uniquement à rallonger la clé via un masque.
3.1.6
L’authentification
1. Création d’un message M tel que :
En SRTP : M = Partie à authentifier || ROC (Roll Over Counter)
En SRTCP : M = Partie à authentifier
Rappel : le ROC indique le nombre de fois que le numéro de séquence à été réinitialisé à 0.
2. HMAC du message M avec la clé d’authentification
Le HMAC choisi est HMAC-SHA1 défini dans le RFC 2104. Nous pouvons décrire grossièrement cette
fonction telle que : HMAC-SHA1 = SHA1(k a XOR opad, SHA1(k a XOR ipad, M)).
Voici les différents paramètres utilisés :
M : le message à authentifier
k a : clé d’authentification
SHA1 : algorithme de hachage
ipad : un octet 0x36 répété avec XOR B fois
opad : un octet 0x5C répété avec XOR B fois
Mini-projet
La sécurisation du flux média pour la VoIP
12
Les protocoles sécurisés
Le schéma qui suit décrit clairement son fonctionnement :
Fig. 3.7 – schéma du HMAC-SHA1 (référence : http ://www.research.avayalabs.com/techreport/ALR2004-001-paper.pdf)
Selon Avaya, ce choix souffre d’une vulnérabilité en terme de « Denial Of Service ». En effet, le Hash
est calculé à chaque fois qu’un paquet est reçu. En fait un calcul de 6 SHA1 est effectué pour un paquet
SRTP de 172 octets (codec G711 à 8kz) car le nombre de SHA1 = (172 * 8 )/ 512 + 3. Selon le document
(voir référence schéma), cela revient à 76 µs sur un processeur 60 Mhz. Donc si l’on envoie une rafale de
100 paquets vides mais avec un tag d’authentification, on occupe 7,6 secondes de temps processeur.
Pour contrer cela la société AVAYA a conçu une amélioration « propriétaire » de SRTP (pas de draft RFC
décrit à ce jour). appelée SRTP+. Cette implémentation se base sur génération du numéro de séquence
par une séquence pseudo-aléatoire seulement connue des deux extrémités. C’est en quelque sorte une
authentification implicite. Ainsi la validation de ce numéro étant faite avant l’authentification et étant
plus rapide, cela permet de se prémunir de ce type d’attaque.
Mini-projet
La sécurisation du flux média pour la VoIP
13
Les protocoles sécurisés
Mais rien n’est indiqué sur l’échange de cette séquence aléatoire, seul un détail précis de cet échange
validerait la non-faillibilité de leurs solutions. D’autre part, Avaya ne prend pas en compte la protection
contre les rejeux et la recherche du contexte de cryptographie qui apparaissent AVANT la validation de
l’authentification. Donc ce type d’attaque paraı̂t donc difficile à mettre en oeuvre en pratique.
Pour revenir à la fonction initiale, cette fonction HMAC permet donc à la fois de garder des performances
acceptables et de garantir le changement de fonction de hachage au cas ou le SHA1 serait devenu obsolète
(au niveau sécurité).
3.1.7
Gestion des clés
La gestion de clés permet d’établir le contexte de cryptographie. Trois standards émergent actuellement :
MIKEY (RFC 3830) , KEYMGT et SDMS. Nous décrirons MIKEY dans le prochain chapitre.
3.1.8
Bilan des protocoles SRTCP et SRTP
Cette étude légèrement détaillée permet de comprendre que SRTP n’est pas un simple protocole où l’on
ajouté du cryptage et de l’intégrité. En effet de nombreux mécanismes comme la protection contre le rejeu
et la dérivation des clés sont à l’avantage de cette boı̂te à outil. En outre, la force de cette conception est
la prise en compte des performances via l’adoption d’algorithmes optimisés tels que HMAC (RFC 2104)
ou AES mode f8.
3.2
3.2.1
La gestion des clés avec MIKEY (RFC 3830)
Généralités sur MIKEY
Le rôle de MIKEY est d’établir une session de sécurité (SA) pour un protocole de sécurité par la fourniture
d’une clé de cryptage de trafic (traffic-encrypting key (TEK)). Nous reviendrons par la suite sur le rôle
de cette clé.
Le design de MIKEY prend en compte la légèreté (consommation légère de bande passante, de calcul,
etc), la simplicité et une indépendance complète vis-à-vis des autres couches.
Enfin, il permet le tunneling et l’intégration dans les protocoles d’établissement de session tel SDP et
RTSP.
De plus le concept de ”Crypto Session Bundle (CSB)” permet à plusieurs instances d’avoir le même
générateur de clé ainsi que les mêmes paramètres de sécurité mais avec une clé de session différente.
Sa conception intègre les quatre scénarios suivants :
– peer-to-peer (unicast) : Ce scénario concerne un appel SIP de base. La sécurité est ici fournie soit par
un accord mutuel soit par une mise en place indépendante des deux parties dans les flux de sorties.
– Point à multipoint (multicast) : Seul l’émetteur met en place la sécurité.
– Multipoint à multipoint (décentralisé) : Chacun gère la sécurité de ses flux de sorties.
– Multipoint à multipoint (centralisé) : Les groupes les plus larges sont chargés de la sécurité.
3.2.2
Fonctionnement de MIKEY
MIKEY repose sur deux clés :
– La clé TGK : La clé TGK (TEK Generation Key (TGK)) correspond à une chaı̂ne de caractère partagée
entre les extrémités de la communication.
– La clé TEK : Cette clé correspond à la clé maı̂tre dans SRTP. Elle est soit utilisée directement ou
dérivée en plusieurs clés par le protocole de sécurité (SRTP). Elle est crée à partir de la clé TGK .
Ce schéma du fonctionnement de MIKEY présente le rôle de ces clés :
Mini-projet
La sécurisation du flux média pour la VoIP
14
Les protocoles sécurisés
Fig. 3.8 – Fonctionnement de MICKEY
3.2.3
Interaction entre MIKEY et SRTP
1. Lors de la réception d’un paquet SRTP, le triplet <SSRC, destination address, destination port>
est extrait et utilisé pour rechercher le contexte de cryptographie et donc l’association de sécurité.
2. Si un MKI est présent, il pointe alors directement vers les clés de la SA, sinon il faudra utiliser
l’index.
3. Si le type de clé envoyé à MIKEY est une TEK, alors elle est utilisée directement comme clé maı̂tre.
Sinon si c’est une TGK, alors MIKEY devra calculer la clé maı̂tre
3.2.4
Méthodes de transports et d’échange des clés
MIKEY définit trois méthodes pour transporter ou établir une clé TGK (voir ci dessus) : l’utilisation
d’une pre-shared key, d’un cryptage par clé publique ou d’un échange Diffie-Hellman (DH). Le TGK et
une valeur aléatoire RAND serviront à dériver la clé maı̂tre (TEK).
Avec le secret partagé le volume de données échangées sera léger. Cependant ce type d’échange n’est
réalisable qu’avec les scénarios en point à point. En effet il paraı̂t difficile de partager un même secret
avec plusieurs hôtes.
Pour les autres scénarios, la cryptographie à clé publique sera préférée. Mais la cryptographie a clé
publique consomme plus de ressource de calcul et repose sur une infrastructure PKI pour la distribution
de ces clés.
Enfin, DH consomme plus de ressources réseaux et de calcul que la clé publique et le secret à clé partagé.
Mais il a l’avantage de la flexibilité grâce à la possibilité d’implémenter différents groupes finis et de la
sécurité grâce à la perfect forward secrecy. C’est-à-dire qu’il est impossible de retrouver une autre clé de
TGK si une autre clé TGK est compromise.
Nous allons aborder le contenu des messages d’échanges sur ces trois méthodes. A savoir, elles ont toutes
deux types de messages :
– un message provenant de l’initiateur de la communication. Son rôle est le transport de un à plusieurs
TGK dans un KEMAC avec les paramètres de sécurités SP.
– un message de réponse à l’initiateur provenant du récepteur. Ce message valide l’authentification mutuelle en renvoyant des données transmises par l’initiateur dans un MAC.
Les champs suivants sont présents dans les échanges MIKEY quelque soit la méthode utilisée :
– HDR : en-tête général de MIKEY
– T : timestamp utilisé contre les attaques à rejeu
– RAND : chaı̂ne de caractère aléatoire utilisé dans la dérivation des clés. Par rapport à SRTP, ce champ
pourrait correspondre à la clé salt.
– Idi : identité de l’initiateur
Mini-projet
La sécurisation du flux média pour la VoIP
15
Les protocoles sécurisés
– Idr : identité du répondeur
– SP : politique de sécurité. Elle définit les différents paramètres tels que les algorithmes de cryptage,
d’authentification. Enfin elle indique les services de sécurité à prendre en compte
– V : MAC du message du récepteur
Méthodes de transport et d’échange des clés
La clé partagée sert à dériver les clés de cryptage encr key et la clé d’authentification auth key du message
MIKEY.
Fig. 3.9 – Échange à clé partagée
Le champ KEMAC (Key data transport payload) sert à transporter une ou plusieurs clés TGK. Dans ce
cas KEMAC = E(encr key, TGK) || MAC.
Échanges par clés publiques
La clé publique du récepteur sert à crypter une clé dite de clé d’enveloppe (env key). Cette clé enveloppe
(env key) permet de dériver la clé de cryptage utilisée dans le KEMAC et la clé d’authentification utilisée
dans le MAC. La clé d’enveloppe est donc comparable au secret partagé.
La signature du message par la clé privé de l’initiateur permet une authentification mutuelle des deux
parties.
Enfin le champs CRASH permet d’indiquer au récepteur la clé publique à utiliser.
Fig. 3.10 – Échange par clés publiques
– PKE : ce champ contient la clé enveloppe (env key) cryptée par la clé publique du destinataire tel
que : PKE = E(PKr, env key)
– KEMAC : ce champ transporte une ou plusieurs clés comme les clés TGK en les cryptant avec la clé
encr key dérivée de la clé env key (clé d’envellope).
Il est généré de la façon suivante : KEMAC = E(encr key, IDi || TGK) || MAC
– SIGNi : C’est la signature couvrant l’ensemble du message de l’initiateur
– CHASH (Cert Hash Payload) : Ce champ contient le hash de la clé publique du répondeur. Cette
partie est utilisée lorsque le destinataire possède plusieurs clés publiques.
Mini-projet
La sécurisation du flux média pour la VoIP
16
Les protocoles sécurisés
Échange Diffie-Hellman
L’objectif de cet échange est de créer une clé Dh qui sera utilisée comme clé TGK. L’avantage de cet
échange est que l’initiateur n’ a pas besoin du certificat du récepteur avant l’échange.
Cependant comme TLS ou SSL, l’authentification requiert une validation des certificats par la racine. Si ce
n’est pas fait, toute l’authentification peut être compromise. Une approche d’attaque de ce type d’échange
serait la compromission des racines de certifications ou l’envoi de fausses informations concernant ces
racines pour que l’attaquant s’autoproclame racine.
Voici les étapes de cet échange :
1. Les paramètres de groupes G (groupe) et g (générateur) sont choisis par l’initiateur. Le groupe
utilisé est de type OAKLEY 5 d’une taille de 1536 bits
2. Chaque partie génère un secret aléatoire xi et xr.
3. Les parties s’échangent les valeurs Dh telles que : Dhi = g xi et Dhr = g xr
4. La clé TGK est calculée sur les deux extrémités : TGK = g xi∗xr
Fig. 3.11 – Échange Diffie-Hellman
– CERTi : certificat de l’initiateur permettant au récepteur de valider la signature de message de l’émetteur.
– CERTr : certificat du récepteur permettant à l’initiateur de valider la signature du récepteur.
– Dhi : valeur DH tel que Dhi = g xi
– Dhr : valeur DH tel que Dhr = g xi
– SIGNi :signature du message de l’initiateur
– SIGNr :signature du message du récepteur
On peut remarquer l’absence du champ KEMAC grâce à la génération de TGK différent à chaque échange.
Cependant l’envoi des données Dh et des certificats alourdit l’échange.
Conclusion sur les échanges de clés
MIKEY offre ainsi trois méthodes correspondant à chaque fois à des besoins spécifiques. On remarque
bien que le nombre de données échangées en clé partagée est plus léger que par les clés publiques ou
Diffie-Hellman.
3.2.5
Gestion des autorisations
Deux modèles permettent d’effectuer des décisions d’autorisation selon le scénario :
– Configuration point à point spécifique : L’utilisateur configure son application pour un utilisateur
spécifique. Dans le cas de la clé partagée, c’est la meilleur solution car cette fonction implique une
autorisation implicite. Pour les clés publiques, cela impose un échange des clés publiques via un autre
canal de communication.
– Configuration par racine de confiance : L’utilisateur accepte tous les autres utilisateurs ayant un certificat signé d’une autorité de confiance spécifique. Pour cela chaque participant doit mettre en place
une ou plusieurs autorités de certification et être capable de valider des certificats.
Dans la pratique ces solutions sont utilisées simultanément. Mais on remarque bien la complexité de la
gestion des autorisations.
Mini-projet
La sécurisation du flux média pour la VoIP
17
Les protocoles sécurisés
3.2.6
Conclusion sur MIKEY
Cependant les clés publiques et Diffie Hellman imposent la mise en place d’une PKI. Sachant que la PKI
devra être sûre afin ne pas compromettre le service d’authentification et donc toute la sécurité.
Pour terminer sur l’autorisation, il paraı̂t difficile en terme de coût humain voire matériel que toutes
les entités deviennent chacune autorité de certification. Ainsi à titre personnelle, il sera nécessaire les
hash des clés publiques autorisées soient stockées sur chaque terminal SIP. Ceci impose bien entendu des
procédures de mises à jour et donc une complexité supplémentaire.
3.3
IPSEC
Un moyen de sécuriser la VOIP est de protéger les données elles-mêmes. Une solution est donc de chiffrer
les paquets en utilisant IPsec. Ainsi toute personne, autorisée ou non, qui intercepte le trafic de VOIP ne
pourra lire le contenu chiffré de ces paquets.
3.3.1
VOIPsec
IPsec est un des protocoles les plus utilisés pour faire du Tunneling VPN à travers Internet. Il y a deux
protocoles de base définis pour IPsec : ESP (Encapsulating Security Payload) et AH (Authentication Header). Ces deux modèles fournissent les services de sécurité d’intégrité, d’authentification et d’anti-rejeu.
Concernant la VOIP, ESP se différencie de AH par un temps de latence de chiffrement et déchiffrement
des données et une authentification plus étroite, qui normalement ne protège pas l’en-tête IP au dessus
de l’en-tête ESP, bien que IKE peut être utilisé pour négocier l’association de sécurité (SA) incluant des
clés secrètes symétriques. Dans ce cas, les adresses dans l’en-tête (en mode transport) ou dans la nouvelle
en-tête (en mode tunnel) sont indirectement protégées puisque seulement les entités ayant négocié la
SA peut chiffrer/déchiffrer ou authentifier les paquets. IPsec peut fonctionner en deux modes : le mode
transport et le mode tunnel. Le mode transport permet de chiffrer les données et l’en-tête associé dans
le paquet IP. Ainsi l’en-tête IP et le nouvel en-tête IPsec peuvent être lus, ce qui permet à un pirate
interceptant le trafic, non pas de déterminer le contenu mais de connaı̂tre la source et la destination finale
du paquet. Le mode tunnel permet de chiffrer le datagramme IP entier et de le placer dans un nouveau
paquet IP. Ainsi le payload et l’en-tête IP original sont chiffrés, de sorte que si un pirate intercepte le
trafic, il est incapable de lire le contenu et également de connaı̂tre la source et le destinataire final.
Fig. 3.12 – IPsec en modes transport et tunnel
La facilité d’intercepter des données en capturant les paquets d’un réseau IP font du chiffrage de données
Mini-projet
La sécurisation du flux média pour la VoIP
18
Les protocoles sécurisés
une nécessité pour la voix sur IP. De plus il est aussi important de protéger ce qu’une personne dit que
de protéger à qui cela est adressé. C’est pourquoi IPsec peut être utilisé pour atteindre ces objectifs
de confidentialité dans la mesure où le protocole ESP en mode tunnel est utilisé comme le décrit le
paragraphe précédent, puisque l’identité des différentes entités communiquant entre elles et les données
transitant sont protégées. En outre, l’intégration de IPsec dans IPv6 facilitera la possibilité de chiffrement
(même s’il existe d’autres moyens de sécuriser les données à la couche applicative). Ainsi IPsec permet de
réduire les différents risques d’attaques du type man-in-the-middle, ou capture de paquets sur un réseau
par exemple.
3.3.2
Problèmes avec IPsec
Toutefois si IPsec semble un moyen fiable et robuste pour protéger les données et d’authentifier l’émetteur,
l’utilisation d’un tel protocole peut être remis en question. Contrairement à un trafic de données normal,
le trafic VOIP nécessite une certaine qualité de service (QoS) pour ne pas dégrader le qualité de la voix,
notamment au niveau du temps de latence, du jitter (variation dans le délai de livraison des paquets), ou
de la perte des paquets.
Le délai maximum acceptable pour la transmission d’un paquet pour une qualité de voix optimale est
de 150ms, qui peut être étendu à 200 ms dans le cas de communications chiffrées. Cela signifie qu’après
la numérisation du signal, le temps pour coder le signal (utilisant certains standards comme G.729 ou
G.723 par exemple), pour le fragmenter en paquets et l’encapsuler dans des paquets IP, ainsi que le temps
de routage et la reconstruction du paquet original par le destinataire doit être au maximum de 150 ms.
Pour répondre à ces contraintes les paquets voix sont de petites tailles (entre 10 et 50 octets de payload).
Ainsi selon le codec utilisé, la numérisation peut durer de 0.75 à 30ms, le délai dans les processus de
files d’attentes (temps passé par un paquet dans les buffers des routeurs lors du routage) peut ajouter un
retard de 30 ms et le temps de variation lors du buffering du destinataire un retard de 40 à 70 ms, et cela
sans compter les délais induits par IPsec, car de nombreuses contraintes doivent être prises en compte.
Un des principaux problèmes induits par IPsec est le temps de chiffrement et déchiffrement. Selon les
algorithmes utilisés, les temps de calculs peuvent être défavorables à la VOIP. Une étude réalisée par
l’université de Milan montre que, comme on peut s’en douter, que plus l’algorithme est « léger », moins les
délais de chiffrement/déchiffrement sont importants, comme le décrit le schéma suivant. Il est important
de noter que les disparités entre les différents algorithmes peuvent être significatives : environ 500 paquets
par seconde entre le DES et le 3DES+SHA-1 pour d’un trafic important. Un autre problème de sécurité
apparait alors : plus l’algorithme est « léger », plus il sera facilement « crackable ». Il faut alors faire face
à un dilemme entre la sécurité et la qualité de la voix.
Mini-projet
La sécurisation du flux média pour la VoIP
19
Les protocoles sécurisés
Fig. 3.13 – Comparaison des nombres de paquets par seconde (pps) en sortie d’un composant cryptographique en fonction du trafic pour les différents algorithmes de chiffrement et/ou authentification
Un autre point, un peu plus problématique concernant la VOIP, est la gestion des files d’attente pour ces
processus de chiffrement et déchiffrement. Si les routeurs, firewalls ou autres gateways permettent de faire
de la QoS pour déterminer la priorité des paquets, les composants cryptographiques (crypto-engine) quant
à eux ne permettent pas une telle gestion, utilisant le simple standard FIFO. Le nombre de petits paquets
étant assez important, les performances sont alors réduites considérablement puisque la saturation de la
file d’attente peut être atteinte. A cela s’ajoute le fait que plus les paquets sont gros, plus les délais sont
importants.
Enfin, l’utilisation de IPsec augmente la taille du paquet, notamment à cause l’en-tête ESP et les nouveaux en-têtes du mode tunnel ajoutés à chaque paquet transmis. Par conséquent, cela augmente le
ratio des tailles de l’en-tête par rapport au payload, réduisant alors considérablement l’efficacité de la
bande passante. De plus un délai supplémentaire est introduit pour la construction des différents en-têtes
ajoutés.
3.3.3
Conclusion
Si IPsec apporte un certain degré de sécurité recherché, cela induit également des réductions de performances au niveau de la qualité de la voix. Néanmoins, on peut espérer que d’ici quelques temps, les
performances seront améliorées. En effet on peut s’attendre à une diminution des temps de traitement de
chiffrement et déchiffrement avec le développement croissant des technologies. Une solution supplémentaire au problème de files d’attentes des processus cryptographiques serait l’utilisation de routeurs gérant
la QoS avant la phase de chiffrement. Une autre approche aux problèmes de QoS serait la compression
de la taille des paquets, notamment aux niveaux des en-têtes, solution détaillée plus bas.
3.4
cIPsec
Nous avons vu précédemment que IPsec introduisait une augmentation de la taille des paquets à cause des
rajouts des différents en-têtes. L’idée de cIPsec, basée sur cRTP est de compresser les en-têtes des paquets
IP, UDP et RTP, dont les valeurs de certains champs restent constantes. De plus, certaines informations
présentes dans d’autres champs sont également présentes dans les en-têtes externes. Cette compression
permet alors de réduire de 4 octets pour la plupart des paquets IP, UDP et RTP.
Deux modules sont alors ajoutés : un module de compression, permettant la compression du paquet
Mini-projet
La sécurisation du flux média pour la VoIP
20
Les protocoles sécurisés
lors de son émission par l’émetteur et un module de décompression, permettant de reconstruire l’en-tête
original lors de sa réception par le destinataire.
3.4.1
Description cIPsec
Différentes informations partagées et le contexte de la session doivent être maintenus entre les deux entités
communicantes pour le fonctionnement de cIPsec. Ces informations sont utilisées par le destinataire pour
reconstruire les en-têtes originaux qui ont été compressés. Le contexte de la session est défini à la fois par
les adresses IP source et destinataire, par les ports UDP source et destinataire et le champ SSRC de RTP.
Les informations partagées pour chaque contexte de session et stockées par l’émetteur et le destinataire
sont les suivantes :
– les en-têtes complets des paquets IP, UDP et RTP des derniers paquets envoyés par le module de
compression ou reçus par le module de décompression.
– la dernière valeur du numéro de séquence de 4 bits, utilisé pour détecter la perte des paquets.
Le Session Context ID (CID) permet d’identifier la communication peer-to-peer. Ce champ de 16 bits
permet de maintenir jusqu’à 65536 appels entre les deux entités.
Le Link Sequence contient les 8 bits de poids faible du numéro de séquence de l’en-tête RTP et permet
de garder la trace de 256 paquets perdus consécutivement.
Le bit de Séquence (S) notifie la présence des bits de séquences RTP.
Le bit de Checksum (C) notifie la présence des bits de checksum UDP.
L’option UDP Checksum contient la valeur du checksum, parfois nécessaire pour garantir l’intégrité des
données de bout en bout. Si le protocole ESP utilise un algorithme d’authentification, cette option peut
être désactivée.
L’option RTP Sequence représente le bit de séquence RTP utilisé pour la synchronisation du contexte.
Le bit de Retransmission (R) indique s’il est nécessaire de retransmettre un paquet.
3.4.2
Conclusion
Le problème principal avec ce type de compression est lié à l’occurrence d’erreurs de transmission, dues
aux pertes de paquets ou au vérification du CRC ou du checksum dans les en-têtes IP et UDP. Or
pour la VOIP, la correction d’erreur induit un délai trop important, il est donc nécessaire de faire une
retransmission, ce qui est défavorable à la VOIP.
L’étude de cIPsec reste expérimentale mais les performances mesurées par une étude de l’université de
Milan montre quand même que les délais de transmission sont diminués (de 10 ms pour deux liens d’accès
64 Kbps), que les délais de chiffrement et déchiffrement sont réduits (de 1,8 à 6,5
3.5
DTLS
TLS est le protocole le plus répandu pour sécuriser le trafic réseau (HTTP, POP, IMAP).
Toutefois les applications sont limitées au protocole TCP, ce qui est problématique pour les protocoles
comme SIP, RTP ou MGCP, basé sur le protocole UDP. Ainsi le protocole DTLS (« Datagram TLS
»), version modifiée de TLS, a pour but de palier à cette limitation. Les avantages sont clairs : tout
d’abord, DTLS reste proche de TLS, ce qui permet de réutiliser les implémentations et infrastructures
des protocoles préexistants. Ensuite DTLS se base, comme TLS, sur une couche de sécurité générique, ce
qui facilite l’adaptation des protocoles pour l’utiliser.
Mini-projet
La sécurisation du flux média pour la VoIP
21
Les protocoles sécurisés
3.5.1
Rappel TLS
TLS assure les services de sécurité suivant : authentification du serveur, confidentialité et intégrité de la
communication. Sa structure est décrite par le schéma suivant :
Fig. 3.14 – Structure de TLS
Le « record layer » est la couche qui assure le transport des données basé directement sur TCP et peut
transporter 4 types de payload :
– Les messages Handshake utilisés pour la négociation et l’établissement des clés.
– Les messages ChangeCipherSpec, qui font partie des messages Handshake mais qui sont techniquement
séparés.
– Les messages d’alertes utilisés en cas d’erreur.
– Les données de la couche applicative.
DTLS est donc basé sur cette structure avec quelques modifications décrites dans la partie suivante.
3.5.2
Description DTLS
DTLS réemploie la plupart des éléments constituant le protocole TLS avec quelques changements pour
le fonctionnement avec le mode UDP.
Record Layer :
Comme le TLS, toutes les données DTLS sont transportées par la couche « record ». Pour éviter la
fragmentation, le DTLS « record » sera formé de telle sorte qu’il soit inclus dans un seul datagramme.
En effet cela permet d’éviter de mettre en buffer des « records » partiels, ainsi un gain de mémoire
sera apporté, permettant de diminuer aussi les risques d’attaques par déni de services. De plus si des
datagrammes se perdent contenant des « records » partiels, les autres fragments deviennent inutilisables.
Ainsi la longueur maximale du payload sera plus petite que celle du TLS. Comparé au TLS, un champ
epoch et un champ sequence number sont ajoutés à la structure du record layer, comme le décrit le
schéma ci-dessous (les nouveaux champs sont encadrés). Le premier sert à résoudre l’ambiguı̈té qu’il peut
y avoir quand des données se perdent pendant une session de renégociation (pour différencier les messages
ChangeCipherSpec et les données par exemple), tandis que le second sert au reséquencement.
Fig. 3.15 – Structure du DTLS record
Mini-projet
La sécurisation du flux média pour la VoIP
22
Les protocoles sécurisés
Modes de Chiffrement :
DTLS est compatible avec le mode de Chiffrement par Bloc (CBC) permettant d’utiliser du 3DES ou
AES. En effet contrairement aux modes de chiffrement de TLS (1.0), il n’est pas nécessaire de traiter les
différents « records » dans l’ordre et sans perte à l’opposé de RC4 par exemple. Chaque record peut être
déchiffré séparément avec un vecteur d’initialisation explicite.
Protocole Handshake :
DTLS fonctionnant en mode UDP est alors susceptible à des attaques de type DoS. En effet un pirate peut
se faire passer pour le client envoyant une requête ClientHello à laquelle le serveur renvoie un message de
Certificat beaucoup plus large à la victime. Pour éviter cela, un système d’échange de cookie est ajouté.
Un champ cookie est donc ajouté à la structure de la requête ClientHello envoyé au serveur qui répond
par une requête HelloVerifyRequest afin de s’assurer de la demande coté client. Le client doit ensuite
rejouer ce cookie pour montrer qu’il est capable de recevoir des paquets. La phase réelle de négociation
peut alors commencer. La figure ci-dessous représente les différentes phases décrites précédemment (les
requêtes encadrées sont les requêtes modifiées ou ajoutées par rapport à TLS).
Fig. 3.16 – Le protocole DTLS
Cet échange de cookie est utilisé pour certains protocoles comme Photuris et est décrit dans la RFC 2522.
Fig. 3.17 – Structure des messages ClientHello et HelloVerifyRequest
Timer et retransmission :
Pour que la phase de négociation précédente se déroule sans problème, il faut que tous les messages
Handshake soient transmis. Toutefois, certains messages peuvent se perdre, mal séquencé, ou encore trop
large pour être inclus dans un seul « record », nécessitant une fragmentation en plusieurs « records ».
C’est pourquoi un système de retransmission est nécessaire, utilisant un seul timer pour le client et le
serveur. Tant qu’aucune réponse n’a été donnée, le message est retransmis. La structure des messages
Handshake est alors modifié comme indiquée ci-dessous afin de permettre cette fragmentation et réordonner correctement les messages, en définissant un séquencement des messages, un offset et une longueur
de fragment.
Mini-projet
La sécurisation du flux média pour la VoIP
23
Les protocoles sécurisés
Fig. 3.18 – Structure des messages Handshake
3.5.3
Conclusion
Si la modification des différentes structures augmente la taille des paquets DTLS, elle n’engendre pas
une augmentation significative par rapport à TLS et les temps de latence restent que très légèrement
supérieurs, n’affectant pas la qualité de la voix.
Cependant DTLS reste à l’état expérimental et n’est pas encore standardisé mais pourrait devenir un
substitut potentiel de SRTP. L’avantage de DTLS est qu’il peut être utilisé pour sécuriser d’autres
protocoles que RTP (contrairement à SRTP) et qu’il peut établir ses propres canaux de communication
(ne dépendant pas de SIP par ex.).
3.6
Cutlass
Référence : http://www.synacklabs.net/projects/cutlass/
L’objectif de Cutlass est d’être un protocole sécurisé s’adaptant à différents types de trafics tel que :
Voix sur ip, le transfert de fichier et de textes. Ce projet est une initiative individuelle et il est donc peu
probable que cela devienne un standard.
Voici ses caractéristiques :
– basé sur UDP
– échange de clé Diffie hellman uniquement
– cryptage AES 256 bit mode compteur
– HMAC : HMAC-SHA1
– signature RSA
– pas de protection de rejeu implémenté à ce jour
– Un seul codec voix : Speex à 8khz
Ce protocole est donc moins flexible que SRTP-MIKEY en terme de choix de mode de cryptage et
d’échange de clés. Mais à priori, il semble qu’il est un avenir car une société inconnu finance ce projet.
Mini-projet
La sécurisation du flux média pour la VoIP
24
Conclusion
Chapitre 4
Conclusion
Le choix des protocoles est donc large et devra être effectuer en fonction des critères suivants :
– coût : cela dépend du constructeur et de l’existant.
– impact sur les communications en terme de performance
– bande passante nécessaire
– robustesse du protocole
– support de la confidentialité, authentification et protection contre le rejeu
– flexibilité du protocole sur le choix des algorithmes de cryptographie
– adoption par le publique : la multitude de choix sera synonyme d’hétérogénéité ce qui s’avère handicapant. Le choix devra donc sur les solutions les plus déployées.
Actuellement, quelques constructeurs proposent du SRTP comme Cisco. Mais aucune étude n’indique la
possibilité d’interconnexion de constructeurs différents et le support minutieux de la RFC 3711. Malgré
une réduction de la qualité de la voix, on peut donc penser que la solution d’IPSEC serait la plus
appropriée actuellement. Cependant, il est nécessaire de faire une veille permanente car l’adaptation de
SRTP par les constructeurs et la standardisation du DTLS pourrait bouleverser ce choix.
Mini-projet
La sécurisation du flux média pour la VoIP
25
Sécurité des Systèmes et des Réseaux
Bibliographie
[RFC-RTP] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, RTP, RFC 1889, Janvier 1996
[RFC-RTP] H. Schulzrinne, RTP Profile for Audio and Video Conferences with Minimal Control, RFC
1890, Janvier 1996
[Internet RTP links] http ://www.topology.org/comms/rtp.html
[RTP Security] http ://www.tml.hut.fi/Opinnot/Tik-110.501/2000/papers/hallivuori.pdf
[Sécurité VOIP] http ://www.iaik.tugraz.at/teaching/11 diplomarbeiten/archive/thalhammer.pdf
[SRTP] http ://www.tml.hut.fi/Opinnot/Tik-110.501/2000/papers/hallivuori.pdf
[RFC-SRTP] M. Baugher, D. McGrew, M. Naslund, E. Carrara, K. Norrman, SRTP, RFC 3711, Mars
2004
[RFC-MIKEY] J. Arkko, E. Carrara, F. Lindholm, M. Naslund, K. Norrman, MIKEY, RFC 3830, Août
2004
[SRTP+] http ://www.research.avayalabs.com/techreport/ALR-2004-001-paper.pdf
[Cutlass] http ://cutlass.info/
[cIPsec] http ://www.acsac.org/2002/papers/92.pdf
[Cisco VOIPsec] http ://www.cisco.com/networkers/nw00/pres/2403.pdf
[DTLS] http ://crypto.stanford.edu/ nagendra/papers/dtls.pdf
[RFC cRTP] http ://www.faqs.org/rfcs/rfc3545.html
Mini-projet
La sécurisation du flux média pour la VoIP