Vous êtes sur la page 1sur 61

Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Dédicaces

Je dédie ce travail

A mon père Mahamat Saleh Abdoulaye et à ma mère Radia Mahamat Taher, pour vos
sacrifices, votre soutien et vos encouragements,

A mes chers frères et sœurs,

A mon oncle Moustapha Hamidi, ma tante Fozia et leurs enfants

A katakoly, même si ce n’est plus ce que c’était

A mes amis et à tous ceux que j’aime

A toi, D…

Hamid Mahamat Abdoulaye – Master 1 TDSI 1


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Remerciements

Je remercie Dieu tout puissant pour tous ses bienfaits et pour la santé qu’Il m’a accordé.

Je remercie particulièrement Docteur Abdoul Aziz Ciss, mon encadreur qui n’a pas ménagé
ses efforts tout le long de ce travail, et qui m’a permis de le réaliser.

Mes remerciements iront aussi au corps professoral de l’UCAD, particulièrement ceux du


Master Transmission de Données et Securité Informatique pour la qualité et la richesse de
l’enseignement qu’ils ont bien voulu me prodiguer durant mes études afin de me donner une
formation efficace.

Je remercie Mr Diankha, Mr Gueye et Mr Sow ainsi que toute l’administration, pour les
programmes de qualité et l’encadrement pédagogique qu’ils nous ont offerts,

Merci à mes camarades de la promotion et mes amis, qui ont contribué plus qu’ils ne le
croient.

Hamid Mahamat Abdoulaye – Master 1 TDSI 2


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Glossaire

AES = Advanced Encryption Standard


ARP = Address Resolution Protocol
DHCP = Dynamic Host Configuration
DNS = Domain Name System
DoS = Deny of Service
Flooding = inondation
HMAC = Hash-based Message Authentication Code
IAX = Inter-Asterisk eXchange
IDS: Intrusion Detection System
IETF = Internet Engineering Task Force
IP = Internet Protocol
IPSec = Internet Protocol Security
IPS: Intrusion Detection System
LAN = Local Area Network
MD5 = Message Digest 5
MITM = Man In The Middle
NAT = Network Address Translation
PABX = Private Automatic Branch
PSTN = Public Switched Telephone
RSA = Rivest Shamir Adleman
RTCP = Real-time Transport Control Protocol
RTP = Real-Time Transport Protocol
SHA= Secure Hash Algorithm
SIP = Session Initiation Protocol
SRTP = Secure Real-time Transport Protocol
SSL = Secure Socket Layer
TCP = Transport Control Protocol
TLS = Transport Layer Security
UDP = User Datagram Protocol
VLAN = Virtual LAN
VoIP = Voice over Internet Protocol
VPN = Virtual Private Network

Hamid Mahamat Abdoulaye – Master 1 TDSI 3


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Liste de figures :
Figure 1 Processus d’appel entre deux clients SIP .................................................................................................. 9
Figure 2 Concept de la numérisation de la voix .................................................................................................... 11
Figure 3 Communication pc to pc ......................................................................................................................... 13
Figure 4 Communication pc to phone ................................................................................................................... 13
Figure 5 Communication phone to phone ............................................................................................................. 13
Figure 6 Architecture VoIP classique ................................................................................................................... 15
Figure 7Architecture VoIP classique .................................................................................................................... 15
Figure 8 Chiffrement Déchiffrement ..................................................................................................................... 17
Figure 9 Etapes d'un audit VoIP............................................................................................................................ 23
Figure 10 Diagramme du réseau ........................................................................................................................... 24
Figure 11Vulnérabilités de la VoIP ....................................................................................................................... 31
Figure 12 Attaque de récupération d'informations ................................................................................................ 32
Figure 13 Attaque Man In The Middle ................................................................................................................. 33
Figure 14 Attaque sniffing et capture .................................................................................................................... 33
Figure 15 Attaque écoute clandestine et enregistrement ....................................................................................... 34
Figure 16 Attaque DoS 1....................................................................................................................................... 35
Figure 17 Attaque DoS 2....................................................................................................................................... 35
Figure 18 Fonctionnement SIP .............................................................................................................................. 39
Figure 19 Fonctionnement TLS ............................................................................................................................ 41
Figure 20 Fonctionnement SRTP .......................................................................................................................... 44
Figure 21 Compilation sous C# ............................................................................................................................. 45
Figure 22 Comparatif SDK VoIP .......................................................................................................................... 47
Figure 23 Présentation Visual Studio .................................................................................................................... 49
Figure 24 Identification des boutons ..................................................................................................................... 49
Figure 25 Configuration TLS asterisk 1 (certificat serveur) ................................................................................. 54
Figure 26 Configuration TLS asterisk 2 (certificat client) .................................................................................... 55
Figure 27 Configuration TLS asterisk 3 ................................................................................................................ 55
Figure 28 Configuration sip.conf .......................................................................................................................... 56
Figure 29 Test d'enregistrement ............................................................................................................................ 56
Figure 30 Test d'enregistrement 2 ......................................................................................................................... 57
Figure 31 Test émission appel ............................................................................................................................... 58
Figure 32 Test appel établi .................................................................................................................................... 58
Figure 33 Test appel entrant .................................................................................................................................. 59
Figure 34 test écoute clandestine avec SRTP ........................................................................................................ 59

Hamid Mahamat Abdoulaye – Master 1 TDSI 4


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Table des matières

Dédicaces ................................................................................................................................... 1
Remerciements ........................................................................................................................... 2
Liste de figures : ......................................................................................................................... 4
Table des matières ...................................................................................................................... 5
Problématique............................................................................................................................. 6
I. Introduction générale .......................................................................................................... 8
1. VoIP (Voice over Internet Protocole) ............................................................................. 8
1.a Protocoles de signalisation ............................................................................................ 8
1.b Protocoles de transport ................................................................................................ 10
1.c Codecs ......................................................................................................................... 11
1.d Fonctionnement........................................................................................................... 11
1.e Architecture ................................................................................................................. 12
1.f Equipements ................................................................................................................ 14
2. Cryptographie ................................................................................................................ 16
2.a Les systèmes de chiffrements symétriques ................................................................. 18
2.b Les systèmes de chiffrements symétriques ................................................................. 19
2.c Les algorithmes de hachage ........................................................................................ 20
II. Audit Technique VoIP .................................................................................................. 22
Introduction à l’Audit ........................................................................................................... 22
1. Caractérisation du système ............................................................................................ 24
2. Analyse des menaces ..................................................................................................... 25
Interruption de service ...................................................................................................... 26
Ecoute clandestine (eavesdropping).................................................................................. 26
Interception et modification .............................................................................................. 27
Abus de services ............................................................................................................... 27
Détournements .................................................................................................................. 27
Capture de paquets ............................................................................................................ 27
Intrusion physique ............................................................................................................. 27
SPAM ................................................................................................................................ 27
3. Analyse des contrôles .................................................................................................... 28
4. Analyses des vulnérabilités ........................................................................................... 28
Outils ................................................................................................................................. 28

Hamid Mahamat Abdoulaye – Master 1 TDSI 5


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

SIPdump ............................................................................................................................ 29
SIPcrack : .......................................................................................................................... 29
SIPVicious ........................................................................................................................ 29
Tests de pénétration : ........................................................................................................ 31
Capture de paquet ................................................................................................................. 33
Ecoute clandestine ................................................................................................................ 34
Capture et cracking de comptes SIP ..................................................................................... 34
Déni de service ..................................................................................................................... 35
Liste des vulnérabilités présentes et non couvertes par les contrôles. .............................. 36
5. Analyses des risques ...................................................................................................... 36
6. Recommandations ......................................................................................................... 37
III. Implementation Client SIP Sécurisé ............................................................................. 39
Introduction .......................................................................................................................... 39
TLS ....................................................................................................................................... 40
SRTP ..................................................................................................................................... 43
C#.......................................................................................................................................... 44
1. Fonctionnement ............................................................................................................. 48
2. Implémentation.............................................................................................................. 48
3. Tests .............................................................................................................................. 56
Conclusion ................................................................................................................................ 60
Bibliographie ............................................................................................................................ 61
Webographie ............................................................................................................................ 61

Problématique

Hamid Mahamat Abdoulaye – Master 1 TDSI 6


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Comme tout service lié à au réseau IP, la VoIP peut être sensible à des attaques pouvant
causer des pertes pour une entreprise. L’utilisation de cette technologie est en pleine
expansion, vu les chiffres suivant :

- En 2005, les services de téléphonie sur internet (VoIP) ont attiré 25 millions d’abonnés dans
le monde, selon l'Institut de l'audiovisuel et des télécoms en Europe (Idate). Soit un triplement
de la base d'abonnés par rapport à 2004.

