Vous êtes sur la page 1sur 49

Voix sur IP

(VoIP)
Jean-Marc Robert
Génie logiciel et des TI
Voix sur IP (VoIP)
n  Technologie qui permet à deux personnes de communiquer.
q  Entreprise
q  Internet
q  Interopérabilité
n  IP et traditionnel

n  Solutions
q  Cisco, Alcatel-Lucent, Nortel, Avaya, …
q  Asterisk
n  Logiciel libre

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 2


Architecture VoIP (simplifié)

Passerelle

Serveur VoIP
PBX
Internet

Deux sites d’une même compagnie

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 3


Architecture VoIP / SIP (simplifié)
SIP Registrar

Où est Alice?
Adresse
Proxy SIP Proxy SIP
Invite Alice

Invite Alice OK

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 4


Architecture VoIP / SIP (simplifié)
Redirect Server SIP Registrar
Où est Alice?

Adresse

Invite Alice Adresse

Invite Alice

OK

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 5


Protocole SIP (simplifié)
Alice Proxy Server(s) Bob

Invite Bob Invite Bob@ets.ca

OK Bob@ets.ca OK Bob@ets.ca

ACK Bob@ets.ca ACK Bob@ets.ca

Conversation (RTP)

Bye Bob@ets.ca Bye Bob@ets.ca

OK OK

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 6


Attaques
Signalisation
Messages SIP

Interface Interface
usager usager

UDP HUDP HRTP Message UDP

IP HIP HUDP HRTP Message IP

Lien Data HMAC HIP HUDP HRTP Message Lien Data

Lien physique Attaques classiques Lien physique

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 7


Traitement de la voix
codage/décodage
CODEX

Interface Interface
usager usager
Attaques

RTP HRTP Données RTP

UDP HUDP HRTP Données UDP

IP HIP HUDP HRTP Données IP

Lien Data HMAC HIP HUDP HRTP Données Lien Data

Lien physique Attaques classiques Lien physique

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 8


Protocole SIP – INVITE
n  Le message contient une description de la session (SDP).
INVITE sip:bob@ets.ca SIP/2.0
Via : SIP/2.0/UDP sipproxy12.ets.ca:5060
Max-Forwards : 20
To : Bob <sip:bob@ets.ca>
From : Alice <sip:alice@ets.ca>
Call-Id: 123@sipproxy.ets.ca
CSeq: 1 INVITE
Contact: alice@1.2.3.4
Content-Type: application/sdp
Content-Length:162
v=0
c = IN IP4 1.2.3.4
m = audio 12345 RTP/AVP 0 15
port UDP pour la communication RTP

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 9


Protocole SIP – OK
n  Le message contient une description de la session (SDP).
SIP/2.0 200 OK
Via : SIP/2.0/UDP sipproxy5.ets.ca:5060
Via : SIP/2.0/UDP sipproxy12.ets.ca:5060
Max-Forwards : 20
To : Bob <sip:bob@ets.ca>
From : Alice <sip:alice@ets.ca>
Call-Id: 123@sipproxy.ets.ca
CSeq: 1 INVITE
Contact: bob@2.3.4.5
Content-Type: application/sdp
Content-Length:162
v=0
c = IN IP4 2.3.4.5
m = audio 6789 RTP/AVP 0
port UDP pour la communication RTP

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 10


SIP – Complexe
n  SIP specified in RFC 3261 published by IETF 2002
q  First iteration in 1999 (RFC2543) – ten years old
q  Additional functionality specified in over 120 different RFCs(!)
q  Even more pending drafts...
q  Known to be complex and sometimes vague – difficult for software
engineers to implement
q  Interoperability conference - “SIPit”

Tiré de Lars Strand, VoIP – some threats, security attacks and


security mechanisms, RiskNet – Open Workshop, 2009.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 11


SIP – Complexe

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 12


Digression – Pare-feu
Quels sont les ports UDP devant être ouverts afin de
permettre que les conversations aient lieu?

Application Level Gateways


q  Pare-feu à état pour la signalisation
n  Entrée : port UDP 5060
n  Sortie : port éphémère répondant à une requête SIP
q  ou tout simplement UDP 5060

q  Pare-feu proxy pour la conversation


n  Analyse des paquets de signalisation SIP (INVITE et OK)
q  Récupérer les numéros de port

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 13


Digression – NAT
Quelles sont les adresses IP que Alice et Bob doivent
utilisées dans leurs messages SIP?

NAT
q  Simple Traversal of UDP through NATs (STUN)
q  Traversal Using Relay NAT (TURN)
q  Interactive Connectivity Establishment (ICE)
q  Universal Plug and Play (UPnP)

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 14


