racavedigger.com
Daily insights on Bitcoin and crypto markets
  • Facebook
  • Pinterest
  • Home
  • News

WebRTC usa DTLS?

Notizia

WebRTC deve implementare DTLS-SRTP ma … non deve implementare SDE

La seconda disposizione di questo tipo è che qualsiasi implementazione fornirà un meccanismo per il JavaScript dell’app di chiamata per indicare che devono essere utilizzati solo i candidati a giri. Ciò può impedire a un pari di imparare il proprio indirizzo IP.

Da dove viene il dominio DTLS in WebRTC?

Per i colleghi WebRTC, quale dominio è DTL utilizzato per la negoziazione? Sono confuso. Sembra che non ci sia una definizione di attributo rilevante nell’SDP. È il dominio in cui si trova la pagina web?

ha chiesto il 12 luglio 2021 alle 14:36

25 3 3 badge in bronzo

1 Risposta 1

WebRTC non utilizza un’autorità di certificazione. Non sono coinvolti settori. Con WebRTC l’autenticità che si ottiene da PKI è appena sostituita con le impronte digitali del certificato.

Ogni lato genera un certificato e quindi condivide l’impronta digitale nella descrizione della sessione (offerta/risposta). Dopo che la stretta di mano DTLS è completata, si assicura che il certificato scambiato fosse lo stesso.

Come funziona effettivamente DTL è spiegato in WebRTC per il curioso#assicurarsi un po ‘di più.

Risposta il 12 luglio 2021 alle 15:25

Sean Dubois Sean Dubois

3.867 1 1 badge d’oro 11 11 badge d’argento 22 22 badge di bronzo

Ma OpenSSL SSLConnector ha bisogno di un dominio. In questo caso, quale valore dovrebbe essere passato per questo parametro?

WebRTC deve implementare DTLS-SRTP ma … non deve implementare SDE?

Come previsto nel mio post sulla standardizzazione WebRTC, la riunione IETF 87 ° si è svolta la scorsa settimana a Berlino, in Germania,. Uno degli articoli dell’agenda per WebRTC era se le SDE dovessero essere parte (e come) di WebRTC.

Secondo le bozze IETF, qualsiasi implementazione conforme a WEBRTC deve supportare il profilo RTP/SAVPF che si basa sul profilo RTP RTP sicuro RTP/SAVP. Ciò significa che i canali multimediali (E.G. Audio, video) deve essere protetto tramite Secure RTP (SRTP), che fornisce la crittografia dei media tra le altre funzionalità di sicurezza. In effetti, l’uso di RTP semplice (non crittografato) è esplicitamente proibito dalle specifiche WebRTC.

Alternative di gestione delle chiavi WebRTC

SRTP deve interagire con i protocolli di gestione delle chiavi (E.G. Mikey, ZRTP, SDES, DTLS-SRTP) per negoziare i parametri di sicurezza per la sessione di traffico multimediale. Esso’vale la pena notare che la segnalazione (E.G. Sorseggiare, http) e media (e.G. RTP) coinvolto in una comunicazione multimediale può essere protetto in modo indipendente. Ad esempio, le descrizioni della sicurezza SDP per i flussi di media (SDES) e lo scambio di chiave multimediale (Mikey) utilizzano il piano di segnalazione per trasportare i parametri di sicurezza della sessione tramite SDP; Ciò significa che la segnalazione dovrebbe essere a sua volta protetta. Tuttavia, proteggere la segnalazione e i media indipendentemente può essere insufficiente in alcuni casi in quanto non fornisce alcuna garanzia che l’utente di segnalazione sia uguale all’utente multimediale. Quindi, è auspicabile un legame crittografico tra i due piani: ZRTP e DTLS-SRTP lo fanno.

Molta letteratura può essere trovata sull’argomento, ma in breve:

  • SDES – I parametri di sicurezza e le chiavi per impostare le sessioni SRTP vengono scambiati in un testo chiaro in forma di attributi SDP, basandosi sul piano di segnalazione per fissare il messaggio SDP, usando ad esempio TLS.
  • Mikey – Esegue lo scambio chiave e negozia i parametri crittografici per conto di applicazioni multimediali. I suoi messaggi vengono trasportati nel payload SDP e codificati in Base64.
  • ZRTP-Un segreto condiviso e altri parametri di sicurezza vengono scambiati facendo affidamento su Diffie-Hellman. L’autenticazione reciproca può utilizzare una corta stringa di autenticazione (SAS), quindi non lo fa’T richiede il supporto da un PKI. Lo scambio ZRTP si svolge sugli stessi numeri di porta utilizzati dalla sessione multimediale per il traffico RTP (al contrario del percorso di segnalazione).
  • DTLS-SRTP-Abilita lo scambio dei parametri crittografici e deriva materiale di chiave. Lo scambio chiave si svolge nel piano multimediale e sono multiplex sulle stesse porte dei media stessa. Ci approfondiremo questo in un futuro post ma, in breve, una volta che alcuni dei controlli ICE sono stati completati, DTLS-SRTP consente di stabilire il canale multimediale SRTP senza la necessità di rivelare le chiavi nello scambio di messaggi SDP come è fatto con SDES.

Secondo Draft-Eietf-RTCWeb-RTP-USAGE-07 (attuale bozza, luglio 2013), WEBRTC:

Le implementazioni devono supportare DTLS-SRTP per la gestione delle chiavi. Altri schemi di gestione delle chiavi possono essere supportati

DTLS-SRTP è il meccanismo predefinito e preferito che significa che se viene ricevuta un’offerta che supporta sia DTLS-SRTP che SDES, DTLS-SRTP deve essere selezionata, indipendentemente dal fatto che la segnalazione sia fissata o meno. Da quello che io’sto vedendo maggiormente sul campo (posso’T dire tutto) le prove WebRTC eseguono la segnalazione su TLS, di solito tramite HTTP sicuro (HTTPS) o WebSocket Secure (WSS).

Il dibattito

In generale ci sono pochi dubbi sul fatto che DTLS-SRTP dovrebbe essere il meccanismo di sicurezza obbligatorio per implementare (MTI) per i media WebRTC in tempo reale (beh, alcuni sostengono che ZRTP potrebbe potenzialmente fornire un approccio più semplice o anche una migliore protezione in alcuni scenari). La discussione a Berlino era se l’IETF, al di là del mandato del supporto per DTLS-SRTP, potesse fornire raccomandazioni su come riutilizzare alcuni altri meccanismi esistenti che abbiamo in atto oggi per fornire compatibilità all’indietro; vale a dire riutilizzare le SDE negli scenari di interworking da webbrtc-to-sip. Sì, è’è vero che la maggior parte del traffico RTP nelle reti VoIP non è assicurata oggi – in effetti, questa è una delle prime caratteristiche che i clienti di solito chiedono ai venditori di rimuovere per soddisfare i propri budget. Tuttavia, quando si è assicurato, la maggior parte delle distribuzioni i’VE visti stanno usando SDES (che come menzionato ha una forte dipendenza dalla sicurezza del piano di segnalazione).

Quando si tratta di implementazioni WebRTC, Google’S

WebRTC deve implementare DTLS-SRTP ma … non deve implementare SDE

La seconda disposizione di questo tipo è che qualsiasi implementazione fornirà un meccanismo per il JavaScript dell’app di chiamata per indicare che devono essere utilizzati solo i candidati a giri. Ciò può impedire a un pari di imparare il proprio indirizzo IP.

Da dove viene il dominio DTLS in WebRTC?

Per i colleghi WebRTC, quale dominio è DTL utilizzato per la negoziazione? Sono confuso. Sembra che non ci sia una definizione di attributo rilevante nell’SDP. È il dominio in cui si trova la pagina web?

ha chiesto il 12 luglio 2021 alle 14:36

25 3 3 badge in bronzo

1 Risposta 1

WebRTC non utilizza un’autorità di certificazione. Non sono coinvolti settori. Con WebRTC l’autenticità che si ottiene da PKI è appena sostituita con le impronte digitali del certificato.

Ogni lato genera un certificato e quindi condivide l’impronta digitale nella descrizione della sessione (offerta/risposta). Dopo che la stretta di mano DTLS è completata, si assicura che il certificato scambiato fosse lo stesso.

Come funziona effettivamente DTL è spiegato in WebRTC per il curioso#assicurarsi un po ‘di più.

Risposta il 12 luglio 2021 alle 15:25

Sean Dubois Sean Dubois

3.867 1 1 badge d’oro 11 11 badge d’argento 22 22 badge di bronzo

Ma OpenSSL SSLConnector ha bisogno di un dominio. In questo caso, quale valore dovrebbe essere passato per questo parametro?

WebRTC deve implementare DTLS-SRTP ma … non deve implementare SDE?

Come previsto nel mio post sulla standardizzazione WebRTC, la riunione IETF 87 ° si è svolta la scorsa settimana a Berlino, in Germania,. Uno degli articoli dell’agenda per WebRTC era se le SDE dovessero essere parte (e come) di WebRTC.

Secondo le bozze IETF, qualsiasi implementazione conforme a WEBRTC deve supportare il profilo RTP/SAVPF che si basa sul profilo RTP RTP sicuro RTP/SAVP. Ciò significa che i canali multimediali (E.G. Audio, video) deve essere protetto tramite Secure RTP (SRTP), che fornisce la crittografia dei media tra le altre funzionalità di sicurezza. In effetti, l’uso di RTP semplice (non crittografato) è esplicitamente proibito dalle specifiche WebRTC.

Alternative di gestione delle chiavi WebRTC

SRTP deve interagire con i protocolli di gestione delle chiavi (E.G. Mikey, ZRTP, SDES, DTLS-SRTP) per negoziare i parametri di sicurezza per la sessione di traffico multimediale. Esso’vale la pena notare che la segnalazione (E.G. Sorseggiare, http) e media (e.G. RTP) coinvolto in una comunicazione multimediale può essere protetto in modo indipendente. Ad esempio, le descrizioni della sicurezza SDP per i flussi di media (SDES) e lo scambio di chiave multimediale (Mikey) utilizzano il piano di segnalazione per trasportare i parametri di sicurezza della sessione tramite SDP; Ciò significa che la segnalazione dovrebbe essere a sua volta protetta. Tuttavia, proteggere la segnalazione e i media indipendentemente può essere insufficiente in alcuni casi in quanto non fornisce alcuna garanzia che l’utente di segnalazione sia uguale all’utente multimediale. Quindi, è auspicabile un legame crittografico tra i due piani: ZRTP e DTLS-SRTP lo fanno.

