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