- In-Sat a évalué dans un rapport récent que le nombre total des utilisateurs VoIP mobile
atteindra 288 millions à la fin de cette année

- Juniper Research affirme dans une autre étude que ce chiffre atteindra le milliard

- La contribution de la VoIP pour le développement des entreprises risque d’augmenter de


15% par an jusqu’en 2017 (Infonetics Research)

- Infonetics prédit également que le marché de la VoIP pourrait valoir 74,5 milliards en 2015.

Au vu de ces chiffres qui interpellent, il est d’autant plus important de penser à la sécurité des
réseaux utilisant cette technologie.

L’audit technique de la securité entre en jeu pour répondre aux questions principales :

- Le réseau VoIP est-il vulnérable ?


- Les systèmes de protection actuellement en place sont-ils efficaces ?
- La politique de securité doit-elle évoluer ?
- En cas de risques majeurs, que faire pour sécuriser le réseau ?

Hamid Mahamat Abdoulaye – Master 1 TDSI 7


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

I. Introduction générale

1. VoIP (Voice over Internet Protocole)

L’objectif de la Voix sur IP est d’appliquer à la voix le même traitement que les autres
types de données circulant sur Internet. Grâce au protocole IP, des paquets de données,
constitués de la voix numérisée, y sont transportés. En effet, à force de transférer des fichiers
d’information en temps de plus en plus réel, les utilisateurs d’Internet en vinrent à transférer
de la voix, en temps suffisamment réel pour faire compétition au téléphone. Les principales
caractéristiques de cette technologie sont ses protocoles de signalisation et de transport, les
codes qu’ils utilisent ainsi que ses équipements particuliers.

1.a Protocoles de signalisation

Un protocole est un ensemble des règles permettant les communications entre


différentes couches. Ceux dit de signalisation s’occupent des informations autour du contrôle
d’un appel.

SIP

SIP est un protocole de signalisation appartenant à la couche application du modèle


OSI. Son rôle est d’ouvrir, modifier et libérer les sessions. Le proxy SIP est un serveur qui
sert d’intermédiaire entre des utilisateurs qui ne connaissent pas leurs adresses respectives,
tandis que le Registrar est le serveur qui gère les requêtes REGISTER envoyées par les
utilisateurs pour indiquer leurs positions.

Le protocole SIP repose sur un modèle Requête/Réponse. L’aboutissement d’un appel


s’effectue de la manière suivante : un utilisateur veut entrer en communication avec un autre
via SIP. L’application utilisée par cet utilisateur fait donc appel au protocole en précisant la
nature des échanges. SIP choisit l’un des protocoles dans l’architecture en couche (le mieux
adapté à l’échange) et définit le nombre de session à ouvrir.

On distingue 3 modes d’ouverture de sessions :

Mode Point à point : on parle dans ce cas-là « d’unicast » qui correspond à la communication
entre 2 machines

Mode diffusif : on parle dans ce cas-là de « multicast » (plusieurs utilisateurs via une unité de
contrôle MCU – Multipoint Control Unit)

Hamid Mahamat Abdoulaye – Master 1 TDSI 8


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Combinatoire : combine les deux modes précédents. Plusieurs utilisateurs interconnectés en


multicast via un réseau à maillage complet de connexion

Différentes méthodes sont utilisées pour gérer une conversation téléphonique :

• REGISTER : enregistrement du téléphone IP sur son proxy SIP,

• INVITE : demande l’établissement d’une session avec le téléphone appelé,

• RING : l’établissement de l’appel a été fait, le téléphone sonne.

• ACK : Confirmation de l’établissement de la session entre les deux IP Phones suite au


décrochage du poste appelé. Les deux IP Phones sont désormais en point à point à ce stade et
utilisent le protocole RTP pour transférer la voix.

• BYE : L’un des interlocuteurs raccroche et déclenche l’envoie de cette information au


deuxième IP Phone (cette méthode est la source d’une attaque sur le protocole SIP : le reset
perpétuelle d’une conversation).

Figure 1 Processus d’appel entre deux clients SIP

H.323

Hamid Mahamat Abdoulaye – Master 1 TDSI 9


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

H.323 est un protocole de communication englobant un ensemble de normes utilisées pour


l’envoi de données audio et vidéo sur Internet. C'est une norme stabilisée avec de très
nombreux produits sur le marché (terminaux, gatekeeper, Gateway, logiciels). IL est basé sur
deux importantes parties qui sont d’une part les codecs et d’autre part le protocole de contrôle
H.225 pour la prise en charge des signaux d’appels et le protocole de signalisation H.245 qui
contrôle les medias.

IAX (Inter-Asterisk eXchange)

La version 1 de ce protocole est de moins en moins utilisée, tandis qu’IAX2 connait du


succès : en effet, il utilise un port UDP unique (4569) qui ne connait pas de problème avec le
NAT, contrairement au protocole SIP. Il peut également contrôler et réguler la transmission
de flux multimédia avec un débit plus faible.

MGCP (Media Gateway Control Protocol)

MGCP fonctionne selon une architecture centralisée permettant de faire communiquer


et de contrôler différentes entités appartenant à des réseaux distincts. Il complète H.323 ou
SIP en traitant des problèmes d'interconnexion avec le monde téléphonique. Il est composé de
deux entités dont le Call Agent, qui sert à piloter et administrer les passerelles de manière
centralisée, et les passerelles, qui maintiennent la connectivité entre réseaux de nature
différente.

1.b Protocoles de transport

Ils assurent le transport de la voix en temps réel.

RTP (Real time Transport Protocol)

Il a pour but de transmettre sur Internet des données qui ont des propriétés temps réel
(audio, vidéo etc.). RTP permet d’organiser les paquets à l’entrée du réseau et de les contrôler
à la sortie.

Hamid Mahamat Abdoulaye – Master 1 TDSI 10


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

RTCP (Real time Transport Control Protocol)

C’est un protocole de contrôle utilisé conjointement avec RTP pour contrôler les flux
de données et la gestion de la bande passante. RTCP véhicule périodiquement des
informations

de bout en bout pour renseigner sur la qualité de service de la session.

1.c Codecs

Le mot Codec est construit d'après les mots codeur et décodeur, et fait souvent appel à
la Compression et Décompression des données. Il s'agit d'un procédé permettant de
compresser et de décompresser un signal, de l'audio ou de la vidéo, le plus souvent en temps
réel, permettant une réduction de la taille du fichier original. Le codec numérise et compresse
la voix de l’émetteur, ainsi les données numériques sont encapsulées dans des paquets IP et
acheminées vers le destinataire. A l’arrivée au destinataire, ce dernier grâce au même codec
décompresse et restitue le son.

Figure 2 Concept de la numérisation de la voix

1.d Fonctionnement

Hamid Mahamat Abdoulaye – Master 1 TDSI 11


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Le principe de la voix sur IP est de faire circuler sur Internet, grâce au protocole IP,

des paquets de données correspondant à des échantillons de voix numérisée. Reste ensuite à

acheminer ces paquets dans le bon ordre et dans un délai raisonnable pour que la voix soit

correctement restituée.

Etapes de transformation de la voix

Numérisation : dans le cas où les signaux téléphoniques à transmettre sont sous forme
analogique, ces derniers doivent d’abord être convertis sous forme numérique suivant le
format PCM (Pulse Code Modulation) à 64 Kbps.

Compression : le signal numérique PCM à 64 Kbps est compressé selon l’un des formats de

codec (compression / décompression) puis inséré dans des paquets IP.

Décompression : côté réception, les informations reçues sont décompressées.

Il est nécessaire pour cela d’utiliser le même codec que pour la compression puis reconverties

dans le format approprié pour le destinataire.

1.e Architecture

Plusieurs cas de figures peuvent se présenter :

PC To PC

Si les deux correspondants possèdent un PC équipé en conséquence (micro, écouteur), ils


pourront communiquer à condition de connaître leurs adresses IP respectives.

Hamid Mahamat Abdoulaye – Master 1 TDSI 12


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 3 Communication pc to pc

PC to Phone/Phone to PC

Si un correspondant utilisant un PC souhaite appeler une personne sur son téléphone, il doit
passer par un fournisseur de service sur Internet. Ce dernier met en place une passerelle, entre
Internet et le RTC (réseau téléphonique commuté), qui gèrera les échanges de données.

Dans le sens inverse, le correspondant peut contacter la passerelle de son téléphone.

Figure 4 Communication pc to phone

Phone to Phone

