Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su...

64
SIP Session Initiation Protocol Ing. Pierluigi Gallo Servizi Applicativi su Internet

Transcript of Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su...

Page 1: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP Session Initiation Protocol Ing. Pierluigi Gallo

Servizi Applicativi su Internet

Page 2: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Introduzione 1/2

 Protocollo di segnalazione basato su IP

 Standard IETF (poi accettato anche da 3GPP)

 Utilizza alcuni paradigmi e strumenti di Internet (URL, DNS, proxy, …)

 Protocollo di controllo e segnalazione per la gestione delle sessioni tra utenti

 Registrations, invitations, acceptations, and disconnections

 Non dipende dai protocolli di livello inferiore(TCP, UDP, X.25, ATM, …)

2

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 3: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Introduzione 2/2

  1996 - Henning Schulzrinne, Mark Handley

  Prima RFC nel 1999 (RFC n. 2543)

  RFC 3261 del 2000

  Alternativa ad H.323

  Flessibile e semplice

  Offre funzionalità avanzate

  Consente di gestire sessioni I cui dati possono essere di diverso tipo:   Audio (Fonia)   Video   Instant messaging   Notifica presenza

3

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 4: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP - Session Initiation Protocol   Controlla la segnalazione su reti IP

  Determina la locazione del terminale chiamato

  Determina la sua eventuale disponibilità

  Supporta trasferimento e terminazione chiamata

  E’ basato su un modello client-server

  E’ un protocollo text-based (come HTTP) basato su richieste/risposte

  Inizia, modifica e termina la sessione

  Assume che il livello di trasporto sia inattendibile

  Non definisce attributi di sessione

rimanendo indipendente

  Supporta servizi unicast e multicast

  Supporta la mobilità

  Usato per il VoIP

4

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 5: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP ed il livello applicazione

  Livello applicazione   DHCP, HTTP, HTTPS , SMTP, POP3, IMAP, FTP, SFTP, DNS,

SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, HSRP, RTP, BGP, RIP, IGRP,...

  Livello di trasporto   TCP, UDP, SCTP, DCCP ...

  Livello di rete   IPv4, IPv6, ICMP, ICMPv6, IGMP, IPsec, OSPF ...

 Data link   Ethernet, WiFi, PPP, Token ring, ARP, ATM, FDDI,

LLC, SLIP, WiMAX, HSDPA, MPLS ...

5

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 6: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Caratteristiche  E’ un protocollo di livello applicazione

 Supporta i seguenti protocolli:  SDP (Session Description Protocol) per negoziare

le caratteristiche della sessione multimediale  RTP (Real-time Transport Protocol) per il trasporto

dei dati multimediali  RTSP (Realt-Time Streaming Protocol)  RTCP (Real Time Control Protocol) per monitorare

la qualità del servizio e per comunicare informazioni sui partecipanti di una sessione in corso

 MGCP (Media Gateway Control Protocol) per controllare un eventuale accesso alla PSTN

 SAP (Session Announcement Protocol)

6

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 7: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Caratteristiche  Porta di default 5060 (TCP UDP)  non criptato

  porta 5061 (TLS)   criptato

  sessioni unicast e multicast

  ciascuna sessione puo’ riguardare uno o piu’ flussi multimediali

 I flussi multimediali sono trasportati da altri protocolli  RTP/RTSP (SIP si occupa solo della segnalazione)

 I parametri vengono negoziati mediante altri protocolli   porte, protocolli, codec,

7

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 8: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Applicazioni

  chiamate voce

  videoconferenze

  instant messaging

  presence notification

  trasferimento files

  giochi online

 mobilita’

a.a. 2010/2011 Ing. Pierluigi Gallo

8

Page 9: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Altri protocolli di segnalazione

  segnalazione PSTN

a.a. 2010/2011 Ing. Pierluigi Gallo

9

Page 10: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Architettura

  Segnalazione e dati viaggiano in flussi differenti

  UAC: user agent client che fa le richieste

  UAS: user agent che risponde alle richieste

10

CHIAMANTE CHIAMATO

UAC

UAS

UAS

UAC

SIP PROXY

UAC

UAC