Digression – Session Border Controllers
Solution propriétaire en attendant une solution standardisée.

Passerelle

SBC

Serveur VoIP
PBX
Internet

SBC : Pare-feu applicatif, NAT, chiffrement, surveillance de SLA, lawful intercept, etc.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 15


Digression – Asterisk
n  Asterisk se simplifie la vie!
q  Port UDP 5060 ouvert pour la signalisation SIP.
q  Port UDP 10,000 à 20,000 ouverts par défaut pour le trafic RTP.
# iptables -I RH-Firewall-1-INPUT -p udp --dport 5060 -j ACCEPT
# iptables -I RH-Firewall-1-INPUT -p udp --dport 10000:20000 -j ACCEPT

n  Protocole IAX (Inter-Asterisk eXchange)


q  Port UDP 4569 ouvert pour la signalisation et le trafic RTP.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 16


Menaces VoIP
n  Confidentialité n  Intégrité
q  Écoute électronique q  Accès non-autorisé
q  Analyse de trafic q  Altération du trafic
q  Altération du trafic q  Redirection d’appels
q  Redirection d’appels q  Fraudes

n  Disponibilité n  Authentification


q  DoS q  Redirection d’appels
q  Messages non désirés (SPIT) q  Usurpation d’identité

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 17


Menaces VoIP – Cibles spécifiques SIP
n  Signalisation (SIP) n  Données (voix)
q  Enregistrement q  Écoute électronique
q  Redirection q  Altération
q  Cancel/Bye q  Inondation
q  Altération
q  Inondation

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 18


Architecture VoIP / SIP (simplifié)
SIP Registrar

Où est Alice?
Adresse
Proxy SIP Proxy SIP
Invite Alice

Invite Alice OK

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 19


Architecture VoIP / SIP (simplifié)
Redirect Server SIP Registrar
Où est Alice?

Adresse

Invite Alice Adresse

Invite Alice

OK

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 20


Signalisation – SIP Register
n  S’enregistrer dans le domaine – sans y avoir droit.

n  Modifier un enregistrement d’un autre usager.


q  Changer l’adresse de l’usager pour celle de l’attaquant.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 21


Signalisation – SIP Invite
n  SIP n’a aucun mécanisme de sécurité protégeant l’intégrité ou
la confidentialité des messages.
q  Redirection d’un appel vers un « concurrent ».
q  Personnification de l’appeleur.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 22


Signalisation – SIP Redirect
n  Attaquer le Redirect server afin de distribuer de fausses adresses.

n  Altérer les réponses aux requêtes faites au Redirect server.

à Même objectif : Redirection d’un appel vers un « concurrent ».

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 23


Signalisation – Inondation
n  Un grand nombre de SIP Invite
q  Avec ou sans ACK

n  Un grand nombre de SIP Bye ou SIP Cancel


q  Call-Id prévisible – p.ex. 123@sipproxy.ets.ca
q  Tout simplement des paquets sans chercher à découvrir le Call-Id

n  Faille dans l’enregistrement


q  Effet multiplicatif!
q  Boucle dans la signalisation

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 24


Signalisation – Inondation (boucle), Phase I

Register u1@a.com SIP Registrar a.com


Contact u1@b.com, u2@b.com
Register u2@a.com
Contact u1@b.com, u2@b.com

Register u1@b.com SIP Registrar b.com


Contact u1@a.com, u2@a.com
Register u2@b.com
Contact u1@a.com, u2@a.com

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 25


Signalisation – Inondation (boucle), Phase II
Invite u1@b.com
Invite u1@a.com
Invite u2@b.com
Invite u2@b.com
Invite u1@b.com
Invite u2@a.com
Invite u2@b.com
Invite u1@a.com
Invite u1@b.com
Invite u1@a.com
Invite u2@b.com
Invite u2@b.com
Invite u1@b.com
Invite u2@a.com
Invite u2@b.com
Interdire les « forks », détecter les boucles, etc.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 26


SPIT – SPAM over Internet Telephony
n  Comparativement, le SPAM est facile à traiter!
q  Le contenu du message peut être analysé avant d’être envoyé au
destinataire.

n  Lorsque le téléphone sonne, est-ce un appel légitime ou un SPIT?


q  Peu d’information pour l’analyse : source de l’appel

n  Solutions:
q  Listes blanches
q  Listes noires
q  Réputation

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 27


SPIT – SPAM over Internet Telephony
Problème : Comment détecter la présence d’un « SPITeur »
dans un réseau? (IDS)

I. Télémarketing persistant III. Message préenregistré