Si les deux correspondants possèdent chacun un téléphone normal (analogique, ils devront
chacun passer par une passerelle. Ensuite, les deux passerelles communiquent entre elles par
un réseau de type Internet.

Figure 5 Communication phone to phone

Hamid Mahamat Abdoulaye – Master 1 TDSI 13


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

1.f Equipements

PABX : Private Automatic Branch eXchange

Il assure la commutation des appels et leurs autorisations, il peut servir aussi de


routeur ou de Switch dans certains modèles, ainsi que de serveur DHCP. Il peut posséder des
interfaces de type analogiques (fax), numériques (postes, RNIS, QSIG) ou opérateurs (RTC-
PSTN ou EURO-RNIS). On parle de PABX-IP ou IPBX lorsque les communications sont
acheminées par l’intermédiaire du protocole IP.

Routeur

Il assure la commutation des paquets d'un réseau vers un autre réseau.

Switch

Il assure la distribution et commutation de dizaines de port Ethernet à 10/100 voire 1000

Mbits/s. Suivant les modèles, il peut intégrer la télé alimentation des ports Ethernet à la norme

802.3af pour l'alimentation des IP-phones ou des bornes WIFI en 48V.

Carte RNIS ou RTC

Elle assure la commutation des paquets d'un PC vers un réseau RTC ou RNIS.

MCU

C’est un élément optionnel qui gère les conférences audio-vidéo.

IP-Phone

C'est un terminal téléphonique fonctionnant sur le réseau LAN IP à 10/100 avec une
norme soit propriétaire, soit SIP, soit H.323. Il peut y avoir plusieurs codecs pour l'audio, et il

Hamid Mahamat Abdoulaye – Master 1 TDSI 14


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

peut disposer d'un écran monochrome ou couleur, et d'une ou plusieurs touches soit
programmables, soit préprogrammées. IL est en général doté d'un hub passif à un seul port
pour pouvoir alimenter le PC de l'utilisateur (l’IP-PHONE se raccorde sur la seule prise
Ethernet mural et le PC se raccorde derrière l’IP-PHONE).

Softphones

C'est un logiciel qui assure toutes les fonctions téléphoniques et qui utilise la carte son
et le micro du PC de l'utilisateur, et aussi la carte Ethernet du PC. Il est géré soit par le Call
Manager, soit par le PABX-IP.

Figure 6 Architecture VoIP classique

Figure 7Architecture VoIP classique

Hamid Mahamat Abdoulaye – Master 1 TDSI 15


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

2. Cryptographie

Le mot dérive du grec kruptos (caché) et graffein (écrit). C’est une science appliquée qui date
de l’antiquité qui permet de protéger le secret de l’information.

Avec la cryptanalyse, qui est la science qui cherche à percer le secret de l’information, il
constitue la cryptologie (kruptos logos) qui est la science du secret, basée sur les techniques
du chiffre et qui met en œuvre les mécanismes suivants :

- L’intégrité

C’est un service cryptographique qui permet de s’assurer que l’information n’a été ni altérée
ni modifiée, par des personnes non autorisées, pendant sa transmission ou son stockage

- l’authentification

C’est un service cryptographique qui permet de s’assurer de l’identité de l’expéditeur de

l’information, et par conséquent, de confirmer son identité.

- La confidentialité

C’est un service cryptographique qui permet d’assurer le secret des informations afin qu’elles
ne soient ni rendues accessibles, ni divulguées à un utilisateur, une entité ou un processus non
autorisé

- La non répudiation

C’est un service cryptographique qui permet d’obtenir la preuve de l’émission ou de la

réception d’une information ; l’expéditeur et le destinataire ne peuvent ainsi en nier l’envoi ou

la réception. Il empêche donc le reniement d’actions ou de messages.

- La signature numérique (ou signature électronique)

C’est un service cryptographique permettant de vérifier l'authenticité de l'expéditeur ainsi que


l'intégrité du message reçu, et d’en assurer la non répudiation (Services d'authentification,
d’intégrité et de non répudiation).

Hamid Mahamat Abdoulaye – Master 1 TDSI 16


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 8 Chiffrement Déchiffrement

Unités de Chiffrement (x) =information claire à chiffrer ; elle est divisée en parties
élémentaires {x1, x2,…..x n} où xi =unités claires ou unités de chiffrement (lettres,
bigrammes, trigrammes, …ngrammes, bits, groupes de bits de longueur donnée…. Etc) ;

Unités cryptographiques : (y)=information chiffrée = cryptogramme={y1, y2,…..y n} où

Yi =unités secrètes ou unités cryptographiques (lettres, bigrammes, trigrammes…..n


grammes, bits, groupes de bits …. Etc.) ;

Clef de chiffrement : Une clef de chiffrement est une fonction de chiffrement, une
convention secrète ou un ensemble de conventions secrètes qui fixent la manière de chiffrer
(ou de déchiffrer).

Algorithme de chiffrement : Ensemble de règles mathématiques (logiques) utilisées pour


résoudre les problèmes de Chiffrement et de déchiffrement.

On distingue algorithme symétriques non symétriques

Hamid Mahamat Abdoulaye – Master 1 TDSI 17


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Canal sûr : Moyen de communication sûr entre deux entités tel qu’un adversaire
(éventuellement un décrypteur) ne puisse pas changer l’ordre, supprimer, insérer ou lire de
l’information.

Cryptogramme: texte chiffré ou d'une manière générale, l'information chiffrée résultant


d'une opération de chiffrement, d'apparence inintelligible et présentant un caractère secret.

Antigramme : information chiffrée résultant d'une première transformation, et préparant une


seconde transformation (immédiate) obligatoire.

Le chiffrement=opération qui consiste à transformer une information claire en une

information chiffrée.

Le déchiffrement=opération inverse du chiffrement

Le surchiffrement=opération de chiffrement appliquée à l'antigramme.

Fonction de hachage : une fonction de hachage est une fonction à sens unique qui produit un
résumé (une empreinte) d’un message qui ne peut pas être inversé pour reproduire l’original.

2.a Les systèmes de chiffrements symétriques

La cryptographie à algorithmes symétriques utilise la même clé pour les processus de


chiffrement et de déchiffrement; cette clé est le plus souvent appelée secrète car toute la
sécurité de l'ensemble est directement liée au fait que cette clé n'est connue que par
l'expéditeur et le destinataire. La cryptographie symétrique est très utilisée et se caractérise
par une grande rapidité, des implémentations aussi bien que hardware, ce qui accélère
nettement les débits et autorise son utilisation massive.
Ce type de cryptographie fonctionne habituellement suivant deux procédés différents, le
cryptage par blocs (découpage du message clair en blocs traités un à un) et le cryptage en
continu (flot continu traité).

Hamid Mahamat Abdoulaye – Master 1 TDSI 18


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Exemple d’algorithme de chiffrement symétrique : AES. (Advanced Encryption Standard) est,


comme son nom l'indique, un standard de chiffrement symétrique évolué, destine à remplacer
le DES (Data Encryption Standard) qui est devenu trop faible au regard des attaques actuelles.

Basé sur l’algorithme original Rijndael, conçu par Joan Daemen et Vincent Rijmen. Crypto
système à blocs itératif mais n’utilise pas de schéma de feistel

2.b Les systèmes de chiffrements symétriques


On dispose d'une fonction P qui permet de chiffrer les messages. Ce procédé est inversible,
c'est-à-dire que l'on dispose d'une fonction de déchiffrement S. On peut fabriquer
simultanément un couple (P,S), mais connaissant uniquement P, il est impossible (ou au
moins très difficile) de retrouver S.

 P est la clé publique (le cadenas), que vous pouvez révéler à quiconque. Si Louis veut
vous envoyer un message, il vous transmet P(message).
 S est la clé secrète (la clé du cadenas), elle reste en votre seule possession. Vous
décodez le message en calculant S(P(message))=message.
 La connaissance de P par un tiers ne compromet pas la sécurité de l'envoi des
messages codés, puisqu'elle ne permet pas de retrouver S. Il est possible de donner
librement P, qui mérite bien son nom de clé publique.

Bien sûr, il reste une difficulté : comment trouver de telles fonctions P et S? Diffie et
Hellman n'ont pas eux-mêmes proposé de fonctions satisfaisantes, mais dès 1977, D. Rivest,
A. Shamir et L. Adleman trouvent une solution possible, la meilleure et la plus utilisée à ce
jour, la cryptographie RSA. Le RSA repose sur la dichotomie suivante :

 il est facile de fabriquer de grands nombres premiers p et q (pour fixer les idées, 500
chiffres).
 étant donné un nombre entier n=pq produit de 2 grands nombres premiers, il est très
difficile de retrouver les facteurs p et q.

La donnée de n est la clé publique : elle suffit pour chiffrer. Pour déchiffrer, il faut connaitre p
et q, qui constituent la clé privée. Le problème de factorisation de grands entiers étant très
difficile, la connaissance de la clé publique n ne permet pas de retrouver les entiers p et q, qui
constituent la clé secrète.

