voix sur ip (voip) - cours.etsmtl.ca · port udp 5060 ouvert pour la signalisation sip. ... un...

48
Voix sur IP (VoIP) Jean-Marc Robert Génie logiciel et des TI

Upload: hamien

Post on 12-Sep-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

Voix sur IP(VoIP)

Jean-Marc RobertGénie logiciel et des TI

Page 2: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 3: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 4: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 5: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 6: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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)

Page 7: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 8: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 9: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 10: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 11: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 12: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

SIP – Complexe

Page 13: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 14: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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)

Page 15: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 16: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 17: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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é

Page 18: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 19: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 20: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 21: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 22: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 23: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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 ».

Page 24: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 25: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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]

Page 26: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 27: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 28: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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)

Page 29: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 30: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 31: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Moyens de protection

� Protection des données� IPsec, SRTP

Page 32: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 33: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 34: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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é

Page 35: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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é

Page 36: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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é

Page 37: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 38: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 39: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 40: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 41: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 42: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 43: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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é

Page 44: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 45: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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

Page 46: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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!

Page 47: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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.

Page 48: Voix sur IP (VoIP) - cours.etsmtl.ca · Port UDP 5060 ouvert pour la signalisation SIP. ... Un grand nombre de SIP Invite Avec ou sans ACK Un grand nombre de SIP Bye ou SIP Cancel

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