Molta letteratura può essere trovata sull’argomento, ma in breve:

  • SDES – I parametri di sicurezza e le chiavi per impostare le sessioni SRTP vengono scambiati in un testo chiaro in forma di attributi SDP, basandosi sul piano di segnalazione per fissare il messaggio SDP, usando ad esempio TLS.
  • Mikey – Esegue lo scambio chiave e negozia i parametri crittografici per conto di applicazioni multimediali. I suoi messaggi vengono trasportati nel payload SDP e codificati in Base64.
  • ZRTP-Un segreto condiviso e altri parametri di sicurezza vengono scambiati facendo affidamento su Diffie-Hellman. L’autenticazione reciproca può utilizzare una corta stringa di autenticazione (SAS), quindi non lo fa’T richiede il supporto da un PKI. Lo scambio ZRTP si svolge sugli stessi numeri di porta utilizzati dalla sessione multimediale per il traffico RTP (al contrario del percorso di segnalazione).
  • DTLS-SRTP-Abilita lo scambio dei parametri crittografici e deriva materiale di chiave. Lo scambio chiave si svolge nel piano multimediale e sono multiplex sulle stesse porte dei media stessa. Ci approfondiremo questo in un futuro post ma, in breve, una volta che alcuni dei controlli ICE sono stati completati, DTLS-SRTP consente di stabilire il canale multimediale SRTP senza la necessità di rivelare le chiavi nello scambio di messaggi SDP come è fatto con SDES.

Secondo Draft-Eietf-RTCWeb-RTP-USAGE-07 (attuale bozza, luglio 2013), WEBRTC:

Le implementazioni devono supportare DTLS-SRTP per la gestione delle chiavi. Altri schemi di gestione delle chiavi possono essere supportati

DTLS-SRTP è il meccanismo predefinito e preferito che significa che se viene ricevuta un’offerta che supporta sia DTLS-SRTP che SDES, DTLS-SRTP deve essere selezionata, indipendentemente dal fatto che la segnalazione sia fissata o meno. Da quello che io’sto vedendo maggiormente sul campo (posso’T dire tutto) le prove WebRTC eseguono la segnalazione su TLS, di solito tramite HTTP sicuro (HTTPS) o WebSocket Secure (WSS).

Il dibattito

In generale ci sono pochi dubbi sul fatto che DTLS-SRTP dovrebbe essere il meccanismo di sicurezza obbligatorio per implementare (MTI) per i media WebRTC in tempo reale (beh, alcuni sostengono che ZRTP potrebbe potenzialmente fornire un approccio più semplice o anche una migliore protezione in alcuni scenari). La discussione a Berlino era se l’IETF, al di là del mandato del supporto per DTLS-SRTP, potesse fornire raccomandazioni su come riutilizzare alcuni altri meccanismi esistenti che abbiamo in atto oggi per fornire compatibilità all’indietro; vale a dire riutilizzare le SDE negli scenari di interworking da webbrtc-to-sip. Sì, è’è vero che la maggior parte del traffico RTP nelle reti VoIP non è assicurata oggi – in effetti, questa è una delle prime caratteristiche che i clienti di solito chiedono ai venditori di rimuovere per soddisfare i propri budget. Tuttavia, quando si è assicurato, la maggior parte delle distribuzioni i’VE visti stanno usando SDES (che come menzionato ha una forte dipendenza dalla sicurezza del piano di segnalazione).

Quando si tratta di implementazioni WebRTC, Google’S Chrome supporta sia DTLS-SRTP che SDES mentre Mozilla’S Firefox implementa solo DTLS-SRTP. Come curiosità, io’m attualmente coinvolto in prove sul campo in cui alcuni dei gateway da webbrtc-to-sip in valutazione implementano solo SDE e hanno DTLS-SRTP come articolo di tabella di marcia. Quei venditori gateway probabilmente considerati SDES abbastanza buoni per lo scenario di base interworking e si aspettavano che fosse adottato ad un certo punto dalle specifiche WebRTC.

Supporto chiave di sicurezza del browser WebRTC

Le diapositive dalla discussione a Berlino sono disponibili qui. Come si può vedere nelle presentazioni, alcuni degli argomenti dei sostenitori della SDES inclusi:

  • Incentivo commerciale – esso’è già lì e funziona
  • Clipping dei media precoci
  • Compromesso tra complessità e costo
  • Indennità per SRTP end-to-end in casi di interworking

Sull’ultimo proiettile, ciò significa che non è necessario decrittografare il traffico SRTP sul gateway interworking se l’endpoint VoIP all’altra estremità sta usando SDES.

Naturalmente, il punto principale del dibattito era se le SDE degradano davvero la sicurezza nel caso d’uso interworking rispetto a DTLS-SRTP. Secondo me alcuni degli argomenti usati contro le SDE si applicano anche a DTLS-SRTP. Si noti che i sostenitori delle SDES non lo stavano proponendo per tutti i casi d’uso ma stavano sostenendo in qualche modo limitare la sua applicabilità allo scenario interworking.

Altri hanno sostenuto che la compatibilità all’indietro non era un fattore così importante quando dovrà comunque utilizzare i gateway dei media (almeno per la terminazione del ghiaccio); Quindi l’interworking DTLS-SRTP-to-SDES potrebbe essere solo un’altra caratteristica della funzione gateway (come mostrato nel diagramma seguente estratto da questa presentazione).

Il risultato

Come risultato della discussione, non solo gli SDE non sono stati raccomandati da casi d’uso selezionati come l’interworking da webrtc-to-sip, ma è stato completamente proibito per WebRTC in generale. L’adozione di SDES è stato interpretato dalla maggior parte come imponente un requisito sui browser Web oltre lo scopo delle comunicazioni browser-browser mentre potenzialmente degradando le loro proprietà di sicurezza.

Credo che avere un’unica soluzione possa essere utile dal punto di vista dell’interoperabilità (i.e. meno opzioni che abbiamo di solito significa migliore interoperabilità) ma io’Mi chiedo cosa sta per implementare l’industria, specialmente negli scenari WebRTC non browser che potrebbero avere requisiti di sicurezza diversi o potrebbero voler interagire direttamente con i dispositivi VOIP esistenti (come i’M See in un progetto, questo può significare diversi milioni di endpoint). Il tempo dirà come reagiscono i venditori, ma questo non sarebbe sicuramente il primo caso in cui una caratteristica/comportamento specifica è disabilitata per impostazione predefinita per essere conforme a RFC ma un’opzione configurabile e talvolta nascosta “all’una’s proprio rischio” Per supportare la funzione ��

Voglio imparare un po ‘di più sulla sicurezza WebRTC? Elaboreremo questo argomento nelle future voci di blog. Nel frattempo, trova qui e qui un paio di riferimenti interessanti. I miei amici ed ex colleghi Jiri, Dorgham, John, Uli e Henning includono una descrizione molto completa sulla sicurezza multimediale nel loro libro di sicurezza SIP. Puoi anche inviarmi un’e -mail a [e -mail protetta] o seguirmi su Twitter su @VictorPascual.

Articoli correlati

RSS Feed

Interazioni dei lettori

Commenti

  1. Vijay k. Gurbani dice il 15 agosto 2013 alle 11:14

Il problema sta discutendo che Victor non è endemico solo di WebRTC. È un problema generale che il mondo SIP ha affrontato per un po ‘. Il documento seguente fornisce meriti relativi e svantaggi di vari schemi di chiave in un ambiente di telecomunicazione multimediale Internet. Se desideri una copia, puoi inviarmi un’e-mail al VKG a Bell-Labs Dot Com. Gurbani, v.K. e Kolesnikov, V., “Un’indagine e l’analisi delle tecniche di chiave di coda dei media nel Protocollo di iniziazione della sessione (SIP),” In IEEE Communications Surveys and Tutorials, 13 (2), PP. 183-198, 2011.

Grazie per il riferimento vijay – documento molto interessante. A proposito, questo nuovo draft Internet è stato pubblicato alcune ore fa: “Utilizzo di ZRTP per proteggere WebRTC”
http: // strumenti.ietf.Org/HTML/Draft-Johnston-RTCWeb-ZRTP-00 Abstract: “WebRTC, Web Real-Time Communications, è un insieme di protocolli e API utilizzati per consentire agli sviluppatori Web di aggiungere comunicazioni in tempo reale nelle loro pagine Web e applicazioni con alcune righe di JavaScript. I flussi multimediali WebRTC sono crittografati e autenticati da SRTP, il protocollo sicuro di trasporto in tempo reale mentre l’accordo chiave è fornito da DTLS-SRTP, sicurezza del livello di trasporto Datagram per un protocollo di trasporto in tempo reale sicuro. Tuttavia, senza un servizio di identità di terze parti o un’autorità di certificazione, i flussi di media WebRTC non hanno protezione contro un attacco uomo-in-the-middle (MITM). ZRTP, accordo chiave per il percorso multimediale per Unicast Secure RTP, RFC 6189, fornisce protezione contro gli aggressori MITM utilizzando la continuità chiave aumentata con una breve stringa di autenticazione (SAS). Questa specifica descrive il modo in cui ZRTP può essere utilizzato sul canale dati WebRTC per fornire protezione MITM per i flussi di supporti WebRTC con chiave utilizzando DTLS-SRTP. Ciò fornisce agli utenti protezione contro gli aggressori MITM senza richiedere ai browser di supportare ZRTP o utenti di scaricare un plug -in o un’estensione per implementare ZRTP.”

Aggiornamento rapido: Google ha appena annunciato che Chrome sta eliminando gradualmente le SDE in un processo in più fasi “1) In Chrome 31, DTLS è ora in corso per impostazione predefinita, sebbene anche SDES sia ancora offerto. Non è più necessario passare il dtlssrtpkeyagree: vero vincolo per abilitare i dtls. Dal momento che stiamo utilizzando la memorizzazione nella cache del certificato per origine, il colpo di prestazione di generare un certificato DTLS non è più un problema, che ci consente di rendere questo il valore predefinito. In questo momento non sono necessarie modifiche all’applicazione, sebbene DTLS possa essere disabilitato impostando DTLSSRTPKeyAgreement: False, che ritorna all’operazione solo SDES. 2) In una versione imminente di Chrome, probabilmente Chrome 33, SDES non sarà più offerto per impostazione predefinita e verrà utilizzato solo se viene specificato un nuovo vincolo TBD. Per le applicazioni che richiedono SDES, ciò richiederà una modifica dell’applicazione per specificare questo nuovo vincolo. 3) In una versione futura di Chrome, TBD A questo punto, questo vincolo SDES verrà rimosso e solo DTLS-SRTP sarà supportato. Ci aspettiamo che ciò avvenga nel 2014, quindi per favore inizia la migrazione delle tue applicazioni a DTLS-SRTP il più presto possibile.” Fonte: https: // gruppi.Google.com/forum/#!Argomento/Discust-Webrtc/67w4zrtmons