(A) Il va initier les appels. (A) Il va initier les appels.
(B) Il ne devrait pas raccrocher le premier. (B) Il ne devrait pas raccrocher le premier.

Important : liste blanche pour bibliothèque,


II. Télémarketing performant dentistes, médecins, etc.
(A) Il va initier les appels.
(B) Il devrait raccrocher rapidement –
probablement, le premier. « Usager normal »
(A) Il initie et reçoit des appels.
(B) Il a une chance sur deux de raccrocher.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 28


Traitement de la voix
codage/décodage
CODEX

Interface Interface
usager usager
Attaques

RTP HRTP Données RTP

UDP HUDP HRTP Données UDP

IP HIP HUDP HRTP Données IP

Lien Data HMAC HIP HUDP HRTP Données Lien Data

Lien physique Lien physique

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 29


Protection du trafic de données
n  Le protocole RTP n’a aucun mécanisme de sécurité protégeant
l’intégrité ou la confidentialité des messages.
q  Attaque du man-in-the-middle
q  Altération des messages
n  DoS

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 30


Moyens de protection
n  Protection des données
q  IPsec, SRTP

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 31


Protection des données – Cas simple

Site A SBC Site B

n  Entre les deux sites : VPN


q  IPsec, TLS, ligne dédiée

n  Asterisk
q  Simplifié dû à l’agrégation des sessions (tous sur le même port UDP).

à La gestion des clés est grandement simplifiée.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 32


IPsec
n  Service de chiffrement, d’intégrité et d’authentification.

n  Deux modes:


q  Mode transport permettant à deux machines de communiquer de façon
sécurisée.

q  Mode tunnel permettant au trafic entre deux passerelles de


communiquer de façon sécurisée.
n  Typiquement, utilise l’agrégation des liens.

n  Principal mécanisme pour créer un VPN (Virtual Private Networks)

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 33


IPsec – Mécanisme de protection
n  Authentication Header (AH)
q  Anti-rejeu
n  Numéro de séquence
q  Intégrité
q  Authentification de l’origine
n  Pas de spoofing possible

n  Encapsulating Security Payload (ESP)


q  Chiffrement
q  Anti-rejeu
n  Numéro de séquence
q  Intégrité

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 34


Authentication Header (AH)
n  Mode de transport

Entête IP original AH Payload IP

Authentifié

n  Mode tunnel

Nouvelle entête IP Entête IP original AH Payload IP

Authentifié

Authentification: HMAC-SHA1-96 et AES-XCBC-MAC-96 [RFC4835]

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 35


Encapsulating Security Payload (ESP)
n  Mode de transport

Entête IP ESP Header Payload IP ESP Trailer ESP Auth


Chiffré
Authentifié

n  Mode tunnel

Nouvelle entête IP ESP Header Entête IP Payload IP ESP Trailer ESP Auth
Chiffré
Authentifié

Authentification: HMAC-SHA1-96 et AES-XCBC-MAC-96 [RFC4835]


Chiffrement: AES-CBC with 128-bit keys [RFC4835]
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 36
IPsec – ISAKMP, IKE et Oakley
n  Chaque pair d’intervenants doit posséder un clé secrète
commune.
q  Configuration manuelle.

Solution :
q  Internet Security Association and Key Management Protocol (ISAKMP)
n  Protocole permettant d’établir une contexte de sécurité (Security Association) entre deux
intervenants.
n  But ultime : Les deux intervenants doivent partager une clé commune.

q  Internet Key Exchange (IKE) et Oakley


n  Protocoles permettant d’échanger une clé de session entre deux intervenants.
n  Variantes de Diffie-Hellman.
n  Protocoles pouvant être utilisés par ISAKMP

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 37


Digression – Diffie-Hellman

Alice: gx mod p

Bob: gy mod p

= gxy mod p = gxy mod p

1. Alice choisit x au hasard. 1. Bob choisit y au hasard.


2. Alice envoie gx mod p à Bob. 2. Bob envoie gy mod p à Bob.
3. Après la réception du message de Bob, 3. Après la réception du message d’Alice,
Alice calcule la (gy mod p)x mod p. Bob calcule la (gx mod p)y mod p.
4. La clé secrète peut être utilisée pour 4. La clé secrète peut être utilisée pour
chiffrer un message. chiffrer un message.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 38


Digression – DH : Man-in-the-middle
n  Lorsque deux intervenants veulent échanger des informations
pour obtenir une clé de session grâce à DH, ils se doivent
d’authentifier leur partenaire.

Alice: Voici mes données pour la clé

Bob: Voici mes données pour la clé

