Basic VoIP Protocols

Support HackTricks

Signaling Protocols

SIP (Session Initiation Protocol)

Questo è lo standard del settore, per ulteriori informazioni controlla:

SIP (Session Initiation Protocol)

MGCP (Media Gateway Control Protocol)

MGCP (Media Gateway Control Protocol) è un protocollo di segnalazione e controllo delle chiamate delineato nella RFC 3435. Funziona in un'architettura centralizzata, che consiste in tre componenti principali:

  1. Call Agent o Media Gateway Controller (MGC): Il gateway principale nell'architettura MGCP è responsabile per gestire e controllare i gateway multimediali. Gestisce i processi di impostazione, modifica e terminazione delle chiamate. L'MGC comunica con i gateway multimediali utilizzando il protocollo MGCP.

  2. Media Gateways (MGs) o Slave Gateways: Questi dispositivi convertono flussi multimediali digitali tra diverse reti, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto. Sono gestiti dall'MGC ed eseguono i comandi ricevuti da esso. I gateway multimediali possono includere funzioni come transcoding, pacchettizzazione e cancellazione dell'eco.

  3. Signaling Gateways (SGs): Questi gateway sono responsabili per convertire i messaggi di segnalazione tra diverse reti, abilitando una comunicazione senza soluzione di continuità tra i sistemi telefonici tradizionali (ad es., SS7) e le reti basate su IP (ad es., SIP o H.323). I gateway di segnalazione sono cruciali per l'interoperabilità e per garantire che le informazioni di controllo delle chiamate siano comunicate correttamente tra le diverse reti.

In sintesi, MGCP centralizza la logica di controllo delle chiamate nell'agente di chiamata, semplificando la gestione dei gateway multimediali e di segnalazione, fornendo una migliore scalabilità, affidabilità ed efficienza nelle reti di telecomunicazione.

SCCP (Skinny Client Control Protocol)

Il Skinny Client Control Protocol (SCCP) è un protocollo di segnalazione e controllo delle chiamate proprietario di Cisco Systems. È principalmente utilizzato per la comunicazione tra Cisco Unified Communications Manager (precedentemente noto come CallManager) e telefoni IP Cisco o altri endpoint vocali e video Cisco.

SCCP è un protocollo leggero che semplifica la comunicazione tra il server di controllo delle chiamate e i dispositivi endpoint. È chiamato "Skinny" a causa del suo design minimalista e dei requisiti di larghezza di banda ridotti rispetto ad altri protocolli VoIP come H.323 o SIP.

I principali componenti di un sistema basato su SCCP sono:

  1. Call Control Server: Questo server, tipicamente un Cisco Unified Communications Manager, gestisce i processi di impostazione, modifica e terminazione delle chiamate, così come altre funzionalità telefoniche come l'inoltro delle chiamate, il trasferimento delle chiamate e la messa in attesa delle chiamate.

  2. SCCP Endpoints: Questi sono dispositivi come telefoni IP, unità di videoconferenza o altri endpoint vocali e video Cisco che utilizzano SCCP per comunicare con il server di controllo delle chiamate. Si registrano con il server, inviano e ricevono messaggi di segnalazione e seguono le istruzioni fornite dal server di controllo delle chiamate per la gestione delle chiamate.

  3. Gateways: Questi dispositivi, come i gateway vocali o i gateway multimediali, sono responsabili per la conversione dei flussi multimediali tra diverse reti, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto. Possono anche includere funzionalità aggiuntive, come transcoding o cancellazione dell'eco.

SCCP offre un metodo di comunicazione semplice ed efficiente tra i server di controllo delle chiamate Cisco e i dispositivi endpoint. Tuttavia, è importante notare che SCCP è un protocollo proprietario, il che può limitare l'interoperabilità con sistemi non Cisco. In tali casi, altri protocolli VoIP standard come SIP potrebbero essere più adatti.

H.323

H.323 è una suite di protocolli per la comunicazione multimediale, inclusi voce, video e conferenze dati su reti a commutazione di pacchetto, come le reti basate su IP. È stato sviluppato dall'Unione Internazionale delle Telecomunicazioni (ITU-T) e fornisce un quadro completo per la gestione delle sessioni di comunicazione multimediale.