Grazie per l’interessante post Victor. Stavo solo cercando alcuni problemi di sicurezza su WebRTC e l’ho trovato. Forse, lo stato attuale al riguardo è cambiato, a causa del post è stato pubblicato circa un anno fa sono nuovo in WebRTC e tutto sembra che WebRTC stia usando DLTS-RTSP. Tuttavia, cosa succede con la sicurezza nei telefoni cellulari?. Per quanto ne so, RTSP potrebbe essere un po ‘lento da decrittografare il video, ad esempio, nelle piatti mobili. Grazie in anticipo Víctor Hidalgo

  • Chad Hart dice che il 12 luglio 2014 alle 7:55

Per favore Don’T mescolare il protocollo di streaming in tempo reale (RTSP) con il trasporto sicuro in tempo reale (SRTP). WebRTC utilizza dtls-srtp. Dtls-srtp come tutta la crittografia richiede una decrittografia, e c’è un po ‘di spese generali associate a questo, ma è minuscolo sui dispositivi moderni. Le preoccupazioni sui costi di crittografia sono state generalmente focalizzate sulle apparecchiature lato server che devono gestire volumi elevati e quindi potrebbero potenzialmente aumentare il prezzo di offrire un servizio.

  • Victor dice il 14 luglio 2014 alle 3:06

Ciao chad, giusto, mi riferivo a dtls-srtp no dtls-rtsp, scusa per il mio errore. Volevo una sorta di chiarimento prima di fare qualche test, poiché il sovraccarico minuscolo associato nei dispositivi moderni è quello che mi aspettavo. Molte grazie per la tua risposta. Vincitore

lascia un commento cancella risposta

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.

Uno studio sulla sicurezza WebRTC

La comunicazione in tempo reale Web (abbreviata come WEBRTC) è una tendenza recente nella tecnologia delle applicazioni Web, che promette la possibilità di abilitare la comunicazione in tempo reale nel browser senza la necessità di plug-in o altri requisiti. Tuttavia, la natura open source della tecnologia può avere il potenziale per causare preoccupazioni relative alla sicurezza ai potenziali adottanti della tecnologia. Questo documento discuterà in dettaglio la sicurezza di WebRTC, con l’obiettivo di dimostrare la sicurezza comparativa della tecnologia.

1. introduzione

WebRTC è una tecnologia applicativa basata sul Web open source, che consente agli utenti di inviare supporti in tempo reale senza la necessità di installare plugin. L’uso di un browser adatto può consentire a un utente di chiamare un’altra parte semplicemente navigando sulla pagina Web pertinente.

Alcuni dei principali casi d’uso di questa tecnologia includono quanto segue:

  • Chiamate audio e/o video in tempo reale
  • Conferenza web
  • Trasferimenti di dati diretti

A differenza della maggior parte dei sistemi in tempo reale (E.G. SIP), le comunicazioni WebRTC sono controllate direttamente da alcuni server Web, tramite un’API JavaScript.

La prospettiva di abilitare la comunicazione audio e visiva incorporata in un browser senza plugin è eccitante. Tuttavia, ciò solleva naturalmente le preoccupazioni sulla sicurezza di tale tecnologia e se si può fidare di fornire comunicazioni affidabili sia per gli utenti finali che per eventuali vettori intermediari o terzi.

Questo rapporto affronterà questi argomenti ed esaminerà le protezioni che WebRTC fornisce per fornire sicurezza in tutti i casi. Ai fini di questo documento, tuttavia, le applicazioni native saranno trattate come fuori portata.

2. Panoramica dell’architettura WebRTC

WEBRTC abilita la comunicazione ricca di media tra due peer, utilizzando una topologia peer-to-peer (P2P). WebRTC risiede all’interno del browser dell’utente e non richiede un software aggiuntivo per funzionare. La comunicazione effettiva tra i coetanei è preceduta da uno scambio di metadati, definito “segnalazione”. Questo processo viene utilizzato per avviare e pubblicizzare chiamate e facilita l’istituzione di connessione tra parti non familiari.

Come illustrato nella Figura 1, questo processo si verifica attraverso un server intermedia:

Figura 1. Una semplice topologia di chiamata WebRTC

Figura 1. Una semplice topologia di chiamata WebRTC

Un protocollo di segnalazione non è specificato all’interno di WebRTC, consentendo agli sviluppatori di implementare la propria scelta di protocollo. Ciò consente un grado più profondo di flessibilità nell’adattare un’app WebRTC per un caso d’uso specifico o uno scenario.

Come funziona la comunicazione WebRTC?

WebRTC si basa su tre API, ognuna delle quali svolge una funzione specifica per abilitare la comunicazione in tempo reale all’interno di un’applicazione Web. Queste API saranno nominate e spiegate brevemente. L’implementazione e i dettagli tecnici di ciascun protocollo e tecnologia sono al di fuori dell’ambito di questo rapporto, tuttavia la documentazione pertinente è prontamente disponibile online.

getusermedia

Per molti anni è stato necessario fare affidamento su plug-in del browser di terze parti come Flash o Silverlight per acquisire audio o video da un computer. Tuttavia, l’era di HTML 5 ha inaugurato l’accesso hardware diretto a numerosi dispositivi e fornisce API JavaScript che si interfacciano con le capacità hardware sottostanti di un sistema.

getusermedia è una di queste API, che consente a un browser di accedere alla fotocamera e al microfono di un utente. Sebbene utilizzato da WebRTC, questa API è effettivamente offerta come parte di HTML 5.

RTCPeerConnection

RTCPeerConnection è la prima di due API che sono offerte specificamente come parte della specifica WebRTC. Un’interfaccia RTCPeerConnection rappresenta la connessione WebRTC effettiva e si basa per gestire lo streaming efficiente dei dati tra due peer.

Quando un chiamante desidera avviare una connessione con una parte remota, il browser inizia istanziando un oggetto RTCPeerConnection. Ciò include una descrizione SDP auto-generata da scambiare con il loro peer. Il destinatario a sua volta risponde con la sua descrizione SDP. Le descrizioni SDP sono utilizzate come parte del flusso di lavoro ICE completo per Nat Traversal.

Con la connessione ora stabilita, RTCPeerConnection consente l’invio di dati audio e video in tempo reale come bitstream tra i browser.

In definitiva, l’API RTCPeerConnection è responsabile della gestione del ciclo di vita completo di ciascuna connessione peer-to-peer e incapsula tutta la configurazione, la gestione e lo stato di connessione all’interno di un’unica interfaccia facile da usare.

RTCPeerConnection ha due tratti specifici: – Comunicazione peer -to -peer diretta tra due browser – Uso di UDP/IP – Non vi è alcuna garanzia di arrivo del pacchetto (come in TCP/IP), ma di conseguenza è molto ridotta un sovraccarico ridotto. – (Consentendo la perdita di alcuni dati, possiamo concentrarci sull’offerta di comunicazione in tempo reale.)

Rtcdatachannel

Il rtcdatachannel è la seconda API principale offerta come parte di WebRTC e rappresenta il principale canale di comunicazione attraverso il quale si verifica lo scambio di dati di applicazione arbitraria. In altre parole, viene utilizzato per trasferire i dati direttamente da un peer a un altro.

Sebbene esistano una serie di opzioni alternative per i canali di comunicazione (E.G. WebSocket, Server ha inviato eventi), tuttavia queste alternative sono state progettate per la comunicazione con un server piuttosto che per un peer collegato direttamente. Rtcdatachannel ricorda il popolare websocket, ma invece prende un formato peer-to-peer offrendo proprietà di consegna personalizzabili del trasporto sottostante.

2.1. Tecnologie sottostanti

Le tre API principali sono gli aspetti rivolti agli sviluppatori di WebRTC, ma ci sono un certo numero di tecnologie di base che sono utilizzate per fornire questi protocolli (le API RTCPeerConnection e RTCDataChannel).

Figura 2. Stack del protocollo WebRTC

figura 2. Stack del protocollo WebRTC

Ice, stordi e turni sono necessari per stabilire e mantenere una connessione peer-to-peer su UDP. DTLS viene utilizzato per proteggere tutti i trasferimenti di dati tra i peer, poiché la crittografia è una caratteristica obbligatoria di WEBRTC. Infine, SCTP e SRTP sono i protocolli dell’applicazione utilizzati per multiplex dei diversi flussi, forniscono congestione e controllo del flusso e forniscono una consegna parzialmente affidabile e altri servizi aggiuntivi oltre a UDP.

SDP: protocollo di descrizione della sessione

Sessione Descrizione Protocollo (SDP) è un protocollo descrittivo che viene utilizzato come metodo standard per annunciare e gestire gli inviti alla sessione, oltre a eseguire altre attività di iniziazione per sessioni multimediali. SDP rappresenta le funzionalità e le preferenze del browser in un formato basato sul testo e può includere le seguenti informazioni: – Capacità multimediali (video, audio) e codec impiegati – indirizzo IP e numero di porta – Protocollo di trasmissione dati P2P (WebRTC utilizza Securertp) – LAWIDTH BANDA USABLE per le comunicazioni – Attributi di sessione (Nome, Identifier, Active, Ecc.) -> Tuttavia questi non sono usati in WebRTC. – Altri metadati correlati.

A partire da oggi SDP è ampiamente utilizzato nei contesti del protocollo di iniziazione di sessione (SIP), del protocollo di trasporto in tempo reale (RTP) e del protocollo di streaming in tempo reale (RSP).

ICE: stabilimento interattivo di connettività

La segnalazione richiede l’uso iniziale di un server intermedio per lo scambio di metadati, ma al completamento dei tentativi di WebRTC di stabilire una connessione P2P diretta tra gli utenti. Questo processo viene effettuato attraverso il quadro ICE.

Il ghiaccio è un framework utilizzato per stabilire una connessione tra colleghi su Internet. Sebbene WebRTC cerchi di utilizzare le connessioni P2P dirette, in realtà la presenza diffusa di NAT (traduzione dell’indirizzo di rete) rende difficile negoziare come comunicano due colleghi.

A causa della continua prevalenza diffusa degli indirizzi IPv4 con la loro rappresentazione limitata a 32 bit, la maggior parte dei dispositivi abilitati per la rete non ha un indirizzo IPv4 rivolto al pubblico univoco con cui sarebbe direttamente visibile su Internet. Nat lavora traducendo dinamicamente gli indirizzi privati ​​in quelli pubblici quando una richiesta in uscita passa attraverso di essi. Allo stesso modo, le richieste in entrata a un IP pubblico vengono convertite in un IP privato per garantire il routing corretto sulla rete interna. Di conseguenza, la condivisione di un IP privato spesso non è abbastanza informazioni per stabilire una connessione a un peer. ICE tenta di superare le difficoltà poste comunicando tramite Nat per trovare il percorso migliore per connettere i coetanei.

