Come trattare veramente la sicurezza tra colleghi in WebRTC

6

Recentemente ho implementato WebRTC nel mio progetto e vorrei aggiungere sicurezza e privacy alla coppia. Ho quindi deciso di cercare e trovare qualcosa

if it is really necessary to impose security, it should be done at the application level.

Non ricordo se leggo questo nell'API o nei siti di sicurezza ..

Bene, crittografo il traffico (risposta, offerta, candidato ..) con AES e RSA .

Ho notato che il lavoro del mio sistema ha ridotto notevolmente l'efficienza, ha rallentato il tempo di connessione, che è abbastanza ovvio perché così tanti processi contemporaneamente

Le mie domande che tengono conto di tutti questi sono:

  • Sto facendo bene?

  • È davvero necessario crittografare tutto?, potrebbe non essere solo la risposta e l'offerta?

  • C'è qualcos'altro che dovrei sapere?

posta user5166099 28.07.2015 - 20:07
fonte

2 risposte

1

Tecnicamente, la crittografia ha sempre un impatto sulle prestazioni, nelle macchine di oggi è trascurabile. Per ottenere i migliori risultati, è possibile eseguire quanto segue:

  • Ottieni la chiave pubblica RSA lato server.
  • Creare una chiave AES simmetrica, crittografarla con la chiave pubblica RSA e inviarla al server; il server la decrittografa e tu hai un 'pre condiviso segreto' allora.
  • Cripta i tuoi dati con la chiave simmetrica e decrittala sul server.

Non reinventare la ruota, ma se hai browser come Opera, Chrome o FF, puoi utilizzare Livello di trasporto dei datagrammi Sicurezza o ZRTP .

In sostanza, WebRTC crea un nuovo canale di comunicazione e la crittografia dipende da te. Ciò che crittografate (offerta, risposta, ...) si basa fondamentalmente su quanto siano sensibili le informazioni, ma una volta che un canale è configurato (vale a dire: la chiave AES è condivisa), potete anche cifrare tutto; ancora: avrai un impatto minimo sulle prestazioni sui sistemi moderni.

    
risposta data 11.08.2015 - 09:33
fonte
1

La crittografia in webRTC è pazzesca, quindi non devi implementarla tu stesso. Vedi WebRTC P2P SSL - Dove vengono generate le chiavi? per ulteriori informazioni su come vengono scambiati i tasti.

I peer scambieranno le loro chiavi pubbliche durante il processo di segnalazione. Quindi crittografano le loro comunicazioni sul canale P2P. Questo è obbligatorio quindi non hai scelta su di esso.

Ciò che ti rimane è il server di segnalazione.

Quindi, se il server di segnalazione non è il tuo e non ti fidi di esso, può Man-In-the-Middle comunicare e non hai alcuna garanzia di sicurezza.

Quindi se si tratta di un server di cui ti fidi (ad esempio stai eseguendo il tuo server di segnalazione), devi assicurarti che la comunicazione tra i peer e il server sia protetta. Non vi è alcun obbligo su come eseguire la segnalazione. Può essere fatto su HTTP o Websocket (WS), ma qualunque cosa tu usi, dovresti usare la rispettiva versione crittografata HTTPS e Secure Web Socket (WSS).

In sintesi non crittografati, WebRTC è crittografato per impostazione predefinita, assicurati di utilizzare SSL tra i peer e il server di segnalazione (e assicurati di fidarti del server di segnalazione stesso).

    
risposta data 29.12.2015 - 04:39
fonte

Leggi altre domande sui tag