UAS INVITE INVITE

BYE

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 11: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

11 SIP: Funzionalità di base

 User location: dispositivo terminale usato per la comunicazione

 User capabilities: mezzo e parametri di trasmissione

 User availability: capacità, disponibilità e volontà del chiamato di stabilire la comunicazione

 Call setup: "ringing", instaurazione di una chiamata tra chiamante e chiamato (in modo simile alla PSTN)

 Call handling: gestione della chiamata dall’instaurazione all’abbattimento

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 12: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Lo stack protocollare SIP

Network Access Layer (ATM, Ethernet, PPP, …)

IP

UDP o TCP (tipicamente su porta 5060)

RTP/RTCP

Audio/Video Coding

SIP

12

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 13: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Elementi del sistema SIP

  UA - User Agent   UAC - User Agent Client (per l’invio delle richieste)   UAS - User Agent Server (per ricevere i messaggi ed

inviare le risposte)

  Registrar Server (contiene le informazioni di accesso agli UA per la risoluzione degli indirizzi SIP)

  Location Server (contiene le corrispondenze tra gli UA e gli indirizzi Ip e consente una loro variazione dinamica per gestire la mobilità)

  Network Server   Proxy   Redirect

13

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 14: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Indirizzi SIP

  Sono identificati attraverso un URL (Universal Resource Locator) SIP

  Il formato è identico a quello degli indirizzi e-mail:

user@host Nome utente Oppure Numero di telefono

Nome Dominio Oppure Indirizzo IP

Esempi: [email protected] [email protected];user=phone nomeutente:password@host:port;uri-parameters?headers

14

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 15: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Messaggi:

•  Messaggi di testo simili all’HTTP •  Start line

–  Request (client-server) –  Response (server-client)

•  Uno o più campi di header •  Chiamante e chiamato •  oggetto

•  Una linea vuota che simboleggia le fine degli header

•  Message body (opzionale) •  Tipo di sessione •  Tipo di protocollo

15

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 16: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Message – Transaction - Dialog

•  Un messaggio è una richiesta o una risposta

•  L’insieme di una richiesta e della/e successiva/e risposta/e viene detta Transaction

•  Una transazione è individuata da una transaction-ID che tiene conto della sorgente, del destinatario e del numero di sequenza

•  Una relazione tra entità paritetiche che si scambiano richieste e risposte viene detta Dialog

16

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 17: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Metodi  Sono composte da:  Metodi  Request URI (Universal Resource Identifier)  Versione del protocollo SIP in uso

  I metodi possibili sono:   Invite  Ack  Options  Bye  Cancel  Register   Info

17

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 18: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Metodi

  Un messaggio SIP contiene un metodo

 Dopo I metodi vengono gli headers

  Riga vuota

  Headers del protocollo SDP

18

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 19: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Richieste

19

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 20: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Register

 Consente ad un client di registrare su un register server un utente identificato dall’indirizzo contenuto nel campo to

 Registrazione su più server

  diverse registrazioni su un unico server

20

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 21: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Invite

 Inizia una sessione invitando il chiamato a parteciparvi

 Indicazione del chiamante e del chiamato

 Specifica il tipo di dati

 Contiene, tipicamente, una descrizione di sessione scritta in SDP, con le informazioni sufficienti all’instaurazione della connessione

 Viene confermato con un ACK sulla risposta finale

21

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 22: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Cancel

  Permette ad un client di cancellare una richiesta inviata precedentemente

  Termina una richiesta pendente

  Si usa cancel quando la sessione non ha ancora avuto inizio, altrimenti BYE

22

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 23: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

BYE

 Abbatte una sessione (Dialog)

  Può essere inviato sia dal chiamante che dal chiamato

23

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 24: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Info

• Permette lo scambio di informazioni personali lungo un percorso di segnalazione

• Consente lo scambio di informazioni di sessioni in corso

• DTMF

24

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 25: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Risposte

25

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 26: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Risposte

 Sei classi di risposte:  Informational 1XX  Success 2XX  Redirection 3XX  Request Failure 4XX  Server Failure 5XX  Global Failure 6XX  Tutte le risposte eccetto le 1xx sono considerate