Provando tutte le possibilità in parallelo, ICE è in grado di scegliere l’opzione più efficiente che funziona. ICE prima cerca di stabilire una connessione utilizzando l’indirizzo host ottenuto dal sistema operativo e dalla scheda di rete di un dispositivo; Se ciò fallisce (cosa che inevitabilmente sarà per i dispositivi dietro Nats) ICE, ottiene un indirizzo esterno utilizzando un server stordente. Se anche questo fallisce, il traffico ricade nel routing tramite un server di relè di svolta.

I percorsi di comunicazione candidati sono resi in un formato basato sul testo e l’elenco ordinato per priorità. Le opzioni prendono la forma di una delle seguenti: – Comunicazione P2P diretta – Utilizzo di stordizioni, con una mappatura delle porte per il percorso NAT (questo percorso alla fine si risolve alla comunicazione P2P diretta) – Usando la svolta come intermediario (questa configurazione impiega una comunicazione inoltrata anziché P2P)

Tra tutti i candidati possibili, viene scelto il percorso con il più piccolo sovraccarico.

Stordi: utility di attrazione di sessione per NAT

Per eseguire la comunicazione P2P, entrambe le parti richiedono necessariamente almeno la conoscenza dell’indirizzo IP del loro peer e della porta UDP assegnata. Di conseguenza, è necessario una certa quantità di scambio di informazioni prima che possa essere stabilita la comunicazione WEBRTC.

Un server stordente viene utilizzato da ciascun peer per determinare il proprio indirizzo IP pubblico ed è citato dal framework ICE durante la creazione di connessione. I server STUT sono in genere accessibili pubblicamente e possono essere utilizzati liberamente dalle applicazioni WebRTC.

TURN: attraversamento usando i relè intorno a NAT

Nell’eventualità che stabilisce una comunicazione P2P non riesce, è possibile fornire un’opzione di fallback tramite un server di svolta. Rilasciando il traffico tra i coetanei, la comunicazione WebRTC può essere garantita, ma può subire degradazioni nella qualità dei media e nella latenza.

Girare i server possono garantire un alto successo nella creazione di chiamate, indipendentemente dagli ambienti dell’utente finale. Poiché i dati vengono inviati tramite un server intermediario, viene anche consumata la larghezza di banda del server. Se molte chiamate vengono simultaneamente instradate attraverso il server, anche la larghezza di banda è diventata notevole di dimensioni.

Il server stesso non è in genere accessibile liberamente e deve essere specificamente fornito (o noleggiato) dal provider di applicazioni.

3. Considerazioni sulla sicurezza basate sul browser

Ci sono diversi modi in cui un’applicazione di comunicazione in tempo reale può imporre rischi per la sicurezza, sia sul vettore che sugli utenti finali. Tali rischi per la sicurezza possono essere applicabili a qualsiasi applicazione che si occupa della trasmissione di dati e media in tempo reale.

WebRTC differisce dalle altre app RTC fornendo un’infrastruttura forte e affidabile per anche i nuovi sviluppatori da utilizzare senza compromettere la sicurezza. Procederemo ora a discutere di come WebRTC si occupa di ciascuno di questi rischi a turno.

3.1. Modello di fiducia del browser

L’architettura WebRTC presuppone dal punto di vista della sicurezza che le risorse di rete esistano in una gerarchia di fiducia. Dal punto di vista dell’utente, il browser (o client utente) è la base di tutta la sicurezza WebRTC e funge da base di calcolo affidabile (TCB).

Il lavoro del browser è consentire l’accesso a Internet, fornendo al contempo adeguate protezioni per la sicurezza all’utente. I requisiti di sicurezza di WEBRTC sono costruiti direttamente su questo requisito; Il browser è il portale attraverso il quale l’utente accede a tutte le applicazioni e contenuti WebRTC.

Mentre HTML e JS forniti dal server possono far eseguire una varietà di azioni del browser, il browser separa tali script in sandbox. Detti sandbox isolano gli script l’uno dall’altro e dal computer dell’utente. In generale, gli script sono autorizzati a interagire solo con le risorse dello stesso dominio – o più specificamente, la stessa “origine”.

Il browser applica tutte le politiche di sicurezza che l’utente desidera ed è il primo passo nella verifica di tutte le terze parti. Tutte le entità autenticate hanno la loro identità controllata dal browser.

Se l’utente sceglie un browser adeguato che sanno di cui si possono fidare, allora tutta la comunicazione WebRTC può essere considerata “sicura” e seguire l’architettura di sicurezza accettata standard della tecnologia WEBRTC. Tuttavia, se vi è dubbio che un browser sia “affidabile” (E.G. Essendo stato scaricato da una terza parte anziché da una posizione affidabile), quindi tutte le seguenti interazioni con le applicazioni WebRTC sono influenzate e potrebbero non essere sicure in modo affidabile.

In altre parole, il livello di fiducia fornito all’utente da WebRTC è direttamente influenzato dalla fiducia dell’utente nel browser.

3.2. SOP: stessa politica di origine

È un aspetto fondamentale del DOM che tutte le risorse della pagina Web sono recuperate dal server Web della pagina, ogni volta che alcune o tutta la pagina viene caricata. Il recupero delle risorse ha luogo o quando una pagina è appena caricata dal browser o quando uno script che risiede su una pagina Web fa tale richiesta. Tali script sono prontamente in grado di effettuare richieste HTTP tramite E.G. L’API XMLHTTPREQUEST (), ma non è consentita di effettuare tali richieste a qualsiasi server che specificano. Piuttosto, le richieste devono essere fatte alla stessa “origine” da cui originava la sceneggiatura. Un “origine” comprende uno schema URI, un nome host e un numero di porta. Questa restrizione complessiva è definita la “stessa politica di origine” (SOP).

SOP Forces Script da eseguire in sandbox isolati specifici per il loro dominio di origine, impedendo quindi le pagine da origini diverse o addirittura Iframe sulla stessa pagina scambiando informazioni. Le pagine Web e gli script dallo stesso server di origine rimangono senza ostacoli nell’interazione tra loro’Variabili S JS. Pertanto, l’origine costituisce l’unità di base di Web Sandboxing.

Accettando l’esecuzione di sandbox su base per origine, l’utente finale è protetto dall’uso improprio delle loro credenziali. Ti aspetteresti ragionevolmente di utilizzare in sicurezza un sito Web di social network senza uno script che esegue all’interno di un pannello pubblicitario e rubare le informazioni di accesso.

Allo stesso modo, i server di E.G. Il fornitore di pagine Web è protetto dagli attacchi montati tramite il browser dell’utente; Se tali garanzie non esistessero, gli attacchi DOS potrebbero altrimenti essere lanciati tramite richieste di risorse abusive.

3.2.1 bypassing SOP

SOP è incredibilmente importante per la sicurezza sia degli utenti che dei server Web in generale, sebbene abbia lo svantaggio di rendere più difficile creare determinati tipi di app web. Esistono metodi per consentire l’interazione tra i siti, sebbene questi siano in genere reciprocamente consensuali e limitati a determinati canali.

La specifica W3C Cross-Origin Resource Sharing (CORS) è una delle risposte al problema. Consente al browser di contattare il server target dello script per determinare se è disposto a partecipare a un determinato tipo di transazione. Pertanto, le richieste incrociate di origine possono essere consentite in modo sicuro, dando al server di destinazione la possibilità di optare specificamente a determinate richieste e rifiutare tutte le altre.

WebSockets è un’altra opzione che consente funzionalità simili, ma su canali trasparenti piuttosto che richieste HTTP isolate. Una volta stabilita una tale connessione, lo script può trasferire traffico e risorse come piace, con la necessità di inquadratura come una serie di transazioni di richiesta/risposta HTTP.

In entrambi i casi, la fase di verifica iniziale impedisce il trasferimento arbitrario di dati da parte di uno script con un’origine diversa.

4. Considerazioni sulla sicurezza WebRTC

4.1. Installazione e aggiornamenti

Un problema prevalente con il software desktop tradizionale è se si può fidarsi dell’applicazione stessa. L’installazione di nuovo software o un plug -in può potenzialmente installare malware o altro software indesiderabile. Molti utenti finali non hanno idea di dove sia stato realizzato il software o esattamente da chi sta scaricando l’app. Terze parti dannose hanno avuto un grande successo nel riconfezionamento di software perfettamente sicuro e affidabile per includere malware e offrire il loro pacchetto personalizzato su siti Web di software gratuito.

WebRTC tuttavia non è un plug -in, né esiste alcun processo di installazione per nessuno dei suoi componenti. Tutta la tecnologia WEBRTC sottostante è installata semplicemente come parte del download di un browser compatibile con WEBRTC adatto, come Chrome o Firefox. Se un utente ha un tale browser, può sfogliare e utilizzare qualsiasi applicazione WebRTC senza altra configurazione o preparazione richiesta. Pertanto, non vi è alcun rischio di installazione di malware o virus attraverso l’uso di un’applicazione WebRTC appropriata. Tuttavia, le app WebRTC dovrebbero ancora accedere tramite un sito Web HTTPS firmato da un autenticatore valido come VeriSign.

Un’altra considerazione correlata è la patching dei difetti di sicurezza scoperti nel software. Come per qualsiasi tecnologia software, è del tutto possibile che i futuri bug o vulnerabilità vengano scoperti in WebRTC. Se una vulnerabilità si trova in un’applicazione desktop tradizionale (come un’applicazione VOIP tipica), lo sviluppo di una patch può richiedere molto tempo. Questo è un problema frequente con lo sviluppo dell’applicazione, poiché la sicurezza è ancora spesso trattata come una considerazione secondaria dopo funzionalità. Andando più in profondità di così, possiamo contemplare i metodi di comunicazione basati su hardware. Quante volte un telefono VoIP ottiene un aggiornamento di sicurezza? Puoi fidarti della persona responsabile di aggiornarlo regolarmente? Sai anche chi è responsabile?

