Voix sur IP (VoIP)

Transcription

Voix sur IP (VoIP)
Voix sur IP
(VoIP)
Jean-Marc Robert
Génie logiciel et des TI
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
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
Invite Alice
OK
Invite Alice
Jean-Marc Robert, ETS
Proxy SIP
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 [email protected]
OK [email protected]
OK [email protected]
ACK [email protected]
ACK [email protected]
Conversation (RTP)
Jean-Marc Robert, ETS
Bye [email protected]
Bye [email protected]
OK
OK
MTI 719 - VoIP - A09 v1.0
6
Attaques
Signalisation
Messages SIP
Interface
usager
Interface
usager
HUDP
HRTP
Message
UDP
HIP
HUDP
HRTP
Message
IP
HIP
HUDP
HRTP
Message
Lien Data
UDP
IP
Lien Data
Lien physique
Jean-Marc Robert, ETS
HMAC
Attaques classiques
MTI 719 - VoIP - A09 v1.0
Lien physique
7
Traitement de la voix
codage/décodage
CODEX
Interface
usager
Interface
usager
Attaques
HRTP
Données
RTP
HUDP
HRTP
Données
UDP
HIP
HUDP
HRTP
Données
IP
HIP
HUDP
HRTP
Données
Lien Data
RTP
UDP
IP
Lien Data
Lien physique
Jean-Marc Robert, ETS
HMAC
Attaques classiques
MTI 719 - VoIP - A09 v1.0
Lien physique
8
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 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
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 6789 RTP/AVP 0
port UDP pour la communication RTP
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
10
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
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
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
13
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
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
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
16
Menaces VoIP
Confidentialité
Écoute électronique
Analyse de trafic
Altération du trafic
Redirection d’appels
Disponibilité
DoS
Messages non désirés (SPIT)
Jean-Marc Robert, ETS
Intégrité
Accès non-autorisé
Altération du trafic
Redirection d’appels
Fraudes
Authentification
MTI 719 - VoIP - A09 v1.0
Redirection d’appels
Usurpation d’identité
17
Menaces VoIP – Cibles spécifiques SIP
Signalisation (SIP)
Enregistrement
Redirection
Cancel/Bye
Altération
Inondation
Jean-Marc Robert, ETS
Données (voix)
MTI 719 - VoIP - A09 v1.0
Écoute électronique
Altération
Inondation
18
Architecture VoIP / SIP (simplifié)
SIP Registrar
Où est Alice?
Adresse
Proxy SIP
Invite Alice
OK
Invite Alice
Jean-Marc Robert, ETS
Proxy SIP
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
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
21
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
22
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
23
Signalisation – Inondation
Un grand nombre de SIP Invite
Un grand nombre de SIP Bye ou SIP Cancel
Avec ou sans ACK
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
24
Signalisation – Inondation (boucle), Phase I
Register [email protected]
Contact [email protected], [email protected]
SIP Registrar a.com
Register [email protected]
Contact [email protected], [email protected]
Register [email protected]
Contact [email protected], [email protected]
SIP Registrar b.com
Register [email protected]
Contact [email protected], [email protected]
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
25
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]
Interdire les « forks », détecter les boucles, etc.
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
Invite [email protected]
26
SPIT – SPAM over Internet Telephony
Comparativement, le SPAM est facile à traiter!
Lorsque le téléphone sonne, est-ce un appel légitime ou un SPIT?
Le contenu du message peut être analysé avant d’être envoyé au
destinataire.
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
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
(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.
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
28
Traitement de la voix
codage/décodage
CODEX
Interface
usager
Interface
usager
Attaques
HRTP
Données
RTP
HUDP
HRTP
Données
UDP
HIP
HUDP
HRTP
Données
IP
HIP
HUDP
HRTP
Données
Lien Data
RTP
UDP
IP
Lien Data
HMAC
Lien physique
Lien physique
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
29
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
30
Moyens de protection
Protection des données
IPsec, SRTP
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
31
Protection des données – Cas simple
Site A
Site B
Entre les deux sites : VPN
SBC
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.
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
32
IPsec
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)
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
33
IPsec – Mécanisme de protection
Authentication Header (AH)
Anti-rejeu
Intégrité
Authentification de l’origine
Numéro de séquence
Pas de spoofing possible
Encapsulating Security Payload (ESP)
Chiffrement
Anti-rejeu
Numéro de séquence
Intégrité
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
34
Authentication Header (AH)
Mode de transport
Entête IP original AH Payload IP
Authentifié
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)
Mode de transport
Entête IP ESP Header Payload IP ESP Trailer ESP Auth
Chiffré
Authentifié
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
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
37
Digression – Diffie-Hellman
Alice: gx mod p
Bob: gy mod p
= gxy mod p
= gxy mod p
1. Alice choisit x au hasard.
2. Alice envoie gx mod p à Bob.
3. Après la réception du message de Bob,
Alice calcule la (gy mod p)x mod p.
4. La clé secrète peut être utilisée pour
chiffrer un message.
Jean-Marc Robert, ETS
1. Bob choisit y au hasard.
2. Bob envoie gy mod p à Bob.
3. Après la réception du message d’Alice,
Bob calcule la (gx mod p)y mod p.
4. La clé secrète peut être utilisée pour
chiffrer un message.
MTI 719 - VoIP - A09 v1.0
38
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
39
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
40
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
41
SRTP – MIKEY (RFC3830)
Clé secrète partagée a priori PSK
Alice envoie E (PSK, TGK)
Clé publique avec PKI
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
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
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
42
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.
Générateur
Clé
01001110110011001101
Texte en clair
Jean-Marc Robert, ETS
xor
MTI 719 - VoIP - A09 v1.0
Cryptogramme
43
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
44
Attaques
Signalisation
Messages SIP
Interface
usager
Interface
usager
HUDP
HRTP
Message
UDP
HIP
HUDP
HRTP
Message
IP
HIP
HUDP
HRTP
Message
Lien Data
UDP
IP
Lien Data
HMAC
Lien physique
Lien physique
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
45
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
À déconseiller : attaque du dictionnaire
pour le mot de passe (au moins) un nonce!
IPsec
TLS
La sécurité est essentiellement de proxy à proxy.
Il faut donc faire confiance à toute la chaîne de serveurs.
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
46
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
47
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
Jean-Marc Robert, ETS
MTI 719 - VoIP - A09 v1.0
48

Documents pareils