Sicurezza e crittografia WebRTC

3

Sto costruendo un'applicazione WebRTC e mi preoccupo molto della sicurezza.

Ho letto questo articolo abbastanza interessante: link

Dato che sono ben lungi dall'essere un esperto in sicurezza di rete, voglio solo confermare che lo sto facendo bene e di quali cose dovrei potenzialmente preoccuparmi.

  1. Origine

    • La "room" WebRTC è ospitata su un sito Web su HTTPS (LetsEncrypt).
    • Costringo le API JavaScript a generare certificati ECDSA ogni volta che è possibile (non sono esattamente al corrente del ruolo di tali certificati comunque?!)
  2. Segnalazione

    • Ho creato un server di segnalazione websocket accessibile tramite WSS.
    • Questo server di segnalazione deve ricevere un messaggio speciale di "autenticazione", contenente un JSONWebToken RFC7519 valido (controllando l'origine e la scadenza), prima di consentire effettivamente l'inoltro di offerte SDP, risposte e candidati ICE. Tutti i JWT sono crittografati con una chiave privata di 4096 bit.
    • Una volta autenticato, questo JWT non è più necessario, poiché il server WebSocket considererà una connessione come autenticata fino alla disconnessione?!
  3. Rete

    • Ho configurato un server TURN (resiprocate-turn-server) utilizzando anche TLS, accessibile per i protocolli STUN e TURNS:

stun:stun.my-domain.org:3478

turns:turn.my-domain.org:5349 (richiede nome utente e password validi)

  • Devo limitare l'accesso a questo server STUN ad alcune origini domaine?

Come sviluppatore web, devo preoccuparmi del tipo di attacco MITM (in realtà qualsiasi tipo di attacco?)

    
posta Flo-Schield-Bobby 04.02.2017 - 15:32
fonte

1 risposta

2

Questa è davvero una bella domanda, e la mia risposta è che non sono sicuro al 100% ... quindi ti dirò cosa so e cosa sospetto e come testarlo.

Prima di tutto, se si utilizza WSS il server è a posto. L'utilizzo di WSS su WS equivale a utilizzare HTTPS su HTTP.

Ora la parte difficile ... Se hai clienti A & B entrambi connessi al server C con WSS ... e quindi si usa STUN & TURNI, sospetto che A si connetta a B con la stessa connessione WSS che ognuno di loro utilizzava in precedenza per la connessione con il server C. Parola chiave che è SUSPECT

Dato che non ho un STUN & https abilitato TURNS server prontamente disponibile per il test, personalmente non posso testarlo e dire tutto va bene. Tuttavia, se metti wireshark sui client A & B dovresti essere in grado di monitorare il traffico tra di loro ... e se non attraversa la linea usando testo in chiaro ... allora sì, la crittografia è valida.

    
risposta data 04.02.2017 - 18:01
fonte

Leggi altre domande sui tag