Hamid Mahamat Abdoulaye – Master 1 TDSI 19


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Cela dit, les algorithmes à clé publique (on parle aussi de chiffrement asymétrique) sont
rarement utilisés pour chiffrer complètement un long message. Ils sont en effet très lents,
beaucoup plus lents que leurs homologues symétriques. Pour des applications où il faut
échanger de nombreuses données, ils sont inutilisables en pratique. On a alors recours à des
crypto systèmes hybrides. On choisit un chiffre symétrique (AES,…) pour l'échange du
message. La cryptographie à clé publique est alors utilisée pour l'échange de la clé de ce
chiffrement symétrique. De nombreux protocoles utilisés en pratique (protocole SSL pour le
commerce électronique, logiciel PGP pour le courrier électronique) fonctionnent sur ce
principe.

2.c Les algorithmes de hachage

Une fonction de hachage est aussi appelée fonction de hachage à sens unique ou "one-way
hash function" en anglais. Ce type de fonction est très utilisé en cryptographie, principalement
dans le but de réduire la taille des données à traiter par la fonction de cryptage. En effet, la
caractéristique principale d'une fonction de hachage est de produire un haché des données,
c'est-à-dire un condensé de ces données. Ce condensé est de taille fixe, dont la valeur diffère
suivant la fonction utilisée : nous verrons plus loin les tailles habituelles et leur importance au
niveau de la sécurité.

Exemples : MD5 (Message Digest 5) et SHA-1 (Secure Hash Algorithm ) sont des fonctions
de hachage cryptographique à sens unique. Le résultat de l'application de cette fonction sur un
ensemble de données de longueur quelconque (par exemple un fichier) est un ensemble
beaucoup plus petit et de longueur fixe, caractéristique de l'objet de départ, appelé
diversement :

 somme de contrôle
 chiffre clé
 condensat
 condensé
 empreinte cryptographique
 hash code
 fingerprinting (empreinte)

Les deux caractéristiques d'un hash sont :

Hamid Mahamat Abdoulaye – Master 1 TDSI 20


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

 Unicité
Cet ensemble caractéristique de l'objet initial permet de "signer" un objet de manière
unique (voir la réserve à propos des collisions) d'où :
o 2 objets différents n'auront jamais la même signature
o 2 signatures différentes ne peuvent que signer (désigner) 2 objets différents.

Cette particularité est très employée en informatique et est utilisée pour produire des
signatures numériques qui seront exploitées afin de s'assurer de l'intégrité d'un contenu
(authentification). Ainsi :

o La base de signatures d'un antivirus ou d'un anti-trojans/anti-spywares est en