final e quindi vanno seguite da ACK

26

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 27: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Informational 1XX  Viene inviato quando il server sta contattando il

chiamato e il tempo risulta superiore a 200ms

  Esempio: 180 - ringing - l’utente localizzato è in attesa di risp.

  Trying

Success 2XX •  Indica che la richiesta è stata accettata con

successo •  Esempio: 200 - messaggio di OK

Redirection 3XX •  Vengono passate informazioni riguardo alla nuova

posizione dell’utente cercato

27

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 28: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Request Failure 4XX   Richiesta fallita a causa del client

  Esempio: 404 - not found - utente non reperibile

Server Failure 5XX •  Richiesta fallita a causa del server •  Esempio: 501 - not implemented - il server non

supporta le modalità necessarie per soddisfare la richiesta

Global Failure 6XX •  Il server non risponde ad informazioni definitive

28

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 29: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP Diagram

A B Proxy Proxy

(Registrar local services)

……. ……. …….

Register 200 Ok

Register 200 Ok

Invite 100 Trying Invite

100 Trying Invite 180 Ringing

180 Ringing 180 Ringing

200 Ok 200 Ok

200 Ok

Ack Media Session

Bye 200 Ok

29

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 30: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Registrar server

  Server dedicato alla registrazione di un utente alla rete

  Puo’ essere integrato all’interno del Proxy

  le richieste di registrazione vengono memorizzate all’interno dei location server, i quali forniscono la corrispondenza tra indirizzo e location

  Una registrazione puo’ essere effettuata in multicast (sip.mcast.net 224.0.1.75)

30

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 31: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Registration and invite 31

Tratto dalla RFC 3261

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 32: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Processo di registrazione 32

REGISTER sip:registrar.work.com SIP/2.0

REGISTER sip:registrar.work.com SIP/2.0 Via: SIP/2.0/UDP station1.work.com; branch=z9hG4bK123 Max-Forwards: 70 From: SIP: [email protected];tag=123456 To: sip:[email protected] Call-ID: [email protected] Cseq: 1 REGISTER Contact: sip: [email protected] Expires: 7200 Content-Length: 0

SIP/2.0 200 OK

SIP/2.0 200 OK Via: SIP/2/0/UDP station1.work.com; branch=z9hG4bK123 From: sip:[email protected] Call-ID: [email protected] CSEQ: 1 REGISTER Contact: sip:[email protected] Expires: 3600 Content-Length: 0

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 33: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Proxy server

  Gestisce le richieste o le inoltra ad altri server

  Può essere usato per inoltrare una chiamata

33

Ing. Pierluigi Gallo

Page 34: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Redirect servers

  Map the destination address to zero or more new addresses

  Do not initiate any SIP requests

34

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 35: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

35 SIP Call Establishment

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 36: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Chiamata ad un numero

  Prova a chiamare lo stesso utente su più destinazioni

  Il primo che risponde va a buon fine, gli altri vengono chiusi

36

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 37: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Header:

  Consente di specificare:   Chiamante   Chiamato   Percorso   Tipo di messaggio

  Il protocollo prevede 37 tipi di intestazioni, divisi in 4 gruppi:   Intestazioni generale (richieste e risposte)   Intestazioni di entità (relative a tipo e lunghezza del

messaggio)   Intestazioni di richiesta (consentono informazioni di

richiesta aggiuntive)   Intestazioni di risposta (consentono informazioni di

risposta aggiuntive)

37

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 38: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Gestione della mobilità

  Il messaggio Register consente la registrazione di uno UA nel Registrar Server della rete corrente

  Il Registrar Server può essere individuato:   Mandando un messaggio multicast ad un indirizzo

noto

  Contattando l’Home Domain Registrar (individuabile attraverso il server DNS)

  Usando SLP (Server Location Protocol)

  SLP è stato progettato per facilitare l’operazione di discovery di risorse della rete quali Web Servers, stampanti, fax…

38

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 39: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Uno scenario di funzionamento UA UA Proxy/Registrar

Server Register

200 OK Registration

Call Setup

Invite

100 Trying Invite