Contrariamente a questo, i browser sono una scena di sviluppo frenetica a causa della frequenza e della gamma di rischi che gli utenti sono esposti, così come la loro natura onnipresente (e l’importanza delle informazioni accessibili attraverso il browser). Poiché i componenti di WebRTC vengono offerti come parte di un browser, vengono anche aggiornati ogni volta che il browser viene aggiornato. Se una futura vulnerabilità dovesse essere trovata nell’implementazione WebRTC di un browser, una soluzione sarà probabilmente consegnata rapidamente. Questo può essere particolarmente visto per essere vero nei cicli di sviluppo rapido di Chrome e Firefox. In effetti, nell’era degli aggiornamenti automatici, i componenti WebRTC possono essere aggiornati tramite una nuova versione del browser non appena la patch è resa disponibile sui server. La maggior parte dei browser moderni ha una buona registrazione di auto-aggiornati entro 24 ore dalla scoperta di una grave vulnerabilità o minaccia.

Come nota a margine: sebbene abbiamo dichiarato che WebRTC non richiede installazione di plugin, è possibile che i framework WebRTC di terze parti possano offrire plug-in per consentire il supporto su browser attualmente non supportati (come Safari e IE). È consigliabile cautela dell’utente (o un browser supportato).

4.2. Accesso ai media/risorse locali

Il browser può accedere alle risorse locali (tra cui fotocamera, microfono), che conduce l’inevitabile preoccupazione di un’applicazione Web che accede al microfono e alla fotocamera di un utente. Se le applicazioni Web potessero accedere liberamente alla fotocamera o al microfono di un utente, un’app senza scrupoli può tentare di registrare o distribuire feed video o audio a parte l’utente. Potrebbe essere una questione semplice per un sito Web residente in una scheda in background per abusare della fiducia dell’utente (l’utente potrebbe non rendersi nemmeno conto che un sito ospita tale applicazione di comunicazione).

WebRTC combatte questo richiedendo all’utente di fornire l’autorizzazione esplicita per l’utilizzo della fotocamera o del microfono (entrambi possono essere configurati singolarmente). È possibile chiedere all’utente l’accesso una tantum o permanente. Non è possibile per un’applicazione WebRTC ottenere arbitrariamente l’accesso o gestire uno dei dispositivi. Inoltre, quando viene utilizzato il microfono o la fotocamera, l’interfaccia utente del client è necessaria per mostrare espressamente all’utente che il microfono o la fotocamera vengono azionati. In Chrome, questo assume la forma di un punto rosso su qualsiasi scheda che accede ai media di un utente.

Figura 3. Indicatori dell'interfaccia utente di Chrome

Figura 3. Indicatori dell’interfaccia utente Chrome

La filosofia di questa protezione della sicurezza è che un utente dovrebbe sempre prendere una decisione informata se debba concedere una chiamata o ricevere una chiamata. In altre parole, un utente deve capire: – Chi o cosa richiede l’accesso ai suoi media – dove stanno andando i media – o entrambi.

Come disposizione aggiuntiva, la specifica WebRTC specifica che i browser dovrebbero fermare la fotocamera e il microfono quando l’indicatore dell’interfaccia utente è mascherato (E.G. tramite finestre). Sebbene questo sia più un comportamento ideale, non è necessariamente garantito e gli utenti dovrebbero prestare attenzione. Fortunatamente, tuttavia, questa funzionalità aggiuntiva non è probabile che sia il comportamento previsto dall’utente.

La condivisione dello schermo introduce ulteriori considerazioni sulla sicurezza a causa della flessibilità intrinseca dell’ambito. Un utente potrebbe non essere immediatamente a conoscenza dell’entità delle informazioni che stanno condividendo. Ad esempio, possono credere che stiano semplicemente condividendo un flusso di una particolare finestra (E.G. Pur dando una presentazione a partite remote), quando in realtà mostrano il loro intero schermo al loro pubblico. Questo può essere il risultato del non riuscire a stabilire correttamente la configurazione iniziale di condivisione dello schermo, oppure che l’utente possa semplicemente dimenticare l’entità di ciò che sta condividendo.

4.3. Crittografia dei media e sicurezza della comunicazione

Ci sono diversi modi in cui un’applicazione di comunicazione in tempo reale può imporre rischi per la sicurezza. Uno particolarmente notevole è l’intercettazione di media o dati non crittografati durante la trasmissione. Ciò può verificarsi tra il browser-browser o la comunicazione del server browser, con una terza parte in grado di vedere tutti i dati inviati. La crittografia tuttavia, lo rende efficacemente impossibile per un EavesRopper determinare il contenuto dei flussi di comunicazione. Solo le parti con accesso alla chiave di crittografia segreta possono decodificare i flussi di comunicazione.

La crittografia è una caratteristica obbligatoria di WebRTC ed è applicata su tutti i componenti, compresi i meccanismi di segnalazione. Di conseguenza, tutti i flussi multimediali inviati su WebRTC sono crittografati in modo sicuro, messo in atto attraverso protocolli di crittografia standardizzati e noti. Il protocollo di crittografia utilizzato dipende dal tipo di canale; I flussi di dati vengono crittografati utilizzando la sicurezza del livello di trasporto Datagram (DTLS) e i flussi di media vengono crittografati utilizzando Secure Real-Time Transport Protocol (SRTP).

4.3.1. DTLS: Sicurezza del livello di trasporto Datagram

WebRTC crittografa le informazioni (specificamente canali di dati) utilizzando la sicurezza del layer di trasporto Datagram (DTLS). Tutti i dati inviati su rtcdatachannel sono protetti utilizzando DTLS.

DTLS è un protocollo standardizzato integrato in tutti i browser che supportano WebRTC ed è un protocollo costantemente utilizzato nei browser Web, e -mail e piattaforme VoIP per crittografare le informazioni. La natura integrata significa anche che non è richiesta alcuna configurazione precedente prima dell’uso. Come con altri protocolli di crittografia, è progettato per prevenire la deviazione e la manomissione delle informazioni. DTLS stesso è modellato sul TLS orientato al flusso, un protocollo che offre una crittografia completa con metodi di crittografia asimmetrica, autenticazione dei dati e autenticazione dei messaggi. TLS è lo standard de-facto per la crittografia Web, utilizzato per gli scopi di protocolli come HTTPS. TLS è progettato per il meccanismo di trasporto affidabile di TCP, ma app VOIP (e giochi, ecc.) in genere utilizzano trasporti di datagrammi inaffidabili come UDP.

Poiché DTLS è un derivato di SSL, è noto che tutti i dati sono sicuri come l’utilizzo di qualsiasi connessione basata su SSL standard. In effetti, i dati WEBRTC possono essere protetti tramite qualsiasi connessione SSL standard in base al Web, consentendo a WEBRTC di offrire una crittografia end-to-end tra peer con quasi tutti gli accordi del server.

4.3.1.1. Dtls durante il turno

L’opzione predefinita per tutta la comunicazione WebRTC è la comunicazione P2P diretta tra due browser, aiutata con server di segnalazione durante la fase di configurazione. La crittografia P2P è relativamente facile da prevedere e configurazione, ma in caso di errore di errore WebRTC ricade nella comunicazione tramite un server di svolta (se disponibile). Durante la comunicazione a turno i media possono subire una perdita di qualità e una maggiore latenza, ma consente uno scenario “se tutto il resto fallisce” per consentire all’applicazione WEBRTC di lavorare anche in circostanze difficili. Dobbiamo anche considerare la comunicazione crittografata nella struttura di comunicazione alternativa di Turn.

È noto che, indipendentemente dal metodo di comunicazione, i dati inviati vengono crittografati negli endpoint. Lo scopo di un server di svolta è semplicemente il relè dei dati WebRTC tra le parti in una chiamata e analizzerà solo il livello UDP di un pacchetto WebRTC a scopo di routing. I server non decodificheranno il livello dei dati dell’applicazione per instradare i pacchetti e quindi sappiamo che non (e non possono) toccare la crittografia DTLS.

Di conseguenza, le protezioni messe in atto attraverso la crittografia non sono quindi compromesse durante la comunicazione WEBRTC a turno e il server non può comprendere o modificare le informazioni che i peer si inviano l’un l’altro.

4.3.2. SRTP: Protocollo di trasporto in tempo reale

RTP di base non ha alcun meccanismi di sicurezza integrati e quindi non pone protezioni della riservatezza dei dati trasmessi. I meccanismi esterni sono invece invocati per fornire crittografia. In effetti, l’uso di RTP non crittografato è esplicitamente proibito dalla specifica WebRTC.

WebRTC utilizza SRTP per la crittografia dei flussi multimediali, anziché DTLS. Questo perché SRTP è un’opzione più leggera di DTLS. La specifica richiede che qualsiasi supporto di implementazione WEBRTC conforme RTP/SAVPF (che è costruito su RTP/SAVP) [9] . Tuttavia, lo scambio di tasti SRTP effettivo viene inizialmente eseguito end-to-end con DTLS-SRTP, consentendo il rilevamento di eventuali attacchi MITM.

4.3.3. Istituzione di un collegamento sicuro

Facciamo passare attraverso il processo di stabilire una nuova chiamata su un’applicazione WebRTC. In questo caso, ci saranno due parti coinvolte; Alice e Bob. La procedura di chiamata viene avviata quando una parte (Alice) chiama l’altra (Bob) e il processo di segnalazione scambia i metadati pertinenti tra le due parti.

Una volta che i controlli ICE iniziali si sono conclusi (o specificamente, alcuni di essi), i due colleghi inizieranno a configurare uno o più canali sicuri. Inizialmente, una stretta di mano DTLS viene eseguita su tutti i canali stabiliti dal ghiaccio. Per i canali di dati, questo passaggio da solo è sufficiente poiché per la crittografia viene utilizzato DTL semplici semplici. Per i canali multimediali, tuttavia, vengono prese ulteriori passaggi.

Una volta completata la stretta di mano DTLS, le chiavi vengono “esportate” e utilizzate per la chiave SRTP per i canali multimediali. In questa fase entrambe le parti sanno che condividono una serie di dati sicuri e/o canali multimediali con chiavi che non sono note a nessuna terza parte dannosa.

4.3.4. Dtls-srtp vs SDES

Al fine di negoziare i parametri di sicurezza per la sessione del traffico multimediale, SRTP deve interagire con un protocollo di gestione delle chiavi. Questo protocollo non è stabilito, offrendo una serie di possibili opzioni per l’attività. Due di queste opzioni sono SDES e DTLS-SRTP.

Vale la pena notare che la segnalazione (SIP, HTTP) e i media (RTP) coinvolti in una comunicazione multimediale possono essere garantiti in modo indipendente.

SDES

Descrizioni di sicurezza SDP per i flussi di media (SDES) era l’opzione precedentemente favorita da WebRTC.

All’interno di SDES, i parametri di sicurezza e le chiavi utilizzati per impostare le sessioni SRTP vengono scambiati in un testo chiaro sotto forma di attributi SDP. Poiché l’SDP viene comunicato sul piano di segnalazione, se la crittografia non viene inoltre emanata su tali messaggi di segnalazione, una terza parte intercetta potrebbe ottenere le chiavi per i dati crittografati SDES. In altre parole, un ulteriore protocollo di crittografia dovrebbe essere utilizzato specificamente per la crittografia del piano di segnalazione. Una di queste opzioni per questo è usare TLS.

