voix sur ip (voip) - cours.etsmtl.ca · port udp 5060 ouvert pour la signalisation sip. ... un...
TRANSCRIPT
Voix sur IP(VoIP)
Jean-Marc RobertGénie logiciel et des TI
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 2
Voix sur IP (VoIP)
� Technologie qui permet à deux personnes de communiquer.� Entreprise
� Internet
� Interopérabilité� IP et traditionnel
� Solutions� Cisco, Alcatel-Lucent, Nortel, Avaya, …
� Asterisk� Logiciel libre
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 3
Architecture VoIP (simplifié)
Internet
Serveur VoIP
Passerelle
PBX
Deux sites d’une même compagnie
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 4
Architecture VoIP / SIP (simplifié)
Proxy SIP Proxy SIP
SIP Registrar
Invite Alice
Où est Alice?
Invite Alice
Adresse
OK
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 5
Architecture VoIP / SIP (simplifié)Redirect Server SIP Registrar
Où est Alice?
Invite Alice
Adresse
Invite Alice Adresse
OK
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 6
Protocole SIP (simplifié)Alice BobProxy Server(s)
Invite Bob Invite [email protected]
OK [email protected] [email protected]
ACK [email protected] ACK [email protected]
Bye [email protected] Bye [email protected]
OKOK
Conversation (RTP)
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 7
Signalisation
Interfaceusager
UDP
IP
Lien Data
Lien physique
Interfaceusager
UDP
IP
Lien Data
Lien physique
MessageHRTPHIP HUDPHMAC
MessageHRTPHIP HUDP
MessageHRTPHUDP
Messages SIP
Attaques classiques
Attaques
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 8
Traitement de la voix
Interfaceusager
RTP
UDP
IP
Lien Data
Lien physique
Interfaceusager
RTP
UDP
IP
Lien Data
Lien physique
DonnéesHRTPHIP HUDPHMAC
DonnéesHRTPHIP HUDP
DonnéesHRTPHUDP
DonnéesHRTP
codage/décodageCODEX
Attaques classiques
Attaques
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 9
Protocole SIP – INVITE
� Le message contient une description de la session (SDP).INVITE sip:[email protected] SIP/2.0
Via : SIP/2.0/UDP sipproxy12.ets.ca:5060
Max-Forwards : 20
To : Bob <sip:[email protected]>
From : Alice <sip:[email protected]>
Call-Id: [email protected]
CSeq: 1 INVITE
Contact: [email protected]
Content-Type: application/sdp
Content-Length:162
v = 0
c = IN IP4 1.2.3.4
m = audio 12345RTP/AVP 0 15
port UDP pour la communication RTP
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 10
Protocole SIP – OK
� 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:[email protected]>
From : Alice <sip:[email protected]>
Call-Id: [email protected]
CSeq: 1 INVITE
Contact: [email protected]
Content-Type: application/sdp
Content-Length:162
v = 0
c = IN IP4 2.3.4.5
m = audio 6789RTP/AVP 0
port UDP pour la communication RTP
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 11
SIP – Complexe
� SIP specified in RFC 3261 published by IETF 2002� First iteration in 1999 (RFC2543) – ten years old
� Additional functionality specified in over 120 different RFCs(!)
� Even more pending drafts...
� Known to be complex and sometimes vague – difficult for software engineers to implement
� 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 12
SIP – Complexe
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 13
Digression – Pare-feu
Quels sont les ports UDP devant être ouverts afin de permettre que les conversations aient lieu?
Application Level Gateways� Pare-feu à état pour la signalisation
� Entrée : port UDP 5060
� Sortie : port éphémère répondant à une requête SIP � ou tout simplement UDP 5060
� Pare-feu proxy pour la conversation� Analyse des paquets de signalisation SIP (INVITE et OK)
� Récupérer les numéros de port
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 14
Digression – NAT
Quelles sont les adresses IP que Alice et Bob doivent utilisées dans leurs messages SIP?
NAT� Simple Traversal of UDP through NATs(STUN)
� Traversal Using Relay NAT (TURN)
� Interactive Connectivity Establishment (ICE)
� Universal Plug and Play(UPnP)
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 15
Digression –Session Border Controllers
Solution propriétaire en attendant une solution standardisée.
Internet
Serveur VoIP
Passerelle
PBX
SBC
SBC : Pare-feu applicatif, NAT, chiffrement, surveillance de SLA, lawful intercept, etc.
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 16
Digression – Asterisk
� Asterisk se simplifie la vie!� Port UDP 5060 ouvert pour la signalisation SIP.
� 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
� Protocole IAX (Inter-Asterisk eXchange)� Port UDP 4569 ouvert pour la signalisation et le trafic RTP.
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 17
Menaces VoIP
� Confidentialité� Écoute électronique
� Analyse de trafic
� Altération du trafic
� Redirection d’appels
� Disponibilité� DoS
� Messages non désirés (SPIT)
� Intégrité� Accès non-autorisé
� Altération du trafic
� Redirection d’appels
� Fraudes
� Authentification� Redirection d’appels
� Usurpation d’identité
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 18
Menaces VoIP – Cibles spécifiques SIP
� Signalisation (SIP)� Enregistrement
� Redirection
� Cancel/Bye
� Altération
� Inondation
� Données (voix)� Écoute électronique
� Altération
� Inondation
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 19
Architecture VoIP / SIP (simplifié)
Proxy SIP Proxy SIP
SIP Registrar
Invite Alice
Où est Alice?
Invite Alice
Adresse
OK
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 20
Architecture VoIP / SIP (simplifié)Redirect Server SIP Registrar
Où est Alice?
Invite Alice
Adresse
Invite Alice Adresse
OK
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 21
Signalisation –SIP Register
� S’enregistrer dans le domaine – sans y avoir droit.
� Modifier un enregistrement d’un autre usager.� Changer l’adresse de l’usager pour celle de l’attaquant.
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 22
Signalisation –SIP Invite
� SIP n’a aucun mécanisme de sécurité protégeant l’intégrité ou la confidentialité des messages.� Redirection d’un appel vers un « concurrent ».
� Personnification de l’appeleur.
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 23
Signalisation –SIP Redirect
� Attaquer le Redirect server afin de distribuer de fausses adresses.
� 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 24
Signalisation – Inondation
� Un grand nombre de SIP Invite� Avec ou sans ACK
� Un grand nombre de SIP Bye ou SIP Cancel� Call-Id prévisible – p.ex. [email protected]
� Tout simplement des paquets sans chercher à découvrir le Call-Id
� Faille dans l’enregistrement� Effet multiplicatif!
� Boucle dans la signalisation
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 25
Signalisation – Inondation (boucle), Phase I
SIP Registrar a.comRegister [email protected] [email protected], [email protected]
Register [email protected] [email protected], [email protected]
SIP Registrar b.comRegister [email protected] [email protected], [email protected]
Register [email protected] [email protected], [email protected]
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 26
Signalisation – Inondation (boucle), Phase II
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected]
Invite [email protected] les « forks », détecter les boucles, etc.
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 27
SPIT –SPAM over Internet Telephony
� Comparativement, le SPAM est facile à traiter!� Le contenu du message peut être analysé avant d’être envoyé au
destinataire.
� Lorsque le téléphone sonne, est-ce un appel légitime ou un SPIT?� Peu d’information pour l’analyse : source de l’appel
� Solutions:� Listes blanches
� Listes noires
� Réputation
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 28
SPIT –SPAM over Internet Telephony
I. Télémarketing persistant(A) Il va initier les appels.
(B) Il ne devrait pas raccrocher le premier.
II. Télémarketing performant(A) Il va initier les appels.
(B) Il devrait raccrocher rapidement –probablement, le premier.
III. Message préenregistré(A) Il va initier les appels.
(B) Il ne devrait pas raccrocher le premier.
Important: liste blanche pour bibliothèque, dentistes, médecins, etc.
« Usager normal »(A) Il initie et reçoit des appels.
(B) Il a une chance sur deux de raccrocher.
Problème : Comment détecter la présence d’un « SPITeur »dans un réseau? (IDS)
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 29
Traitement de la voix
Interfaceusager
RTP
UDP
IP
Lien Data
Lien physique
Interfaceusager
RTP
UDP
IP
Lien Data
Lien physique
DonnéesHRTPHIP HUDPHMAC
DonnéesHRTPHIP HUDP
DonnéesHRTPHUDP
DonnéesHRTP
codage/décodageCODEX
Attaques
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 30
Protection du trafic de données
� Le protocole RTP n’a aucun mécanisme de sécurité protégeant l’intégrité ou la confidentialité des messages.� Attaque du man-in-the-middle
� Altération des messages� DoS
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 31
Moyens de protection
� Protection des données� IPsec, SRTP
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 32
Protection des données – Cas simple
� Entre les deux sites : VPN� IPsec, TLS, ligne dédiée
� Asterisk� Simplifié dû à l’agrégation des sessions (tous sur le même port UDP).
� La gestion des clés est grandement simplifiée.
SBCSite A Site B
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 33
� Service de chiffrement, d’intégrité et d’authentification.
� Deux modes:� Mode transport permettant à deux machines de communiquer de façon
sécurisée.
� Mode tunnel permettant au trafic entre deux passerelles de communiquer de façon sécurisée.� Typiquement, utilise l’agrégation des liens.
� Principal mécanisme pour créer un VPN (Virtual Private Networks)
IPsec
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 34
IPsec – Mécanisme de protection
� Authentication Header (AH)� Anti-rejeu
� Numéro de séquence
� Intégrité
� Authentification de l’origine� Pas de spoofingpossible
� Encapsulating Security Payload(ESP)� Chiffrement
� Anti-rejeu� Numéro de séquence
� Intégrité
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 35
Authentication Header (AH)
� Mode de transport
� Mode tunnel
Authentification : HMAC-SHA1-96 et AES-XCBC-MAC-96 [RFC4835]
Entête IP original AH Payload IP
Entête IP original AH Payload IPNouvelle entête IP
Authentifié
Authentifié
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 36
Encapsulating Security Payload(ESP)
� Mode de transport
� Mode tunnel
Authentification : HMAC-SHA1-96 et AES-XCBC-MAC-96 [RFC4835]
Chiffrement : AES-CBC with 128-bit keys[RFC4835]
Entête IP ESP Header Payload IP
Nouvelle entête IP
ESP Trailer ESP Auth
Chiffré
Authentifié
Entête IPESP Header Payload IP ESP Trailer ESP Auth
Chiffré
Authentifié
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 37
IPsec – ISAKMP, IKE et Oakley
� Chaque pair d’intervenants doit posséder un clé secrète commune. � Configuration manuelle.
Solution :� Internet Security Association and Key Management Protocol(ISAKMP)
� Protocole permettant d’établir une contexte de sécurité (Security Association) entre deux intervenants.
� But ultime : Les deux intervenants doivent partager une clé commune.
� Internet Key Exchange(IKE) et Oakley� Protocoles permettant d’échanger une clé de session entre deux intervenants.
� Variantes de Diffie-Hellman.
� Protocoles pouvant être utilisés par ISAKMP
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 38
Digression – Diffie-Hellman
1. Alice choisit x au hasard.
2. Alice envoie gx modp à Bob.
3. Après la réception du message de Bob,
Alice calcule la (gy modp)x modp.
4. La clé secrète peut être utilisée pour
chiffrer un message.
1. Bob choisit y au hasard.
2. Bob envoie gy modp à Bob.
3. Après la réception du message d’Alice,
Bob calcule la (gx modp)y modp.
4. La clé secrète peut être utilisée pour
chiffrer un message.
Alice: gx mod p
Bob: gy mod p
= gxy mod p = gxy mod p
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 39
Digression – DH : Man-in-the-middle� 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 40
Protection des données – SRTP (l’alternative)
� SRTP� Chiffrement et authentification
� Objectifs� Minimiser l’impact sur le trafic
� Taille des paquets
� Délais
� Minimiser le nombre de clés
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 41
SRTP – Mécanisme d’échange de clés
� Multimedia Internet keying protocol(MIKEY)� Protocole répondant au besoin de performance (faible largeur de bande,
faible puissance de calcul).
� Trois modes:� Clé secrète partagée a priori
� Clé publique avec PKI (Public Key Infrastructure)
� Clé publique avec PKI + Dérivation utilisant Diffie-Hellman
� Mais aussi� SDP’s Security DEscriptions(SDES)
� ZRTP� Basé sur Diffie-Hellman
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 42
SRTP – MIKEY (RFC3830)
� Clé secrète partagée a priori PSK� Alice envoie E (PSK, TGK)
� TGK : clé de session à partir de laquelle la clé de chiffrement et la clé d’authentification sont dérivées.
� Clé publique avec PKI� Alice envoie E (KpubBob, TGK)� Bob déchiffre avec KprivBob
� Clé publique avec PKI + Dérivation utilisant Diffie-Hellman� Alice envoie [gx mod p, Sign (KprivAlice , gx mod p)]� Bob répond avec [gy mod p, Sign (KprivBob , gy mod p)]� Les clés de session sont dérivés à partir de gxy mod p
Pas de perfect forward secrecy
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 43
Digression – Chiffrement continu
� Le chiffrement continu (Stream cipher) chiffre un bit du message à la fois dès que celui-ci est disponible.� Il n’est pas nécessaire que les 128 bits d’un bloc (p.ex. AES) soient disponibles.
� Ce type de méthode génère une séquence qui est « additionnée » au message pour produire le cryptogramme.
Texte en clair Cryptogramme
Générateur
01001110110011001101
xor
Clé
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 44
Digression – Chiffrement continu
� Propriétés� Longue période avant que la séquence ne contienne des patrons répétitifs.
� La séquence est statistiquement imprévisible.
� La séquence est statistiquement non biaisée.� Autant de 0 que de 1.
� La séquence ne dépend pas de la clé de façon linéaire.� 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 45
Signalisation
Interfaceusager
UDP
IP
Lien Data
Lien physique
Interfaceusager
UDP
IP
Lien Data
Lien physique
MessageHRTPHIP HUDPHMAC
MessageHRTPHIP HUDP
MessageHRTPHUDP
Messages SIP
Attaques
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 46
Protection de la signalisation
� Afin de s’assurer de l’intégrité et de la confidentialité des messages de signalisation.� HTTP-auth
� Défi / Réponse
� IPsec
� TLS
� La sécurité est essentiellement de proxy à proxy.� Il faut donc faire confiance à toute la chaîne de serveurs.
À déconseiller : attaque du dictionnaire pour le mot de passe (au moins) un nonce!
Jean-Marc Robert, ETS MTI 719 - VoIP - A09 v1.0 47
SPIT – IDS
� Listes blanches
� Listes noires
� Réputation� Analyse statistique sur les fréquences :
� Nombre d’appels initiés vs. Nombre d’appels reçus� 1:1 mais pas 100:1
� Nombre d’appels terminés vs. Nombre total d’appels� 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 48
Références
� IETF RFC5039, The Session Initiation Protocol (SIP) and Spam, 2008.
� J. Kuthan et D. Sisalem, SIP Tutorial, http://www.iptel.org/tutorial
� Peter Thermos et Ari Takanen, Securing VoIP Networks: Threats, Vulnerabilities, and Countermeasures, Addison-Wesley, 2008.
� J. Van Meggelen, L. Madsen et J. Smith, Asterisk: The Future of Telephony, O’Reilly, 2007, http://www.asteriskdocs.org/
� VOIPSA, VoIP Security and Privacy Threat Taxonomy, 2005, http://www.voipsa.org/Activities/VOIPSA_Threat_Taxonomy_0.1.pdf