Alcuni componenti chiave della suite H.323 includono:

  1. Terminals: Questi sono dispositivi endpoint, come telefoni IP, sistemi di videoconferenza o applicazioni software, che supportano H.323 e possono partecipare a sessioni di comunicazione multimediale.

  2. Gateways: Questi dispositivi convertono i flussi multimediali tra diverse reti, come la telefonia tradizionale a commutazione di circuito e le reti IP a commutazione di pacchetto, abilitando l'interoperabilità tra H.323 e altri sistemi di comunicazione. Possono anche includere funzionalità aggiuntive, come transcoding o cancellazione dell'eco.

  3. Gatekeepers: Questi sono componenti opzionali che forniscono servizi di controllo e gestione delle chiamate in una rete H.323. Eseguono funzioni come la traduzione degli indirizzi, la gestione della larghezza di banda e il controllo degli accessi, aiutando a gestire e ottimizzare le risorse di rete.

  4. Multipoint Control Units (MCUs): Questi dispositivi facilitano conferenze multipunto gestendo e mescolando i flussi multimediali provenienti da più endpoint. Le MCU abilitano funzionalità come il controllo del layout video, lo switching attivato dalla voce e la presenza continua, rendendo possibile ospitare conferenze su larga scala con più partecipanti.

H.323 supporta una gamma di codec audio e video, così come altri servizi supplementari come l'inoltro delle chiamate, il trasferimento delle chiamate, la messa in attesa delle chiamate e l'attesa delle chiamate. Nonostante la sua ampia adozione nei primi giorni del VoIP, H.323 è stato gradualmente sostituito da protocolli più moderni e flessibili come il Session Initiation Protocol (SIP), che offre una migliore interoperabilità e una più facile implementazione. Tuttavia, H.323 rimane in uso in molti sistemi legacy e continua a essere supportato da vari fornitori di attrezzature.

IAX (Inter Asterisk eXchange)

IAX (Inter-Asterisk eXchange) è un protocollo di segnalazione e controllo delle chiamate principalmente utilizzato per la comunicazione tra server Asterisk PBX (Private Branch Exchange) e altri dispositivi VoIP. È stato sviluppato da Mark Spencer, il creatore del software PBX open-source Asterisk, come alternativa ad altri protocolli VoIP come SIP e H.323.

IAX è noto per la sua semplicità, efficienza e facilità di implementazione. Alcune caratteristiche chiave di IAX includono:

  1. Single UDP Port: IAX utilizza una singola porta UDP (4569) sia per la segnalazione che per il traffico multimediale, il che semplifica il passaggio attraverso firewall e NAT, rendendo più facile il deployment in vari ambienti di rete.

  2. Binary Protocol: A differenza dei protocolli basati su testo come SIP, IAX è un protocollo binario, che riduce il consumo di larghezza di banda e lo rende più efficiente per la trasmissione di dati di segnalazione e multimediali.

  3. Trunking: IAX supporta il trunking, che consente di combinare più chiamate in una singola connessione di rete, riducendo l'overhead e migliorando l'utilizzo della larghezza di banda.

  4. Native Encryption: IAX ha il supporto integrato per la crittografia, utilizzando metodi come RSA per lo scambio di chiavi e AES per la crittografia dei media, fornendo comunicazioni sicure tra gli endpoint.

  5. Peer-to-Peer Communication: IAX può essere utilizzato per la comunicazione diretta tra endpoint senza la necessità di un server centrale, abilitando un instradamento delle chiamate più semplice ed efficiente.

Nonostante i suoi vantaggi, IAX ha alcune limitazioni, come il suo focus principale sull'ecosistema Asterisk e una minore adozione rispetto a protocolli più consolidati come SIP. Di conseguenza, IAX potrebbe non essere la scelta migliore per l'interoperabilità con sistemi o dispositivi non Asterisk. Tuttavia, per coloro che lavorano all'interno dell'ambiente Asterisk, IAX offre una soluzione robusta ed efficiente per la comunicazione VoIP.

Transmission & Transport Protocols

SDP (Session Description Protocol)

SDP (Session Description Protocol) è un formato basato su testo utilizzato per descrivere le caratteristiche delle sessioni multimediali, come voce, video o conferenze dati, su reti IP. È stato sviluppato dall'Internet Engineering Task Force (IETF) ed è definito nella RFC 4566. SDP non gestisce la trasmissione effettiva dei media o l'instaurazione della sessione, ma viene utilizzato in combinazione con altri protocolli di segnalazione, come SIP (Session Initiation Protocol), per negoziare e scambiare informazioni sui flussi multimediali e le loro caratteristiche.