La sicurezza della segnalazione e dei media in modo indipendente, tuttavia, può portare alla situazione in cui l’utente dei media è diverso dall’utente di segnalazione (poiché non viene fornita alcuna garanzia). Per fornire questa garanzia, è necessario un legame crittografico. Dtls-srtp è uno di questi meccanismo che fornisce questo, ma SDES no.

Rimane un fatto che anche oggi la maggior parte del traffico RTP nelle reti VoIP non è garantita. In effetti, la crittografia è una delle prime caratteristiche che i clienti di solito chiedono ai venditori di rimuovere per soddisfare i propri budget. Se garantito, la maggior parte delle distribuzioni utilizza SDES, che come abbiamo appena menzionato si basa fortemente sulla sicurezza del piano di segnalazione.

Dtls-srtp

DTLS-SRTP d’altra parte scambia i tasti sul piano multimediale, piuttosto che sul piano di segnalazione. La conseguenza di tale differenza è che un canale multimediale SRTP non ha bisogno di rivelare le chiavi di crittografia segreta attraverso uno scambio di messaggi SDP, come nel caso di SDES.

La specifica WebRTC [9] afferma che le implementazioni WebRTC sono necessarie per supportare DTLS-SRTP per la gestione delle chiavi. Inoltre, è specificato che sia lo schema predefinito e preferito e non vi è alcuna disposizione per l’attuazione di altri schemi di gestione delle chiavi. In altre parole, altri schemi possono o non possono essere supportati affatto.

Se un’offerta o una “chiamata” viene ricevuta da un supporto pubblicitario peer sia per DTLS-SRTP che per SDES, DTLS-SRTP deve essere selezionata, indipendentemente dal fatto che la segnalazione sia protetta o meno.

Il dibattito

È generalmente accettato che DTLS-SRTP dovrebbe essere l’opzione obbligatoria e predefinita per la crittografia di WebRTC Media. Ciò che viene messo in discussione è se altri meccanismi, vale a dire SDES, debbano essere utilizzati per fornire compatibilità all’indietro.

Dal punto di vista della compatibilità, il browser Chrome di Google fornisce supporto per SDES e DTLS-SRTP. Firefox di Mozilla, d’altra parte, implementa solo DTLS-SRTP.

4.3.5. Una debolezza in srtp

SRTP crittografa solo il payload di pacchetti RTP, non fornendo crittografia per l’intestazione. Tuttavia, l’intestazione contiene una varietà di informazioni che possono essere desiderabili per mantenere segreto.

Una di queste informazioni incluse nell’intestazione RTP sono i livelli audio dei dati multimediali contenuti. In effetti, chiunque possa vedere i pacchetti SRTP può dire se un utente sta parlando o meno in un dato momento. Sebbene il contenuto dei media stessa rimanga segreta a qualsiasi intercettazione, questa è ancora una prospettiva spaventosa. Ad esempio, i funzionari delle forze dell’ordine potrebbero determinare se un utente sta comunicando con un cattivo noto.

4.4. Autenticazione tra pari basata sul Web e gestione delle identità

È desiderabile che un utente sia in grado di verificare l’identità dei propri colleghi. IO.e. Un utente vuole naturalmente essere certo di parlare alla persona con cui credono di parlare e non a un impostore.

Sebbene il server di segnalazione possa essere in grado di andare in qualche modo per rivendicare l’identità di un utente, il server di segnalazione stesso potrebbe non essere (e nel caso dell’autenticazione non dovrebbe essere attendibile). Dobbiamo essere in grado di eseguire l’autenticazione dei nostri pari in modo indipendente dal server di segnalazione. Ciò può essere reso possibile attraverso l’uso di fornitori di identità.

Figura 4. Una chiamata con identità basata su IDP

Figura 4. Una chiamata con identità basata su IDP

Numerosi provider di identità basati sul Web (IDP) sono recentemente diventati all’ordine del giorno, tra cui Facebook Connect, Browserid (di Mozilla), OAuth (da Twitter). Lo scopo di questi meccanismi è semplicemente quello di verificare la propria identità ad altri servizi/utenti, sull’autorità del fornitore di identità stesso. Se un utente ha un account su Facebook, allora può utilizzare Facebook Connect, l’IDP di Facebook per dimostrare agli altri che sono quello che dicono di essere su Facebook. Ciò consente agli utenti di legare la propria autenticazione su altri servizi al proprio account principale su un servizio “di fiducia”. Si noti che in questo caso il livello di “fiducia” che un fornitore di identità possiede è soggettivo per l’utente o il servizio end-point ed è spesso in gran parte legato alla base di utenti e alla reputazione in tutto il mondo Web.

Le implementazioni di ciascun IDP possono differire a causa dello sviluppo indipendente da parte di diverse aziende piuttosto che basarsi su uno standard open source, ma il principio e la funzionalità sottostanti rimangono essenzialmente le stesse. Gli IDP non forniscono autenticazione per un server di segnalazione; Piuttosto, forniscono autenticazione per un utente (e il loro browser attraverso il processo). WebRTC non pone inoltre requisiti su quali servizi dovrebbero essere utilizzati e quelli utilizzati si basano sull’implementazione dell’applicazione Web.

Poiché l’applicazione Web (sito di chiamata) non è correlata a questo processo di autenticazione, è importante che il browser genera in modo sicuro l’ingresso al processo di autenticazione e visualizza in modo sicuro l’output sull’applicazione Web. Questo processo non deve essere in grado di essere falsificato o travisato dall’applicazione Web.

Figura 5. Il funzionamento di un fornitore di identità

Figura 5. Il funzionamento di un fornitore di identità

4.5. Privacy della posizione IP

Un effetto collaterale negativo dell’uso del ghiaccio è che un peer può imparare il proprio indirizzo IP. Poiché gli indirizzi IP sono registrati pubblicamente presso le autorità globali, possono rivelare dettagli come una determinata posizione di pari. Ciò potrebbe naturalmente avere implicazioni negative per un pari, che vorrebbero evitare.

WebRTC non è progettato con l’intenzione di proteggere un utente da un sito Web dannoso che desidera apprendere queste informazioni. In genere, tale sito imparerà almeno un indirizzo riflessivo del server dell’utente da qualsiasi transazione HTTP. Nascondere l’indirizzo IP dal server richiederebbe una sorta di meccanismo esplicito di conservazione della privacy sul client ed è fuori portata di questo rapporto.

WebRTC fornisce tuttavia una serie di meccanismi destinati a consentire a un’applicazione Web di cooperare con l’utente di nascondere l’indirizzo IP dell’utente dall’altro lato della chiamata. Questi meccanismi saranno dettagliati a loro volta.

È necessaria un’implementazione WEBRTC per fornire un meccanismo per consentire a JS di sopprimere la negoziazione del ghiaccio fino a quando l’utente non ha deciso di rispondere alla chiamata. Questa disposizione aiuta gli utenti finali a impedire a un pari di apprendere il proprio indirizzo IP se scelgono di non rispondere a una chiamata. Questo ha l’effetto collaterale di nascondere se un utente è online o meno ai propri colleghi.

La seconda disposizione di questo tipo è che qualsiasi implementazione fornirà un meccanismo per il JavaScript dell’app di chiamata per indicare che devono essere utilizzati solo i candidati a giri. Ciò può impedire a un pari di imparare il proprio indirizzo IP.

Inoltre, esiste un meccanismo per l’app di chiamata per riconfigurare una chiamata esistente per aggiungere candidati non giri. Insieme alla disposizione precedente, ciò consente alla negoziazione ICE di iniziare immediatamente su una notifica delle chiamate in arrivo, riducendo così il ritardo, ma evitando anche di divulgare l’indirizzo IP dell’utente fino a quando non hanno deciso di rispondere. Ciò consente agli utenti di nascondere completamente il proprio indirizzo IP per la durata della chiamata.

4.6. Strato di segnalazione

Poiché il protocollo di segnalazione non è specificato da WebRTC, il meccanismo per la crittografia dipende ovviamente dal protocollo di segnalazione scelto. A causa della natura relativamente aperta della sicurezza di segnalazione, questo rapporto si concentrerà e spiegherà brevemente il protocollo più comune, SIP (Protocollo di iniziazione di sessione).

SIP è uno standard ampiamente implementato utilizzato nella comunicazione VoIP per configurare e abbattere le telefonate. Tuttavia, è un derivato di HTTP e SMTP: entrambi sono protocolli che vengono regolarmente sfruttati. Poiché utilizza messaggi a testo semplice per scambiare informazioni, è possibile che qualsiasi parte dannosa tocchi una rete e acquisisca messaggi SIP. Se un utente malintenzionato può leggere le informazioni sensibili di un utente, potrebbe utilizzare queste informazioni per falsificare l’utente. E se l’attaccante può procedere ulteriormente ad accedere alla rete dell’operatore, può anche essere possibile per loro decifrare il contenuto della comunicazione WebRTC. [14]

Poiché il SIP viene inviato in testo chiaro, è banale che un attaccante determinato intercetta i messaggi SIP. Quello che succede dopo è lasciato all’immaginazione dell’attaccante, ma non è difficile immaginare un’eventualità in quanto il contenuto del corpo o dell’intestazione è manomesso. Se l’attaccante intercetta un messaggio di invito, può quindi procedere a cambiare dall’intestazione per riflettere il proprio indirizzo IP.

4.6.1. SIP Vulnerabilità

SIP è un protocollo di comunicazione per la segnalazione e il controllo delle sessioni di comunicazione multimediale ed è frequentemente implementato nelle tecnologie VoIP allo scopo di impostare e abbattere le telefonate. Allo stesso modo può essere utilizzato in un’implementazione WebRTC per scopi di segnalazione, come una delle numerose opzioni possibili. Tuttavia, i messaggi SIP vengono spesso inviati in testo normale. Poiché ciò può naturalmente comportare una serie di potenziali vettori di attacco, faremo un esame più attento di quest’area.

SIP Flow

Nel processo di configurazione di una chiamata, il browser di un utente (o “agente utente”) si registra con un registrar centrale. Questa registrazione è una necessità nel VoIP tradizionale in quanto è necessario fornire i mezzi per individuare e contattare una parte remota.

Quando una festa (Bob) vuole avviare una chiamata, invia un messaggio di invito tramite un server proxy centrale (questo è il server di segnalazione). Il server è responsabile per trasmettere tali messaggi e fornire i mezzi per individuare altri utenti. Il server può tentare una serie di misure per individuare un utente finale durante questo processo di ricerca, come l’utilizzo di DNS.