partie faite d'empreintes cryptographiques
o Un système de contrôle d'intégrité repose sur les empruntes cryptographiques
(les pare-feu comme les contrôleurs d'intégrités se reposent sur ces fonctions)
o Windows Update utilise une fonction de "hashage"
o RunScanner utilise une fonction de hashage pour vérifier l'authenticité des
fichiers
o etc. ...
 Irréversibilité
Une autre caractéristique des empreintes cryptographiques est que l'application
algorithmique est à sens unique : on peut calculer l'empreinte à partir de l'objet initial
mais il est totalement impossible de reconstruire l'objet initial à partir de l'empreinte..

Hamid Mahamat Abdoulaye – Master 1 TDSI 21


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

II. Audit Technique VoIP

Introduction à l’Audit

Vu l’importance de la communication par téléphone pour la mission d’une entreprise, la


gestion des risques de la VoIP doit être considéré comme une partie intégrante de la politique
de sécurité de d’une entreprise. Pourtant, les compétences dans ce domaine sont encore rares.

Un audit est par définition un examen professionnel qui consiste en une expertise par un agent
compétent et impartial aboutissant à un jugement sur les états financiers, le contrôle interne,
l'organisation, la procédure, ou une opération quelconque d'une entité.

En informatique, il a pour objectif d’identifier et d’évaluer les risques (opérationnels,


financiers, de réputation notamment) associés aux activités informatiques d'une entreprise ou
d'une administration

- d’effectuer de tests techniques détaillés sous forme de check-lists pour les différents
aspects de la sécurité d’un réseau VoIP,
- d’analyser les résultats des tests et d’identifier des risques de sécurité,
- d’estimer le risque de différentes attaques,
- de développer des recommandations concrètes pour améliorer la sécurité du réseau
VoIP (personnes, procédures et technique).

La méthodologie d’audit utilisée dans ce document est applicable aux réseaux VoIP basés sur
le protocole SIP. Tous les services de base (SIP, interconnexion VoIP-PSTN, localisation,
proxy, routage, numérotation) ainsi que certains services supplémentaires (comptabilisation,
redirection d’appels, NAT, …) sont considérés.

La méthodologie d’audit traite la sécurité interne (menaces venant depuis l’intérieur du


réseau) et la sécurité externe (menaces venant depuis l’extérieur, Internet).

Les réseaux VoIP sont réalisés sur une infrastructure de réseaux LAN et IP classiques.

Le serveur IPBX est asterisk.

Bien que la sécurité VoIP soit fortement influencée par la sécurité de l’infrastructure LAN/IP
sous-jacente, nous nous limitons à l’analyse des mécanismes directement liés à la VoIP. Où
nécessaire, des références aux méthodes d’audit de réseaux LAN/IP sont données.

Il se déroule comme suit :

Hamid Mahamat Abdoulaye – Master 1 TDSI 22


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 9 Etapes d'un audit VoIP

Hamid Mahamat Abdoulaye – Master 1 TDSI 23


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

1. Caractérisation du système

Dans cette étape, nous répertorions les composants du réseau, les services réalisés et les
données gérées par les différents services. Ceci permet de documente la politique de sécurité
en place (s’il y en a).

Procédure :

 Diagrammes existants du réseau


 Documentation existante
 Interviews et inspection sur place
 Questionnaires
 Outils de scanning

Résultats

1. des diagrammes du réseau

Figure 10 Diagramme du réseau

Hamid Mahamat Abdoulaye – Master 1 TDSI 24


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

2. une liste des serveurs et dispositifs du réseau

- Un IPBX (asterisk 11) sur un pc sous Ubuntu 12.10


- 3 PC sous windows pour les clients SIP
- Un point d’accès
- Un pare feu

3. une liste des contrôles techniques (méthodes de sécurisation) en place

- Pare feu (supposé)


- Antivirus NOD32 dans les PC windows

4. la classification des exigences en sécurité des services et informations gérées,


5. une description de la politique de sécurité du réseau.

2. Analyse des menaces

Cette étape permet de déterminer les menaces à considérer dans les phases suivantes et
d’identifier les sources de menaces. Une menace est une violation potentielle de la politique
de service à cause d’une attaque ou d’une action involontaire ou négligente qui compromet la
sécurité. Des sources de menaces sont donc des personnes malintentionnées ou les utilisateurs
normaux. Les sources de menaces peuvent être internes ou externes au réseau VoIP.

Procédure

Cette étape part de la liste complète des menaces liées à la VoIP. En discussion avec les
responsables de la société, les sources de menaces les plus probables sont identifiées. Ensuite,
un niveau de protection requis est assigné à chaque menace ou à chaque source de menace.

Résultats

Une liste des menaces à considérer. La liste indique les sources possibles d’une

Menace et l’importance d’une protection contre chaque menace.

Hamid Mahamat Abdoulaye – Master 1 TDSI 25


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Interruption de service

L’interruption de services surconsommation la bande passante ou surcharge le réseau


de telle sorte que le service ne fonctionne plus. En VoIP, une telle menace est caractérisée par
une inondation ou footing de la cible des messages indésirables de signalisation SIP,
dégradant ainsi le service. Cela peut provoquer l’interruption des appels en cours.

Dans une communication entre deux agents SIP, on peut avoir plusieurs types de
DoS :

 DoS-BYE : Cette attaque consiste à couper la communication entre deux terminaux


Le pirate écoute le Réseau, repère le message de Requête Bye entre l'appelant et
l'appelé, analyse le message afin de récupérer suffisamment d’informations sur la
communication en cours, il peut alors façonner un faux message BYE et l'envoyer soit
à l'appelant soit l'appelé, ou les deux afin de terminer la communication.

 DoS REGISTER : Le serveur Registrar peut accepter des enregistrements de tous les
dispositifs. Un nouvel enregistrement avec une «*» dans l'entête remplacera tous les
précédents enregistrements pour ce dispositif. Les attaquants, de cette façon, peuvent
supprimer l’enregistrement de quelques-uns des utilisateurs, ou tous, dans un domaine,
empêchant ainsi ces utilisateurs d'être invités à de nouvelles sessions.

 DoS CANCEL : L’attaquant surveille l’activité du proxy SIP et attend qu’un appel
arrive pour un utilisateur spécifique. Une fois que le dispositif de l’utilisateur reçoit la
requête INVITE, l'attaquant envoie immédiatement une requête CANCEL. Cette
requête produit une erreur sur le dispositif de l’appelé et termine l'appel. Ce type
d'attaque est employé pour interrompre la communication.

Ecoute clandestine (eavesdropping)

L’écoute clandestine peut se faire en se plaçant à un endroit choisi sur le réseau et, à l’aide
d’un sniffer, capturer des flux RTP. La conversion de ce flux en fichier audio (.wav, .au)
permet alors d’écouter toutes les conversions téléphoniques du réseau.

Il est aussi possible pour le pirate de passer gratuitement des appels

Hamid Mahamat Abdoulaye – Master 1 TDSI 26


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Interception et modification

Il s’agit de paquets interceptés et dont les entêtes ou les corps sont modifiés pour servir à
d’autres fin.

Abus de services

Dans ce genre de cas, une personne peut utiliser les infos glanées pour se servir des ressources
de l’agence et en abuser, vu qu’aucun contrôle ne s’applique à elle (surfacturation).

Détournements

Le Call Hijacking consiste à détourner un appel : le pirate redirige le flux vers son
propre poste ou vers une autre destination de son choix.

Exemple: quand un agent SIP envoie un message INVITE pour initier un appel, l'attaquant
envoie un message de redirection 3xx indiquant que l’appelé s'est déplacé et par la même
occasion donne sa propre adresse comme adresse de renvoi. A partir de ce moment, tous les
appels destinés à l’utilisateur sont transférés et c’est l’attaquant qui les reçoit. Un appel
détourné en lui-même est un problème, mais c’est encore plus grave quand il est porteur
d'informations sensibles et confidentielles.

Capture de paquets

Le renfilage ou Sniffing est la plus courante et facile des attaques. Elle consiste à
lancer une écoute passive sur le réseau afin de capturer des trames du flux passant dans le
réseau. Ceci permet à un pirate de récolter des informations, avec pour conséquences
possibles le vol d’identité et l’exposition de données confidentielles.

Intrusion physique

Il s’agit d’une menace directe contre l’infrastructure physique (IPBX, hardphones,


Ordinateurs, câbles etc.)

SPAM

C’est la réception de contenu non souhaité.

Hamid Mahamat Abdoulaye – Master 1 TDSI 27


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

3. Analyse des contrôles

Le but de cette étape est d’analyser les mécanismes de sécurité en place dans le système. Les
contrôles en place ont été documenté dans la première phase de l’audit, la caractérisation du
système.

Procédure :

Cette étape se base sur la liste des contrôles en place, établie dans la première étape de l’audit.

 Pour chaque contrôle, son effet est défini, donc les menaces prévenues par ce contrôle.
 L’efficacité du contrôle doit être évaluée, par l’évaluation de la configuration et le test
du contrôle.

Résultats

Le résultat de cette étape est :

 une liste des contrôles et leurs effets (menaces prévenues)


 un protocole des résultats des tests qui indique si le contrôle fonctionne correctement.

Dans la méthodologie NIST, cette étape est effectuée après l’identification des vulnérabilités.
Or, le test des vulnérabilités est une procédure qui demande beaucoup de travail et qui peut
interrompre le service normal du réseau. Elle doit donc être limitée à un minimum. Le fait
d’analyser les contrôles d’abord permet de réduire le nombre de vulnérabilités à tester.

4. Analyses des vulnérabilités

Le but de cette étape est d’identifier toutes les vulnérabilités à considérer qui :

 pourraient être présentes dans le système


 qui ne sont pas couvertes par les contrôles en place.

Outils

. Pour notre étude, nous allons utiliser Backtrack 4. Backtrack est une distribution linux
entièrement dédié aux tests de sécurité sur les réseaux. Il possède un panel entier d’outils
consacrés aux tests de sécurité, dont 28 rien que pour la VoIP.

Hamid Mahamat Abdoulaye – Master 1 TDSI 28


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

SIPdump : sniffe le réseau, filtre les requêtes d'authentification (REGISTER) et les


sauvegarder dans un fichier (dumpfile)

SIPcrack : il utilise le dumpfile généré par SIPdump pour attaquer le compte cibler et obtenir
son mot de passe

SIPVicious :ensemble d’outils permettant d’auditer un réseau de VoIP (sniffer, cracker)

SMAP : sert à la récupération d’informations

Wireshark : C’est l’un des logiciels les plus utilisés pour ce qui est de la surveillance,
intrusion et capture dans les réseaux. Non seulement il peut capturer et analyser des trames,
mais aussi, dans le cas de conversations téléphoniques, convertir ces trames en fichiers audio.

Wireshark permet à l'utilisateur de mettre les interfaces de réseau qui supportent le mode
« promiscuous », pour essayer de voir tout le trafic passant sur le réseau.

Ettercap : Il est capable d'accomplir des attaques sur le protocole ARP pour se positionner
en tant que "man in the middle". Une fois placé en tant que tel, il permet:

- De faire transiter le flux par l’ordinateur pirate


- d'infecter, de remplacer et de supprimer des données dans une connexion
- de découvrir des mots de passe pour des protocoles comme FTP, HTTP, POP, SSH1,
etc.
- de fournir aux victimes de faux certificats SSL dans des sessions HTTPS.

Caïn & Abel : C’est un logiciel développé pour les systèmes d’exploitation Windows. Il
possède une interface graphique simple et un vaste panel d’outils. Il a été développé dans le
but d’aider les administrateurs et auditeurs de sécurité, mais peut également être une arme aux
mains de pirates.

Il permet de

 Cracker les clés WEP


 Accélérer la vitesse de capture de paquets par injection de paquet
 Enregistrer des conversations VoIP
 Décoder des mots de passe cryptés
 Calculer les hashes
 Tracer les paquets

Hamid Mahamat Abdoulaye – Master 1 TDSI 29


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

 Cracker des mots de passe


 Faire de l’usurpation par ARP
 Résoudre IP/Adresse MAC/nom
 Sniffer le mot de passe d’un réseau
 Craquer plusieurs types de mots de passe

SiVus : c’est un logiciel dédié aux tests de vulnérabilité sur les réseaux de VoIP utilisant le
protocole SIP. Il possède une base de données d’attaques pour les simulations.

Ce scanner offre plusieurs outils puissants pour vérifier la robustesse de la sécurité d’une
implémentation d’équipement SIP. Il propose entre autres:

 Scanner de vulnérabilité qui permet :


 La vérification de buffer overflows
 Authentification
 Chiffrement
 Importer et exécuter des torture checks
 Sauvegarder et rechercher des configurations
 Générer des rapports HTML informatifs…
 Generateur de messages SIP personnalisés
 Scanner pour identifies les composants SIP ciblés

Procédure :

Pour chaque composant (dispositif, logiciel, protocole, fonctionnalité) du système :

Partir d’une liste des vulnérabilités connues (utiliser NIST NVD, CVE)

Hamid Mahamat Abdoulaye – Master 1 TDSI 30


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 11Vulnérabilités de la VoIP

Sélectionner les vulnérabilités à évaluer

Ecoute clandestine, dénis de service, mot de passes faibles, injection, serveur


compromis

Tester la présence des vulnérabilités

Interview, questionnaires

Scanning

Tests de pénétration :

Hamid Mahamat Abdoulaye – Master 1 TDSI 31


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Récupération d’infos

Figure 12 Attaque de récupération d'informations

Enumeration extension

SVWAR

root@bt:/pentest/voip/sipvicious# ./svwar.py -e100-400 192.168.1.104


root@bt:/pentest/voip/sipvicious# ./svwar.py -e100-400 192.168.1.104 -m INVITE -v

ENUMIAX

root@bt:/pentest/voip/enumiax# ./enumiax -v -m3 -M3 192.168.1.104

Surveillance

MITM (arp spoof poison) avec ettercap

Hamid Mahamat Abdoulaye – Master 1 TDSI 32


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 13 Attaque Man In The Middle

Capture de paquet

Figure 14 Attaque sniffing et capture

Hamid Mahamat Abdoulaye – Master 1 TDSI 33


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Ecoute clandestine

Figure 15 Attaque écoute clandestine et enregistrement

Capture et cracking de comptes SIP

(sipdump sipcrack, john)

root@bt:/pentest/voip/sipcrack# ./sipdump -i eth0


root@bt:/pentest/voip/sipcrack# ./sipdump -i eth0 auth.txt
root@bt:/pentest/voip/sipcrack# ./sipdump -p /root/registration.pcap auth.txt

root@bt:/pentest/voip/sipcrack# ./sipdump –w test.txt /root/registration.pcap auth.txt

root@bt:/pentest/voip/sipvicious# ./svcrack.py -u200 -d wordlist.txt 192.168.1.104

Hamid Mahamat Abdoulaye – Master 1 TDSI 34


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Déni de service

Figure 16 Attaque DoS 1

Figure 17 Attaque DoS 2

Hamid Mahamat Abdoulaye – Master 1 TDSI 35


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Résultats

Les résultats de cette étape sont :

Liste des vulnérabilités présentes et non couvertes par les contrôles.

- Récupération et identification
- Ecoute clandestine
- Dénis de service
- Empoisonnement ARP

5. Analyses des risques

Cette étape vise à prioriser les dangers constatés en déterminante la probabilité d’une attaque
et son impact.

Procédure

Dans une première phase, elle met en relation :

• l’attractivité d’une menace pour un attaquant (étape 2)

• la possibilité d’une attaque, réalisée à travers une vulnérabilité.

Ceci détermine la probabilité d’une attaque (valeurs 0 – 1).

Dans une deuxième phase, l’impact d’une menace réalisée est évalué (valeurs 0 – 100).

Une méthode simple de prioriser les risques et la multiplication de la probabilité avec

l’impact

Résultat

Le résultat de cette étape est :

Une liste des menaces, priorisées par leur risque :

Récupération d’infos,

 DoS
 Ecoute clandestine,
 Vols
 usurpation,

Hamid Mahamat Abdoulaye – Master 1 TDSI 36


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

 Détournement

6. Recommandations

Le but de cette étape est de proposer des contrôles supplémentaires, des procédures (pour
augmenter l’efficacité des contrôles) qui permettent de réduire les risques pour l’entreprise.

Résultat

Le résultat de cette étape est :

 Une recommandation de modification du système pour éliminer des vulnérabilités.


 Une recommandation de procédures qui permettent d’augmenter l’efficacité des

Contrôles déjà en places

 Une recommandation de contrôles supplémentaires pour couvrir certaines

Vulnérabilités.

 Séparation des équipements DATA et VoIP

 Sécurisation de l’IPBX

 Sécurisation des clients (softphones)

 Protéger les systèmes d’exploitation

 Améliorer et renforcer la politique de sécurité

 Système de détection et prévention d’intrusion

Comparatif des solutions

Hamid Mahamat Abdoulaye – Master 1 TDSI 37


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Description Avantages Inconvénients

IDS/IPS SIP Détection/Prévention Analyse le trafic et Inefficace contre


d’intrusion agis en conséquence certaines attaques
concentrée sur les contre les paquets sip
paquets SIP malveillants

SIP ALG Proxy analysant les Efficace contre les Inefficace contre un
paquets de types SIP attaques externes attaquant interne
qui entrent et sortent

VOIP VPN Construit un tunnel elle protège les Demande beaucoup


sécurisé entre deux données grâces à des de bande passante,
communicants sur un mécanismes de considéré comme
Réseau VoIP chiffrement, assurant lourd
l’intégrité des
paquets VoIP.

Client SIP Sécurisé Softphone Open source, Doit être portable sur
implémentant des évolution contrôlée, n’importe quel
methodes implémentation système
d’authentification et
de chiffrement

Hamid Mahamat Abdoulaye – Master 1 TDSI 38


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

III. Implementation Client SIP Sécurisé

Introduction

SIP (session initiation Protocol) est devenu l’un des principaux protocoles utilisés en VoIP.

Un aspect intéressant (et aussi une vulnérabilité) est que le flux de communication entre deux
clients SIP passe directement de l’un à l’autre, de façon claire.

Figure 18 Fonctionnement SIP

C’est pourquoi le flux RTP doit être protégé. D’autre part, par défaut l’authentification au
serveur n’est pas sécurisée. Pour pallier à ces deux faiblesses, deux protocoles sécurisés ont
été lancés.

Hamid Mahamat Abdoulaye – Master 1 TDSI 39


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

C’est la raison pour laquelle l’implémentation d’un client SIP sécurisé nous a semblé le plus
adapté comme solution de securité. Il doit implémenter TLS pour s’authentifier au serveur, et
SRTP pour sécuriser les communications.

TLS

Transport Layer Security (TLS), anciennement nommé Secure Socket Layer (SSL), est un
protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape (SSL
version 2 et SSL version 3). Il a été renommé en Transport Layer Security (TLS) par l'IETF
suite au rachat du brevet de Netscape par l'IETF en 2001.

TLS diffère de SSL pour la génération des clés symétriques. Cette génération est plus
sécurisée dans TLS que dans SSLv3 dans la mesure où aucune étape de l'algorithme ne repose
uniquement sur MD5 pour lequel sont apparues quelques faiblesses en cryptanalyse.

TLS fonctionne suivant un mode client-serveur. Il fournit les objectifs de sécurité suivants:

 l'authentification du serveur ;
 la confidentialité des données échangées (ou session chiffrée) ;
 l'intégrité des données échangées ;
 de manière optionnelle, l'authentification ou l'authentification forte du client avec
l'utilisation d'un certificat numérique ;
 la spontanéité, c.-à-d. qu'un client peut se connecter de façon transparente à un
serveur auquel il se connecte pour la première fois ;
 la transparence, qui a contribué certainement à sa popularité.

Hamid Mahamat Abdoulaye – Master 1 TDSI 40


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 19 Fonctionnement TLS

1 - Le client envoie un message HELLO_CLIENT, en clair, au serveur. Ce message contient :

Version - La plus haute version de SSL que puisse utiliser le client.

Random - Un horodatage de 32 bits et une valeur aléatoire de 28 octets générée par le client.
Le nombre obtenu va servir la signature des messages.

Session ID - Un nombre, qui identifie la connexion. Un zéro signifie la volonté du client


d'établir une nouvelle connexion sur une nouvelle session. Un autre nombre signifie la volonté
de changer les paramètres ou de créer une nouvelle connexion sur la session existante.

CipherSuite - Une liste, par ordre décroissant de préférence, des algorithmes que supporte le
client. Il s'agit des algorithmes d'échange de clé et de chiffrement.

Hamid Mahamat Abdoulaye – Master 1 TDSI 41


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Compression Method - Liste, par ordre décroissant de préférence, des algorithmes de


compression supportés par le client.

Puis le client attend une réponse du serveur

2 - Le serveur répond au client en clair : HELLO_SERVER. Le message contient :

Version - La plus haute version de SSL que puisse utiliser le client.

Random - Un horodatage de 32 bits et une valeur aléatoire de 28 octets générée par le client.

Session ID - L'Identifiant de la session qui débute.

CipherSuite - La séquence d'algorithmes choisis pour la session. Le serveur sélectionne la


première suite qu'il connait dans la liste transmise par le client.

Compression Method - La méthode de compression qui va être utilisée.

Maintenant que les algorithmes sont choisis, le serveur va s'authentifier auprès du client. Il
envoie pour cela son ou ses certificats (X.509) au client. Il peut pendant cette étape demander
un certificat au client. Le client vérifie l'authenticité du serveur : si cette authenticité est mise
en doute, la transaction est interrompue.

3 - Génération des clés de chiffrement symétrique. Le client génère de son côté une préclé qui
servira à produire les clés utilisées
par la suite. Cette clé est envoyée au serveur, chiffrée à l'aide de sa clé publique. A l'aide de
cette pré clé, le serveur et le client génèrent quatre clés pour la session :

Server write mac secret - utilisée dans la signature des messages du serveur.

Client write mac secret - pour les messages du client.

Server write key - pour chiffrer les données émises par le serveur.

Client write key - pour le client.

Ces clés ne sont pas échangées. Si besoin est, le serveur vérifie l'authenticité du client.

Hamid Mahamat Abdoulaye – Master 1 TDSI 42


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

4 - Le client envoie le message CLIENT_FINISHED au serveur. Ce message est chiffré et


signé à l'aide des clés ci-dessus. Cela signifie qu' partir de maintenant, le client communique
de cette manière.

5 - Le serveur procède de même. Ces messages sont dénis par le sous protocole Change
Cipher Spec (c'est d'ailleurs tout ce que définit ce protocole).

SRTP

Le protocole SRTP (Secure Real time Transport Protocol) définis un type de profil RTP dans
l’intention de fournir le chiffrement, l’authentification et l’intégrité des messages et la
protection contre le rejeu. Il fut développé par un petit groupe d’experts en protocole IP et
cryptographie de CISCO et Ericsson parmi lesquels David Oran, David McGrew, Mark
Baugher, Mats Naslund, Elisabetta Carrara, James Black, Karl Norman, et Rolf Blom. La
première publication par l’IETF fut en mars 2004 sous le nom RFC 3711.

Pour le chiffrement et le déchiffrement, SRTP utilise AES comme algorithme de chiffrement


par défaut. Il possède deux modes de chiffrements qui permettent d’utiliser l’AES qui est un
chiffrement par bloc, en chiffrement continu.

Mode Segmented Integer Counter : De type counter, il permet l’accès aléatoire aux blocs,
ce qui est essentiel pour le trafic RTP. Par défaut, la clé est de 128 bits.

Mode f8 : variation du mode output feedback (mode de rétroaction de sortie), amélioré et


avec une fonction de départ modifiée.

Pour l’authentification et l’intégrité des messages, SRTP utilise l’algorithme HMAC-SHA1


qui produit un résultat de 160 bits, tronqué en 80 ou 32 bits qui devient le tag
d’authentification dans le paquet RTP. Il est calculé à partir des données telles que le
playload, le numéro de séquence, l’entête pour éviter les attaques par rejeu, par un système de
comparaison entre les anciens indices reçus et les nouveaux.

Hamid Mahamat Abdoulaye – Master 1 TDSI 43


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 20 Fonctionnement SRTP

C#

Le C# est un langage de programmation créé par Microsoft en 2002. Nous l’avons choisi pour
ce projet car nous voulions un langage simple, accessible, avec des bibliothèques qui nous
permettraient de faire à la fois de la Voix sur IP et d’implémenter TLS et SRTP.

Le C# est un langage dont la syntaxe ressemble un peu au C++ ou au Java qui sont d’autres
langages de programmation très populaires. Le C# est le langage phare de Microsoft. Il fait
partie d’un ensemble plus important. Il est en fait une brique de ce qu’on appelle le «
Framework .NET ».

Avec d’anciens langages comme C ou C++, un programme compilé (binaire) ne fonctionne


que sur la plateforme pour laquelle il a été compilé. Les langages récents, comme le C# et le

Hamid Mahamat Abdoulaye – Master 1 TDSI 44


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Java, résolvent ce problème de compatibilité tout en ajoutant de nombreuses fonctionnalités


appréciables au langage, ce qui permet de réaliser des programmes beaucoup plus
efficacement.

La compilation en C# ne donne pas un programme binaire, contrairement au C et au C++. Le


code C# est en fait transformé dans un langage intermédiaire (appelé CIL ou MSIL) que l'on
peut ensuite distribuer à tout le monde. Ce code, bien sûr, n'est pas exécutable lui-même, car
l'ordinateur ne comprend que le binaire.

Figure 21 Compilation sous C#

Le code en langage intermédiaire (CIL) correspond au programme que vous allez distribuer.
Sous Windows, il prend l'apparence d'un .exe comme les programmes habituels, mais il ne
contient en revanche pas de binaire.

Lorsqu'on exécute le programme CIL, celui-ci est lu par un autre programme (une machine à
analyser les programmes, appelée CLR) qui le compile cette fois en vrai programme binaire.