180 Ringing 180 Ringing

200 OK 200 OK

Ack Ack

Bye

Teardown

Bye 100 Trying

200 OK 200 OK

39

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 40: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Dettaglio di un pacchetto “Invite”

INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP vo1.hq.university.com To: Bob <sip:[email protected]> From: Alice <sip:[email protected]>; tag=18271 Call-ID: [email protected] CSeq: 12921 INVITE Contact: <sip:[email protected]>

Alice invita Bob. Il pacchetto Invite viene inoltrato dallo UA di Alice al proxy server vo1.hq.university.com. La chiamata viene indentificata univocamente grazie al campo Call-ID.

40

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 41: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Transactions

41

a.a. 2010/2011

Ing. Pierluigi Gallo

Page 42: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Transazione 42

Clie

nt

tra

nsa

ctio

n

UAC

Serv

er t

ran

sac

tion

UAS

Clie

nt

tra

nsa

ctio

n

Outbound Proxy

Serv

er t

ran

sac

tion

Clie

nt

tra

nsa

ctio

n

Inbound proxy

Serv

er t

ran

sac

tion

request request request

response response response

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 43: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Client Transaction   Una client transaction é implementata con una

State Machine

  TU = transaction user (ogni entita’ SIP eccetto i proxy stateless)

 Quando TU vuole iniziare una nuova transaction, crea una client transaction la quale inizia l’esecuzione di una macchina a stati (ce ne sono diverse in base al tipo di transaction)

 Due tipi di client transaction   INVITE transaction (relativa ad una richiesta INVITE)   hanno una durata maggiore rispetto a quelle di altro

tipo in quanto richiedono l’intervento umano per accettare la chiamata

  Non-INVITE transaction (per gli altri tipi di richieste)   Terminano immediatamente

43

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 44: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

INVITE transaction

A B Proxy Proxy

(Registrar local services)

……. ……. …….

Register 200 Ok

Register 200 Ok

Invite 100 Trying Invite

100 Trying Invite 180 Ringing

180 Ringing 180 Ringing

200 Ok 200 Ok

200 Ok

Ack Media Session

Bye 200 Ok

44

3-way handshake

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 45: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

INVITE transaction

Se il protocollo di trasporto é inaffidabile (UDP), la client transaction ritrasmette le richieste con un intervallo che inizialmente é T1 e poi va raddoppiando ad ogni ritrasmissione

Se il protocollo di trasporto é affidabile -> no ritrasmissione

T = 2n Ti con n = numero di ritrasmissioni

Ti é l’RTT stimato (default 500 ms)

Ti influenza tutti gli altri timers

Dopo la ricezione di un messaggio 1XX cessano le ritrasmissioni

45

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 46: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

FSM INVITE transaction 46

RFC 3261

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 47: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP Model (1)

Simplified message formats:

 REGISTER <Domain> <To> <From> <Contact(device)>

 OK <To> <From>

 INVITE <To> <From><Via><Content>

 BYE <To> <From>

 ACK <To> <From>

47

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 48: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP: aspetti di sicurezza

 Model SIP URI registration and look for registration hijack attacks.

 Model interdomain session setup and look for message tampering and proxy impersonation attacks.

 Add proxy-to-proxy authentication and secrecy (TLS) to model.

48

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 49: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Authentication

  Server Authentication: using TLS: server offers a certificate to the UA, preventing proxy impersonating

  User Authentication: using HTTP digest: server challenges a user with a 401 Proxy Authentication, preventing registration hijacking

49

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 50: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Secretezza del messaggio

 Mechanisms that rely on existence of end-user certificates are seriously limited (S/MIME).

 May use self-signed certificates   Susceptible to obvious MITM attack, but…  Attacker can only exploit on initial key

exchange.  Difficult for attacker to remain in path of all

future dialogs.   Same vulnerability in SSH => key fingerprints.   For VoIP, users could read off key fingerprint.

 Or, use preconfigured certificates when there is an established trust between all SIP entities.

50

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 51: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Attacchi DoS

  Floods of messages directed at proxies can lock up resources on the server.

  UAs and proxies should challenge questionable requests.

 Mutual authentication of proxies (TLS)   Reduces potential for intermediaries to introduce