The man-in-the-middle

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 39


Protection des données – SRTP (l’alternative)
n  SRTP
q  Chiffrement et authentification

n  Objectifs
q  Minimiser l’impact sur le trafic
n  Taille des paquets
n  Délais
q  Minimiser le nombre de clés

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 40


SRTP – Mécanisme d’échange de clés
n  Multimedia Internet keying protocol (MIKEY)
q  Protocole répondant au besoin de performance (faible largeur de bande,
faible puissance de calcul).
q  Trois modes:
n  Clé secrète partagée a priori
n  Clé publique avec PKI (Public Key Infrastructure)
n  Clé publique avec PKI + Dérivation utilisant Diffie-Hellman

n  Mais aussi


q  SDP’s Security DEscriptions (SDES)
q  ZRTP
n  Basé sur Diffie-Hellman

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 41


SRTP – MIKEY (RFC3830)
n  Clé secrète partagée a priori PSK
q  Alice envoie E (PSK, TGK)
n  TGK : clé de session à partir de laquelle la clé de chiffrement et la clé d’authentification
sont dérivées.

Pas de perfect forward secrecy


n  Clé publique avec PKI
q  Alice envoie E (KpubBob, TGK)
q  Bob déchiffre avec KprivBob

n  Clé publique avec PKI + Dérivation utilisant Diffie-Hellman


q  Alice envoie [gx mod p, Sign (KprivAlice , gx mod p)]
q  Bob répond avec [gy mod p, Sign (KprivBob , gy mod p)]
q  Les clés de session sont dérivés à partir de gxy mod p

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 42


Digression – Chiffrement continu
n  Le chiffrement continu (Stream cipher) chiffre un bit du message à la fois dès
que celui-ci est disponible.
q  Il n’est pas nécessaire que les 128 bits d’un bloc (p.ex. AES) soient disponibles.

n  Ce type de méthode génère une séquence qui est « additionnée » au message
pour produire le cryptogramme.

Clé Générateur

01001110110011001101

Texte en clair xor Cryptogramme

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 43


Digression – Chiffrement continu
n  Propriétés
q  Longue période avant que la séquence ne contienne des patrons répétitifs.

q  La séquence est statistiquement imprévisible.

q  La séquence est statistiquement non biaisée.


n  Autant de 0 que de 1.

q  La séquence ne dépend pas de la clé de façon linéaire.


n  Il est difficile de trouver les bits de la clé en fonction de la séquence.

Mais, par dessus tout, l’important est de ne pas utiliser la


même séquence pour deux messages différents.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 44


Attaques
Signalisation
Messages SIP

Interface Interface
usager usager

UDP HUDP HRTP Message UDP

IP HIP HUDP HRTP Message IP

Lien Data HMAC HIP HUDP HRTP Message Lien Data

Lien physique Lien physique

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 45


Protection de la signalisation
n  Afin de s’assurer de l’intégrité et de la confidentialité des
messages de signalisation.
q  HTTP-auth
À déconseiller : attaque du dictionnaire
n  Défi / Réponse
pour le mot de passe (au moins) un nonce!
q  IPsec
q  TLS

n  La sécurité est essentiellement de proxy à proxy.


q  Il faut donc faire confiance à toute la chaîne de serveurs.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 46


SPIT – IDS
n  Listes blanches

n  Listes noires

n  Réputation
q  Analyse statistique sur les fréquences :
n  Nombre d’appels initiés vs. Nombre d’appels reçus
q  1:1 mais pas 100:1
n  Nombre d’appels terminés vs. Nombre total d’appels
q  1:2 (50-50 de raccrocher le premier)

R. MacIntosh et D. Vinokurov, Detection and Mitigation of Spam in IP


Telephony Networks using Signaling Protocol Analysis, 2005 IEEE
Sarnoff Symposium.

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 47


Références
n  IETF RFC5039, The Session Initiation Protocol (SIP) and Spam,
2008.
n  J. Kuthan et D. Sisalem, SIP Tutorial, http://www.iptel.org/tutorial
n  Peter Thermos et Ari Takanen, Securing VoIP Networks: Threats,
Vulnerabilities, and Countermeasures, Addison-Wesley, 2008.
n  J. Van Meggelen, L. Madsen et J. Smith, Asterisk: The Future of
Telephony, O’Reilly, 2007, http://www.asteriskdocs.org/
n  VOIPSA, VoIP Security and Privacy Threat Taxonomy, 2005,
http://www.voipsa.org/Activities/VOIPSA_Threat_Taxonomy_0.1.pdf

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 48


Finalement, c’est une bataille de personnages

Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 49