Cela offre beaucoup de souplesse au développeur. Le code en langage intermédiaire (CIL)


peut être distribué à tout le monde. Il suffit d'avoir installé la machine CLR sur son ordinateur,
qui peut alors lire les programmes en C# et les compiler "à la volée" en binaire. Avantage : le
programme est toujours adapté à l'ordinateur sur lequel il tourne. Cette complexité ralentit
légèrement la vitesse d'exécution des programmes (par rapport au C ou au C++), mais la
différence est aujourd'hui vraiment négligeable par rapport aux gains que cela apporte.

Donc, en théorie, il est possible d'utiliser n'importe quelle application compilée en langage
intermédiaire à partir du moment où il y a une implémentation du CLR disponible.

En réalité, il n'y a que sous Windows qu'il existe une implémentation complète du CLR. Il
existe cependant une implémentation partielle sous Linux : Mono. Cela veut dire que si votre

Hamid Mahamat Abdoulaye – Master 1 TDSI 45


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

programme utilise des fonctionnalités qui ne sont pas couvertes par Mono, il ne fonctionnera
pas. Il est possible de créer des programmes (.exe) qui pourront directement être exécuté par
le CLR, mais il est également possible de créer des bibliothèques sous la forme d'un fichier
possédant l'extension « .dll ». On appelle ces deux formes de programmes des assemblages,
mais on utilise globalement toujours le mot anglais « assembly ».