Dirottamento della registrazione

La registrazione del browser iniziale viene utilizzata per annunciare il punto di contatto di un utente e indica che il dispositivo di un utente sta accettando le chiamate. Tuttavia, il processo fornisce un vettore per le entità dannose per eseguire un attacco di “hijack di registrazione”.

Lo scambio di messaggi di registrazione include un campo “Contatto:”, contenente l’indirizzo IP dell’utente. Ogni volta che il server di segnalazione elabora una chiamata in arrivo, il nome utente (o il numero di telefono) viene abbinato all’indirizzo IP registrato e l’invito viene inoltrato di conseguenza. Queste registrazioni sono periodicamente aggiornate, garantendo che i record siano mantenuti recenti e aggiornati.

Poiché i messaggi SIP vengono sempre inviati in un testo semplice, può essere banale per un utente malintenzionato intercettare e leggere il contenuto di questi messaggi di registrazione. Seguendo l’intercettazione, uno strumento appropriato (come il generatore di messaggi Sivus) può essere utilizzato per generare informazioni SIP simili, ma con l’indirizzo IP reale dell’utente sostituito dallo attaccante dell’attaccante. L’attaccante deve solo disabilitare l’utente reale e inviare periodicamente queste informazioni per deviare tutte le chiamate in arrivo a se stesse.

Esistono numerosi metodi che un utente malintenzionato potrebbe utilizzare per disabilitare un utente legittimo, tra cui: – Eseguire un attacco DOS contro il dispositivo dell’utente – Deregistering dell’utente (un altro attacco che non è coperto qui) – generando una condizione di registrazione di registrazione, in cui l’attaccante invia le richieste ripetute in una frame di tempo più breve (come ogni 15 secondi) per eliminare la revisione legittima di legittima. Sono tutti i rischi autentici per i servizi di segnalazione WebRTC.

Poiché l’implementazione di SIP non supporta l’integrità del controllo del contenuto del messaggio, gli attacchi di modifica e riproduzione non vengono quindi rilevati e sono un vettore di attacco fattibile. Questo attacco funziona anche se il server richiede l’autenticazione della registrazione dell’utente, poiché l’attaccante può ancora una volta acquisire, modificare e riprodurre i messaggi come desiderato.

Questo attacco può essere soppresso implementando SIP (SIP su TLS) e autenticando le richieste e le risposte SIP (che possono includere protezione da integrità). In effetti, l’uso di SIP e l’autenticazione delle risposte può sopprimere molti attacchi associati tra cui intercettazione e messaggio o imitalità dell’utente.