Alcuni elementi chiave di SDP includono:

  1. Session Information: SDP descrive i dettagli di una sessione multimediale, inclusi nome della sessione, descrizione della sessione, ora di inizio e ora di fine.

  2. Media Streams: SDP definisce le caratteristiche dei flussi multimediali, come il tipo di media (audio, video o testo), il protocollo di trasporto (ad es., RTP o SRTP) e il formato del media (ad es., informazioni sul codec).

  3. Connection Information: SDP fornisce informazioni sull'indirizzo di rete (indirizzo IP) e sul numero di porta dove il media dovrebbe essere inviato o ricevuto.

  4. Attributes: SDP supporta l'uso di attributi per fornire informazioni aggiuntive e opzionali su una sessione o un flusso multimediale. Gli attributi possono essere utilizzati per specificare varie funzionalità come chiavi di crittografia, requisiti di larghezza di banda o meccanismi di controllo dei media.

SDP è tipicamente utilizzato nel seguente processo:

  1. Una parte iniziante crea una descrizione SDP della sessione multimediale proposta, inclusi i dettagli dei flussi multimediali e le loro caratteristiche.

  2. La descrizione SDP viene inviata alla parte ricevente, di solito incorporata all'interno di un messaggio di protocollo di segnalazione come SIP o RTSP.

  3. La parte ricevente elabora la descrizione SDP e, in base alle proprie capacità, può accettare, rifiutare o modificare la sessione proposta.

  4. La descrizione SDP finale viene inviata di nuovo alla parte iniziante come parte del messaggio di protocollo di segnalazione, completando il processo di negoziazione.

La semplicità e la flessibilità di SDP lo rendono uno standard ampiamente adottato per descrivere sessioni multimediali in vari sistemi di comunicazione, svolgendo un ruolo cruciale nell'instaurazione e nella gestione di sessioni multimediali in tempo reale su reti IP.

RTP / RTCP / SRTP / ZRTP

  1. RTP (Real-time Transport Protocol): RTP è un protocollo di rete progettato per la consegna di dati audio e video, o altri media in tempo reale, su reti IP. Sviluppato dall'IETF e definito nella RFC 3550, RTP è comunemente utilizzato con protocolli di segnalazione come SIP e H.323 per abilitare la comunicazione multimediale. RTP fornisce meccanismi per sincronizzazione, sequenziamento e timestamping dei flussi multimediali, aiutando a garantire una riproduzione fluida e tempestiva dei media.

  2. RTCP (Real-time Transport Control Protocol): RTCP è un protocollo complementare a RTP, utilizzato per monitorare la qualità del servizio (QoS) e fornire feedback sulla trasmissione dei flussi multimediali. Definito nella stessa RFC 3550 di RTP, RTCP scambia periodicamente pacchetti di controllo tra i partecipanti a una sessione RTP. Condivide informazioni come perdita di pacchetti, jitter e tempo di andata e ritorno, che aiutano a diagnosticare e adattarsi alle condizioni di rete, migliorando la qualità complessiva dei media.

  3. SRTP (Secure Real-time Transport Protocol): SRTP è un'estensione di RTP che fornisce crittografia, autenticazione dei messaggi e protezione contro la ripetizione per i flussi multimediali, garantendo una trasmissione sicura di dati audio e video sensibili. Definito nella RFC 3711, SRTP utilizza algoritmi crittografici come AES per la crittografia e HMAC-SHA1 per l'autenticazione dei messaggi. SRTP è spesso utilizzato in combinazione con protocolli di segnalazione sicuri come SIP su TLS per fornire sicurezza end-to-end nella comunicazione multimediale.

  4. ZRTP (Zimmermann Real-time Transport Protocol): ZRTP è un protocollo di accordo di chiavi crittografiche che fornisce crittografia end-to-end per i flussi multimediali RTP. Sviluppato da Phil Zimmermann, il creatore di PGP, ZRTP è descritto nella RFC 6189. A differenza di SRTP, che si basa su protocolli di segnalazione per lo scambio di chiavi, ZRTP è progettato per funzionare indipendentemente dal protocollo di segnalazione. Utilizza lo scambio di chiavi Diffie-Hellman per stabilire un segreto condiviso tra le parti comunicanti, senza richiedere fiducia preventiva o un'infrastruttura di chiavi pubbliche (PKI). ZRTP include anche funzionalità come Short Authentication Strings (SAS) per proteggere contro attacchi man-in-the-middle.

Questi protocolli svolgono ruoli essenziali nel fornire e proteggere la comunicazione multimediale in tempo reale su reti IP. Mentre RTP e RTCP gestiscono la trasmissione effettiva dei media e il monitoraggio della qualità, SRTP e ZRTP garantiscono che i media trasmessi siano protetti contro intercettazioni, manomissioni e attacchi di ripetizione.

Support HackTricks

Last updated