falsified requests or responses.   Harder for attackers to make innocent SIP nodes into

agents of amplification.

51

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 52: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP Vulnerabilities

  Proxy Impersonation

 Message Tampering

  Session Teardown   Spoofed BYEs

 Denial of Service   Malformed packets

  REGISTER and INVITE flooding

  Registration Hijacking

52

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 53: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

SIP Security  Registration hijacking  Authenticate originators of requests

 Proxy impersonation  Authenticate servers

 Message tampering  Secure body and certain headers end-to-

end

 Session teardown  Authenticate sender of BYE  Confidentiality so attacker can’t learn To,

From tags

 Denial of Service  Authenticate and authorize registrations

53

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 54: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Esercitazione UA, Proxy, Java API e programmazione

54

a.a. 2010/2011

Ing. Pierluigi Gallo

Page 55: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Esercitazione SIP

 Visualizzazione dei messaggi tramite Wireshark

  Utilizzo di un SIP client (softphone e.g. Xlite)

  Le JAIN API ed implementazione di un semplice UA

55

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 56: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Software SIP open source

  Server:   Sip X

  SER – Sip Express Router

  Asterisk

  User Agents:   X-Lite

  SoftPhone

  Windows Messenger

56

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 57: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Jain: API Java per SIP

 Fornisce un’interfaccia standard in Java allo stack di segnalazione SIP – interfaccia allo stack – interfaccia ai messaggi – gestione degli eventi e della loro semantica – garantisce la portabilità delle applicazioni

API in Java per SIP

57

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 58: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Caratteristiche del Server:

 Configurabilità dello stack SIP

  Implementazione del Location/Registrar   Accessibilità controllata dall’amministratore

  Gestione dinamica dei bind secondo le specifiche di protocollo

  Implementazione del Proxy   Statefull

  Stetelless

58

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 59: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Implementazione del Registrar

 Dall’RFC 3261:  When receiving a REGISTER request, a

registrar follows these steps:  The registrar inspects the Request-URI to

determine whether it has access to bindings for the domain identified in the Request-URI.

 The registrar extracts the address-of-record from the To header field of the request. If the address-of-record is not valid for the domain in the Request-URI, the registrar MUST send a 404 (Not Found) response and skip the remaining steps.

59

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 60: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Implementazione del Registrar (2)

 Dall’RFC 3261:   The registrar now processes each contact address in

the Contact header field in turn. For each address, it determines the expiration interval

  The registrar returns a 200 (OK) response. The response MUST contain Contact header field values enumerating all current bindings.

60

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 61: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Implementazione del Proxy (1)

 Dall’RFC 3261:   For all new requests, including any with unknown

methods, an element intending to proxy the request MUST:

  1. Validate the request

  2. Preprocess routing information

  3. Determine target(s) for the request

  4. Forward the request to each target

  5. Process all responses

61

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 62: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Implementazione del Proxy (2)

 Dettaglio del “Forward the request to each target” (dall’RFC 3261):   1. Make a copy of the received request   2. Update the Request-URI   3. Update the Max-Forwards header field   4. Optionally add a Record-route header field value   5. Optionally add additional header fields   6. Postprocess routing information

62

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 63: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Implementazione del Proxy (3)

 Dall’RFC 3261:   7. Determine the next-hop address, port, and

transport

  8. Add a Via header field value

  9. Add a Content-Length header field if necessary

  10. Forward the new request

  11. Set timer C

63

a.a. 2010/2011 Ing. Pierluigi Gallo

Page 64: Servizi Applicativi su Internet - UniPapg/pg/Teaching_files/02 SIP2.pdf · Servizi Applicativi su Internet . Introduzione 1/2 Protocollo di segnalazione basato su IP Standard IETF

Link utili

  SIP Center: www.sipcenter.com

  SIP Forum: www.sipforum.org

  Lista di Server Pubblici SIP:

 www.cs.columbia.edu/sip/servers.html

 GNU o SIP library:

 www.fsf.org/software/osip/

64

a.a. 2010/2011 Ing. Pierluigi Gallo