Les fichiers .exe sont des assemblys de processus

Les fichiers .dll sont des assemblys de bibliothèques

Concrètement, cela signifie que le fichier .exe servira à lancer une application et qu'une dll
pourra être partagée entre plusieurs applications .exe afin de réutiliser du code déjà écrit.

On peut voir le framework .NET comme ces matériaux, c’est un ensemble de composants que
l’on devra assembler pour réaliser notre application. Certains sont spécifiques pour la
réalisation d’applications web, d’autres pour la réalisation d’applications Windows, etc.

Le framework .NET est un framework créé par Microsoft en 2002, en même temps que le C#,
qui est principalement dédié à la

réalisation d’applications fonctionnant dans des environnements Microsoft. Nous pourrons


par exemple réaliser des

programmes qui fonctionnent sous Windows, ou bien des sites web ou encore des applications
qui fonctionnent sur téléphone

mobile, etc.

C# et VoIP

Voici un tableau comparatif de SDK (Software Development Kit) sous C# permettant de faire
de la VoIP. Un SDK est une bibliothèque contenant des fonctions pour aider un développeur à
créer des applications spécifiques.

Hamid Mahamat Abdoulaye – Master 1 TDSI 46


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 22 Comparatif SDK VoIP

PortSIP SDK est celui que nous avons choisi, car sa documentation est très fournit et ses
methodes plus faciles à appréhender.

C# et cryptographie

Le namespace System.Security.Cryptography contient de nombreuses classes implémentant


entre autre les principaux algorithmes de chiffrement symétriques et asymétriques. Au cours
de cet article nous allons voir le fonctionnement de base de l'implémentation .Net / C# d'AES
- Rijndael, l'algorithme de chiffrement symétrique de référence à l'heure actuelle.

Le Framework .Net propose une implémentation de l'algorithme AES - Rijndael dans le


namespace "System.Security.Cryptography". La classe implémentant cet algorithme ne
nomme "RijndaelManaged". Voici les principales méthodes et propriétés de cette classe :

Méthodes et propriétés de la classe RijndaelManaged

 Méthode CreateEncryptor() : permet de créer un chiffreur AES.


 Méthode CreateDecryptor() : permet de créer un déchiffreur AES.

Hamid Mahamat Abdoulaye – Master 1 TDSI 47


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

 Propriété Key : permet de définir ou d'obtenir la clé secrète, c'est elle qui permet le
chiffrement et le déchiffrement.
 Propriété IV : permet de définir ou d'obtenir le vecteur d'initialisation. Un vecteur
d'initialisation n'est pas utilisé systématiquement, il dépend du mode, le mode ECB
n'en utilise pas.
 Propriété BlockSize : permet de définir ou d'obtenir la taille des blocs utilisés lors
d'une opération de chiffrement ou de déchiffrement. Cette taille de bloc définit la taille
maximale de données qui peuvent être chiffrées ou déchiffrées en une seule opération.

1. Fonctionnement

L’application dispose de plusieurs methodes dont les principales sont celles qui permettent de
s’enregistrer au niveau du serveur, d’émettre un appel, d’y répondre, de choisir le mode de
transport (UDP, TCP ou TLS), et le mode de chiffrement pour SRTP (aucun, préféré, forcé).

En ce qui concerne TLS, l’application exige que le certificat soit placé au niveau d’un
« Trusted Root Certification Authorities area », c’est-à-dire une autorité de certification sous
windows serveur.

Pour SRTP, il y a 3 choix :

- Aucun : par défaut, pas de chiffrement pendant les appels RTP


- Préféré : le système essaiera de chiffrement, mais ne le fera pas si l'un des
communicants n’a pas activé SRTP
- Forcé : la communication sera chiffrée à tous les coups.

2. Implémentation

Nous avons utilisé Microsoft Visual Studio 2010, avec le framework .NET version
4.50.50709 et le SDK PortSIP.

Voici l’arborescence de l’application :

Hamid Mahamat Abdoulaye – Master 1 TDSI 48


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 23 Présentation Visual Studio

Figure 24 Identification des boutons

Méthodes importantes de Form1.cs

Namespaces (espace de nom, l’endroit où se trouvent les méthodes) utilisés :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;

Hamid Mahamat Abdoulaye – Master 1 TDSI 49


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using PortSIP;

Chargement de chiffrement :

//Choix chiffrement
private void SetSRTPType()
{
if (_SIPInited == false)
{
return;
}

SRTP_POLICY SRTPPolicy = SRTP_POLICY.SRTP_POLICY_NONE;

switch (ComboBoxSRTP.SelectedIndex)
{
case 0:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_NONE; //par defaut, pas de chiffrement
pendant les appels RTP
break;

case 1:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_PREFER; //le systeme essaiera de
chiffrement, mais ne le fera pas si l'un des
break; //communiquants n'a pas activé SRTP

case 2:
SRTPPolicy = SRTP_POLICY.SRTP_POLICY_FORCE; //Dans ce cas la communication
sera chiffrée obligatoirement
break;
}

_core.setSrtpPolicy(SRTPPolicy);
}