Altri possibili attacchi

  • Attacco mitm
    • Se l’attaccante è in grado di intercettare i messaggi SIP iniziali, può quindi eseguire un attacco MITM.
    • I pacchetti catturati potrebbero essere riprodotti al server da una parte dannosa, facendo sì che il server chiamasse la destinazione originale di una chiamata. In altre parole, ciò avrebbe probabilmente assunto la forma di una seconda richiesta di chiamata non richiesta, identica a una parte che la parte aveva già ricevuto. Sebbene un fastidio, l’attaccante non sarebbe partito della chiamata, poiché le loro informazioni IP non sarebbero incluse nei pacchetti di segnalazione.
    • I server Web non sono statali, con ogni richiesta servita una sessione separata (allevate necessarie per l’autenticazione continua). Cookie per l’autenticazione, ma non sono altro che un file di dati contenente l’ID sessione. Questi cookie vengono inviati dal server Web al browser al momento dell’accesso iniziale.

    Crittografia

    Sebbene possa sembrare che la segnalazione fornisca un punto di vista particolarmente allettante per gli aggressori, tutto non si perde. Oltre ai flussi multimediali, il livello di segnalazione può anche essere crittografato. Una di queste opzioni crittografate è ONSIP, che utilizza SIP su WebSocket Secure (WSS: // Invece di WS: //), con la connessione WebSocket crittografata da TLS.

    Sebbene al di fuori dell’ambito di questo rapporto, altre tecnologie di segnalazione possono utilizzare allo stesso modo TLS per crittografare il proprio traffico web o altro traffico web. Come per tutta la crittografia, se la terza parte non conosce la chiave di crittografia segreta, non sono quindi in grado di leggere il contenuto del testo semplice della comunicazione. Ciò aiuta a eliminare il rischio di gran parte dei vettori di attacco di cui sopra, sebbene si dovrebbe notare che il programmatore dell’applicazione deve implementare specificamente il metodo di segnalazione crittografato affinché questo sia applicabile.

    4.7. Argomenti di sicurezza aggiuntivi

    Punto di vista della rete di telecomunicazioni

    Fornendo supporto a WEBRTC, una rete di telecomunicazioni dovrebbe ragionevolmente aspettarsi di non essere esposta ad un aumento del rischio di sicurezza. Tuttavia, dispositivi o software nelle mani dei consumatori saranno inevitabilmente compromessi da parti dannose.

    Per questo motivo, tutti i dati ricevuti da fonti non attendibili (E.G. Dal consumatore/utenti) deve essere convalidato e la rete di telecomunicazioni debba presumere che tutti i dati inviati al cliente saranno ottenuti da fonti dannose.

    Adottando questi due principi, un fornitore di telecomunicazioni deve sforzarsi di fare tutti i ragionevoli tentativi di proteggere il consumatore dai propri errori che possono compromettere i propri sistemi.

    Scripting tramite (XSS)

    Lo scripting incrociato è una vulnerabilità di tipo in genere presente nelle applicazioni Web (come i browser Web attraverso violazioni della sicurezza del browser) che consente agli aggressori di iniettare lo script lato client nelle pagine Web visualizzate da altri utenti. Una vulnerabilità di scripting incrociata può essere utilizzata dagli aggressori per bypassare i controlli di accesso come la stessa politica di origine.

    Il loro effetto può variare da un piccolo fastidio a un rischio di sicurezza significativo, a seconda della sensibilità dei dati gestiti dal sito vulnerabile e dalla natura di qualsiasi mitigazione della sicurezza implementata dal sito’proprietario.

    Poiché il metodo principale per accedere a WEBRTC dovrebbe utilizzare browser abilitati HTML5, ci sono considerazioni di sicurezza specifiche sul loro uso come ad esempio; Proteggere le chiavi e i dati sensibili da script siti o attacchi a dominio incrociato, utilizzo di websocket, sicurezza IFRAME e altri problemi. Poiché il software client sarà controllato dall’utente e perché il browser non esegue, nella maggior parte dei casi, in un ambiente protetto, ci sono ulteriori possibilità che il client WebRTC sarà compromesso. Ciò significa che tutti i dati inviati al cliente potrebbero essere esposti.

    5. Confronto con tecnologie concorrenti/simili

    Un esame della sicurezza comparativa di WebRTC non avrebbe senso senza considerare anche la sicurezza della concorrenza. Fortunatamente per WebRTC, la concorrenza nell’arena di comunicazione basata sul web ha una sua parte di problemi.

    Questa sezione esplorerà i punti di forza e di debolezza comparativi di WebRTC e altre piattaforme che offrono funzionalità RTC concorrenti.

    Alcune piattaforme che potremmo esplorare sono le seguenti. Le piattaforme da esplorare non sono ancora state scelte. (Per venire dopo il primo disegno.)

    Sebbene ampiamente invocati, i processi di installazione aggiuntivi possono rappresentare una barriera

    6. Pratiche di progettazione sicure

    WebRTC è costruito per essere sicuro. Tuttavia, più che fare affidamento ciecamente sulla tecnologia sottostante, è una buona idea codificare consapevolmente pensando alla sicurezza. Questa sezione discuterà delle pratiche di codifica che possono essere seguite per garantire una maggiore sicurezza su un’implementazione WebRTC vaniglia. In particolare, queste pratiche potrebbero essere applicabili alle organizzazioni che si aspettano di gestire informazioni sensibili, e.G. istituti bancari, istituti sanitari o informazioni aziendali riservate.

    Segnalazione sicura

    Come accennato in precedenza, WebRTC non impone alcun vincolo al processo di segnalazione, piuttosto lasciando lo sviluppatore a decidere il proprio metodo preferito. Sebbene ciò consenta un grado di flessibilità che può avere l’implementazione WebRTC su misura per le esigenze dell’applicazione, possono esserci rischi associati a determinati protocolli di segnalazione.

    È consigliabile implementare un protocollo di segnalazione che fornisce ulteriore sicurezza, come la crittografia del traffico di segnalazione. Per impostazione predefinita, un processo di segnalazione potrebbe non incorporare alcuna crittografia, che può lasciare aperti il ​​contenuto di tutti i messaggi di segnalazione scambiati. Le applicazioni concentrate sulla sicurezza/riservatezza dovrebbero quindi garantire che il loro livello di segnalazione sia implementato su un protocollo sicuro come SIP, OpenSip, HTTPS o WSS.

    Autenticazione e monitoraggio dei pari

    Un’app WebRTC di base richiede solo l’ID di un utente per eseguire una chiamata, senza autenticazione eseguita dal punto di vista del servizio stesso. Potrebbe essere desiderabile richiedere la pre-registrazione o l’autenticazione prima che qualsiasi utente possa partecipare a una chiamata. Le entità non autenticate dovrebbero quindi essere tenute lontano dalla sessione’s Reach, limitando l’accessibilità a parti non attendibili.

    Poiché le connessioni multimediali sono P2P, i contenuti dei media (canali audio e video) vengono trasmessi tra i peer direttamente in duplex completo. Pertanto, poiché il server di segnalazione mantiene il numero di peer in comunicazione, potrebbe essere costantemente monitorato per l’aggiunta di pari sospetti in una sessione di chiamata. Se il numero di peer presenti effettivamente su Signaling Server è più che il numero di peer che interagiscono sulla pagina WebRTC, potrebbe significare che qualcuno sta interrompendo segretamente e dovrebbe essere interrotto dall’accesso alla sessione con la forza.

    Richieste di autorizzazione

    È un comportamento noto che spesso gli utenti accettano richieste di autorizzazione o dialoghi simili senza leggere consapevolmente il messaggio. Ciò rappresenta il rischio di concedere un’applicazione Web con autorizzazioni che non erano effettivamente previste dall’utente.

    Sebbene questo comportamento stesso non possa essere facilmente affrontato, una soluzione potrebbe essere di dettagliare chiaramente sulla pagina quali autorizzazioni l’applicazione richiederà. Tale applicazione pone la privacy di un utente in prima linea.

    Uomo nel mezzo

    Nell’eventualità che una festa dannosa riesce a creare un attacco MITM, in genere non esiste una soluzione facile da scoprire o combattere contro di essa. Questo perché l’attacco non ha alcun preavviso e la comunicazione è consentita di procedere normalmente. Se non si aspetta un tale attacco, l’attacco probabilmente continuerà inosservato.

    Tuttavia, monitorando regolarmente il percorso dei media senza relè sospetti, possiamo fare un piccolo passo verso il mitigazione degli attacchi MITM. Questo dovrebbe essere accoppiato alla segnalazione crittografata, come menzionato sopra.

    Condivisione dello schermo

    Un’applicazione che offre qualsiasi grado di funzionalità di condivisione dello schermo dovrebbe avere avvertimenti per proteggere l’utente. Come precedentemente discusso, un utente potrebbe non essere a conoscenza dell’entità dello schermo in fase di condivisione. Tale problema dovrebbe tornare a un’applicazione correttamente progettata per fornire tali informazioni appropriate.

    Ad esempio, prima di iniziare lo streaming di qualsiasi parte dello schermo, l’utente dovrebbe essere avvisato e consigliato di chiudere qualsiasi schermata contenente informazioni sensibili.

    Un fallback

    Come ultima misura di fallback, potremmo avventurarci per quanto riguarda la situazione in quanto una sessione di chiamata attiva è compromessa da una parte non autorizzata. Se una chiamata è confermata per essere compromessa in questo modo, dovrebbe essere all’interno della potenza del server delle applicazioni Web che rende la pagina capace WebRTC per tagliare la chiamata.

    7. Conclusione

    Nell’era moderna degli smartphone e dei dispositivi mobili le persone comunicano più che mai e in modi ancora più personali di quanto non sapessimo prima. La crittografia in particolare è diventata un grande argomento negli ultimi anni, a seguito della crescente consapevolezza dei principali scandali di hacking aziendali e della diffusione delle telecomunicazioni del governo. Il cui risultato è stato un rapido aumento della sfiducia dell’utente nei confronti di tali organizzazioni e richiede armi nell’implementazione di misure di sicurezza notevolmente migliorate. Tutto ciò che l’utente finale desidera è sapere che i loro dati personali sono mantenuti privati ​​sotto controllo.

    WebRTC ha un grande vantaggio rispetto alla maggior parte dei servizi VoIP nell’area di sicurezza. Fino ad ora, la maggior parte dei servizi ha generalmente trattato la sicurezza come facoltativa, il che significa che la maggior parte degli utenti finali utilizza chiamate VoIP senza crittografia. Le grandi società in particolare sono un colpevole di spicco per questo, scegliendo di risparmiare denaro su implementazioni più economiche piuttosto che considerare correttamente i loro utenti o il valore dei dati che gestiscono. Ma poiché WebRTC proibisce la comunicazione non crittografata, gli utenti possono essere garantiti che i loro dati rimangono sicuri e privati.

    Essendo stato progettato pensando alla sicurezza, WebRTC applica o incoraggia importanti concetti di sicurezza in tutta l’area principale. In quanto tale, oltre a essere semplicemente realizzato, incoraggia anche gli sviluppatori WebRTC a prendere sul serio la loro sicurezza.

    Come risultato di questa forte attenzione alla comunicazione sicura, WebRTC è attualmente considerato da alcuni come una delle soluzioni VoIP più sicure là fuori. La premessa principale di avere la crittografia per impostazione predefinita è che una chiamata è sempre privata. Sicurezza e crittografia non sono più considerate caratteristiche opzionali. E per completare tutto, WebRTC è disponibile gratuitamente per tutti, fornendo un quadro allettante e affidabile per gli sviluppatori per costruire la loro prossima applicazione.

    Nel prossimo futuro possiamo aspettarci di vedere sempre più servizi di comunicazione che forniscono una maggiore sicurezza ai propri utenti. Ma per ora, WebRTC è uno di quelli che stanno guidando la carica.

    8. Bibliografia

    2. Breve introduzione all’API RTCPeerConnection .
    Networking browser ad alte prestazioni. Accesso al 2015-07-28.

    3. SDP per WebRTC .
    utensili.ietf.org. Accesso al 2015-07-28.

    8. Attacco della settimana: Datagram TLS .
    Blog.Ingegneria della crittografia.com. Accesso al 2015-07-28.

    12. IETF-87 RTCWeb Agenda .
    utensili.ietf.org. Accesso al 2015-07-28.

    15. Sicurezza in una rete SIP: identificazione degli attacchi di rete .
    Comunicazioni SearchUnified.Techtarget.com. Accesso al 2015-07-28.

    17. Sicurezza per applicazioni WebRTC .
    Altanaitelecom.WordPress.com. Accesso al 2015-07-28.

    18. Sicurezza WebRTC .
    Altanaitelecom.WordPress.com. Accesso al 2015-07-28.

    SRTP usando il protocollo DTLS

    Per le chiamate SBC, è possibile configurare il dispositivo per utilizzare il protocollo DTLS (Datagram Transport Layer Security) per garantire il traffico basato su UDP (secondo RFC 4347 e 6347) per entità SIP specifiche, utilizzando profili IP. DTLS consente alle applicazioni basate su Datagram di comunicare in un modo progettato per prevenire la deviazione, la manomissione o la falsificazione dei messaggi. Il protocollo DTLS si basa sul protocollo TLS orientato al flusso, fornendo una sicurezza simile. Il dispositivo può quindi interagire in ambienti misti in cui una rete può richiedere DTL e l’altra può richiedere descrizioni di sicurezza del protocollo di descrizione della sessione (SDES) o persino RTP non sicurezza. Il dispositivo supporta la negoziazione DTLS per le chiamate RTP-a-SRTP e SRTP-a-SRTP.

    Il supporto DTLS è importante per le distribuzioni con WebRTC. WebRTC richiede che i canali multimediali siano crittografati tramite DTL per lo scambio di chiavi SRTP. La negoziazione delle chiavi SRTP tramite DTLS viene eseguita durante la stretta di mano DTLS tra client WebRTC e peer. Per ulteriori informazioni su WebRTC, consultare WebRTC.

    Contrariamente alle SDE, la crittografia della chiave DTLS viene eseguita sul canale multimediale (UDP) e non sul canale di segnalazione. Pertanto, DTLS-SRTP è generalmente noto come “scambio chiave protetto sui media”. DTLS è simile a TLS, ma funziona su UDP, mentre TLS è superiori a TCP. Prima della stretta di mano DTLS, i peer scambiano i parametri DTLS (impronta digitale e l’installazione) e i tipi di algoritmo nel corpo SDP dei messaggi SIP scambiati per stabilire la chiamata (richiesta di invito e risposta). I colleghi partecipano a una stretta di mano DTLS durante la quale si scambiano i certificati. Questi certificati vengono utilizzati per derivare una chiave simmetrica, che viene utilizzata per crittografare il flusso di dati (SRTP) tra i peer. Un valore di hash calcolato sul certificato viene trasportato nell’SDP usando l’attributo “A = impronte digitali”. Alla fine della stretta di mano, ogni lato verifica che il certificato ricevuto dall’altro lato si adatti all’impronta digitale dall’SDP. Per indicare il supporto DTLS, l’offerta/risposta SDP del messaggio SIP utilizza l’attributo ‘a = setup’. Il valore dell’attributo “A = Setup: ActPass” viene utilizzato nell’offerta SDP dal dispositivo. Ciò indica che il dispositivo è disposto a essere un client (“Act”) o un server (“Pass”) nella stretta di mano. Il valore dell’attributo “A = Setup: Active” viene utilizzato nella risposta SDP dal dispositivo. Ciò significa che il dispositivo desidera essere il client (“attivo”) nella stretta di mano.

    a = setup: ActPass
    A = Impronta digitale: Sha-1 \ 4a: AD: B9: B1: 3f: 82: 18: 3B: 54: 02: 12: DF: 3e: 5d: 49: 6b: 19: E5: AB: AB

    Dtls cipher suite riutilizza la suite TLS Cipher. La handshake DTLS è eseguita per ogni nuova chiamata configurata per DTLS. In altre parole, a differenza di TLS in cui la connessione rimane “aperta” per le chiamate future, è richiesta una nuova connessione DTLS per ogni nuova chiamata. Si noti che l’intera autenticazione e lo scambio chiave per proteggere il traffico multimediale vengono gestiti nel percorso multimediale tramite DTLS. Il percorso di segnalazione viene utilizzato solo per verificare le impronte digitali del certificato dei pari. I messaggi DTLS sono multiplexi sulle stesse porte utilizzate per i media.

    ➢ Per configurare DTLS:
    1. Nella tabella di contesto TLS (vedere Configurazione dei contesti di certificato TLS), configurare un contesto TLS con la versione DTLS [TLSContexts_Dtlsversion].
    2. Apri la tabella dei gruppi IP (vedere Configurazione di gruppi IP), quindi per il gruppo IP associato all’entità SIP, assegnalo il contesto TLS per DTLS, utilizzando il parametro “Media TLS” [ipGroup_dtlsContext].
    3. Apri la tabella dei profili IP (vedere Configurazione dei profili IP), quindi per il profilo IP associato all’entità SIP, configurare quanto segue:
    ● Configurare il parametro “SBC Media Security” [ipProfile_SBCMediaSecurityBehavior] su protezione o entrambi .
    ● Configurare il parametro “Metodo di sicurezza dei media” [ipprofile_sbcmetecuritymethod] a dtls .
    ● Configurare il parametro “RTCP Mux” [ipprofile_sbcrtcpmux] . È richiesto il multiplexing poiché la sua handshake DTLS viene eseguita per la porta utilizzata per RTP e quindi RTCP e RTP devono essere multiplex sulla stessa porta.
    ● Configurare il parametro del file INI [SBCDTLSMTU] (o comando CLI Configura Impostazioni SBC> SBC-DTLS-MTU) per definire la dimensione dell’unità di trasmissione massima (MTU) per la handshake DTLS.
    4. Configurare l’intervallo minimo che il dispositivo attende tra la trasmissione dei pacchetti DTLS nella stessa handshake DTLS, utilizzando il parametro file INI [dtlstimebetweentransmissions].
    ● Il parametro “Cipher Server” deve essere configurato su “All”.
    ● Il dispositivo non supporta l’inoltro di DTL in modo trasparente tra gli endpoint.
WebRTC ha bisogno di un server? WebRTC usa http?

Related Posts

Notizia

Vinyl suona bene su Sonos

Notizia

Fa Epson 4700 Print Cardstock

Notizia

Le cuffie ad alto volume di volume

banner
banner

PROMO

racavedigger.com
© racavedigger.com 2026