//Enregistrement vers le serveur


private void deRegisterFromServer()
{
if (_SIPInited == false)
{
return;
}

Hamid Mahamat Abdoulaye – Master 1 TDSI 50


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

for (int i = LINE_BASE; i < MAX_LINES; ++i)


{
if (_CallSessions[i].getRecvCallState() == true)
{
string reason = "Occupé";
_core.rejectCall(_CallSessions[i].getSessionId(), 486, reason);
}
else if (_CallSessions[i].getSessionState() == true)
{
_core.terminateCall(_CallSessions[i].getSessionId());
}

_CallSessions[i].reset();
}

if (_SIPLogined == true)
{
_core.unRegisterServer();
_SIPLogined = false;
}

if (_SIPInited == true)
{
//
// Appellé avant _core.unInitliaze();
//
_core.shutdownCallbackHandlers();

_core.unInitialize();

_core.releaseCallbackHandlers();

_SIPInited = false;
}

Log.Items.Clear();

ComboBoxLines.SelectedIndex = 0;
_CurrentlyLine = LINE_BASE;

ComboBoxSpeakers.Items.Clear();
ComboBoxMicrophones.Items.Clear();
//ComboBoxCameras.Items.Clear();
}

// Information de l'utilisateur SIP


rt = _core.setUserInfo(userName,

Hamid Mahamat Abdoulaye – Master 1 TDSI 51


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

displayName, //nom affiché


authName, //nom d'utilisateur pour l'authentification
password, //mot de passe
localIP.ToString(), //@IP locale
LocalSIPPort, //port local SIP
userDomain, //domaine
SIPServer, //Serveur voip (@IP pc asterisk)
SIPServerPort, //port serveur
outboundServer, //cas où un serveur outbound est utilisé
outboundServerPort); //cas où un serveur outbound est utilisé

//
// CLAVIER
//
private void Button3_Click(object sender, EventArgs e)
{
TextBoxPhoneNumber.Text = TextBoxPhoneNumber.Text + "1";
if (_SIPInited == true && _CallSessions[_CurrentlyLine].getSessionState() == true)
{
_core.sendDtmf(_CallSessions[_CurrentlyLine].getSessionId(), '1');
}
}

//Bouton dial (appel)


private void ButtonDial_Click(object sender, EventArgs e)
{
if (_SIPInited == false || _SIPLogined == false)
{
return;
}
if (TextBoxPhoneNumber.Text.Length <= 0)
{
MessageBox.Show("Veuillez entrer un numero.", "Information", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}

if (_CallSessions[_CurrentlyLine].getSessionState() == true ||
_CallSessions[_CurrentlyLine].getRecvCallState() == true)
{
MessageBox.Show("Cette ligne est occupée, veuillez en choisir une autre", "Information",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}

string callTo = TextBoxPhoneNumber.Text;

if (_core.isAudioCodecEmpty() == true)

Hamid Mahamat Abdoulaye – Master 1 TDSI 52


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

{
InitDefaultAudioCodecs();
}

// SDP
Boolean hasSdp = true;
// if (CheckBoxSDP.Checked == true)
// {
// hasSdp = false;
// }

_core.setAudioDeviceId(ComboBoxMicrophones.SelectedIndex,
ComboBoxSpeakers.SelectedIndex);

int errorCode = 0;
int sessionId = _core.call(callTo, hasSdp, out errorCode);
if (errorCode != 0)
{
Log.Items.Add("L'appel ne peut aboutir");
return;
}

_CallSessions[_CurrentlyLine].setSessionId(sessionId);
_CallSessions[_CurrentlyLine].setSessionState(true);

string Text = "Ligne " + _CurrentlyLine.ToString();


Text = Text + ": Appel en cours...";
Log.Items.Add(Text);
}

//reception d'appel
public Int32 onInviteIncoming(Int32 callbackObject,
Int32 sessionId,
String caller,
String callerDisplayName,
String callee,
String calleeDisplayName,
String audioCodecName,
String videoCodecName,
Boolean hasVideo)
{
int i = 0;
bool state = false;
string Text = string.Empty;

if (hasVideo == true)
{

Hamid Mahamat Abdoulaye – Master 1 TDSI 53


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

// Appel avec video


}
else
{
// Appel sans video
}

for (i = LINE_BASE; i < MAX_LINES; ++i)


{
if (_CallSessions[i].getSessionState() == false && _CallSessions[i].getRecvCallState() ==
false)
{
state = true;
_CallSessions[i].setRecvCallState(true);
break;
}
}

if (state == false)
{
string reason = "Occupé";
_core.rejectCall(sessionId, 486, reason);

return 0;
}

Configuration du Serveur pour TLS et SRTP

Figure 25 Configuration TLS asterisk 1 (certificat serveur)

Hamid Mahamat Abdoulaye – Master 1 TDSI 54


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 26 Configuration TLS asterisk 2 (certificat client)

Figure 27 Configuration TLS asterisk 3

Hamid Mahamat Abdoulaye – Master 1 TDSI 55


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 28 Configuration sip.conf

3. Tests

Figure 29 Test d'enregistrement

Hamid Mahamat Abdoulaye – Master 1 TDSI 56


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 30 Test d'enregistrement 2

Hamid Mahamat Abdoulaye – Master 1 TDSI 57


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 31 Test émission appel

Figure 32 Test appel établi

Hamid Mahamat Abdoulaye – Master 1 TDSI 58


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Figure 33 Test appel entrant

Figure 34 test écoute clandestine avec SRTP

Hamid Mahamat Abdoulaye – Master 1 TDSI 59


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Conclusion

Les vulnérabilités de la VoIP sont importantes et souvent intrinsèquement liées au


réseau IP. L’audit a permis de déterminer ses vulnérabilités, les menaces adhérentes et les
risques encourus. Parmi les solutions envisageables, l’implémentation d’un client SIP sécurisé
permet de garantir l’authentification entre client et serveur, l’intégrité et la sécurité lors des
communications.

Au vu de ce travail, les vulnérabilités de la VoIP ne sont plus du domaine du vague


mais plutôt un réel problème à considérer sérieusement. L’important désormais est de penser
à l’intégration de la sécurité pendant le déploiement du réseau lui-même.

Ce travail nous a permis de nous familiariser avec le domaine de l’audit, qui est tout
aussi intéressant qu’important. L’audit de la VoIP en particulier, n’est pas seulement un
ensemble de tests de pénétration, mais toute une démarche méthodique et rationnelle, dont la
finalité peut apporter énormément à l’entreprise.

Le développement du client SIP nous a permis de connaitre un nouveau langage (c#)


et de nous familiariser avec cet outil.

Evidemment, toute entreprise humaine n’est pas parfaite, et cette application attend
encore beaucoup d’améliorations.

En ce qui concerne les perspectives, on peut penser à :

- Mettre en place les autres solutions de sécurité recommandées


- Améliorer l’application par l’ajout de la vidéo, boite vocale, SMS, améliorer la
sécurité présente, la porter sur d’autres plateformes

Hamid Mahamat Abdoulaye – Master 1 TDSI 60


Audit d’un réseau VoIP et implémentation d’un client SIP sécurisé -

Bibliographie

 VoIP Security and Privacy Threat Taxonomy Public Release 1.0 (24 October
2005)
 Portsip voip sdk user manual net
 Network Infrastructure Security Technical Implementation Guide Version 7,
Release 1
 Audit de la securité des réseaux VoIP
 Practical VoIP security, Thomas Porter
 Hacking VoIP Exposed, David Endler, Mark Collier
 VoIP et sécurité : Retour d'expérience d'audits de sécurité, Herve Schauer
 Linux administration tome 3 sécuriser un serveur linux, Jean François Bouchaudy
 Protocoles réseau : grandeur et décadence, Pierre B´etouin1, Cédric Blancher, et
Nicolas Fischbach
 Etude du protocole ARP ... et de ses failles, Maladrie Julien

Webographie

 http://www.voipfr.com
 http://fr.wikipedia.org/wiki/Portail:Informatique
 http://www.vulnerabilite.com
 http://www.alliedtelesis.com/solutions
 http://www.symantec.com/connect/articles/two-attacks-against-voip
 http://www.linuxfrance.org/prj/inetdoc/securite/tutoriel/tutoriel.securite.attaquesprotoc
oles.html
 http://www.voipsa.org/Resources/tools.php
 http://www.backtrack-linux.org/wiki/index.php/Pentesting_VOIP

Hamid Mahamat Abdoulaye – Master 1 TDSI 61

Vous aimerez peut-être aussi