webRTC è sicuro contro gli attacchi degli uomini nel mezzo?

8

Stiamo implementando un pacchetto software open source (copay, un portafoglio bitcoin multisig), che utilizza peerJS , che utilizza webRTC per consentire la comunicazione peer-to-peer tra browser.

peerJS (e webRTC ) utilizzano un server di segnalazione per aiutare i peer a stabilire il canale p2p. La mia domanda è: dobbiamo fidarci di quel server di segnalazione? Potrebbe quel server compromettere il canale p2p facendo un attacco man-in-the-middle?

Grazie mille. La nostra home del progetto è: link

    
posta ematiu 28.04.2014 - 04:25
fonte

4 risposte

3

La risposta dipende dal "server di segnalazione" a cui ci si riferisce.

WebRTC è MITM-sicuro contro server relayers non fidati STUN e TURN . Questi server aiutano solo i client a configurare una connessione p2p.

Tuttavia, il canale attraverso il quale SDP ha bisogno di cui fidarsi.

A differenza del server di inoltro, SDP non ha alcun peso e consiste solo di alcune stringhe inviate dai client per l'inizializzazione di una connessione. Quelli sono accessibili a javascript e possono essere inviati in qualsiasi modo (HTTP, websocket, email) tra i client.

Quindi dovresti usare un canale fidato per fare l'SDP.

Lo scambio SDP trasporta un hash a=fingerprint: denominato, che autentica la connessione DTLS p2p con carico utile con l'altro client. RFD 5763 contiene una buona descrizione di quella connessione tra DTLS e SDP.

Potresti ridurre il contenuto che deve essere considerato affidabile per questo hash, ma a meno che non serva per altri scopi, è meglio fare l'intero SDP su un canale fidato, poiché hai meno complessità.

    
risposta data 31.07.2014 - 00:48
fonte
1

oltre alla tua proprietaria, qualsiasi connessione (http, p2p ..) non è mai completamente sicura, il trucco è avere una tale sicurezza, è troppo difficile da ottenere, poiché i certificati sono autofirmati, non direttamente significa che sono meno sicuri, concentrandosi su una crittografia migliore (per l'ambiente stesso) e un buon certificato SSL è migliore, forse si vuole dare un'occhiata a questo: link

dopo tutto, la vera insicurezza in qualsiasi applicazione web, è l'utente:)

    
risposta data 13.05.2014 - 12:32
fonte
0

La risposta è No. I client webRTC generano certificati autofirmati. È stato proposto di utilizzare un provider di ID esterno, ma non ancora implementato.

link

Identity and Authentication The DTLS handshake performed between two WebRTC clients relies on self-signed certificates. As a result, the certificates themselves cannot be used to authenticate the peer, as there is no explicit chain of trust (see “Chain of Trust and Certificate Authorities”) to verify. If required, the WebRTC application must perform its own authentication and identity verification of the participating peers:

A web application can use its existing identity verification system (e.g., require login to authenticate the user) prior to setting up the WebRTC session. Alternatively, each participating peer can specify its "identity provider" when generating the SDP offer/answer. Then, when the SDP message is received, the opposing peer can contact the specified identity provider to verify the received certificate. The latter "identity provider" mechanism is still under active discussion and development in the W3C WebRTC working group. Consult the specification and the mailing list for the latest implementation status.

Anche rilevante: link

    
risposta data 30.04.2014 - 13:04
fonte
0

link

Se l'utente consente Adobe Flash, allora è possibile: link

Penso che per Chrome la risposta sia che non puoi nemmeno farlo da JS anche all'interno di un'estensione: link

In Firefox penso che sia possibile solo all'interno di un'estensione XUL vedere il link in questo link es vedi link

Probabilmente irrilevante: esiste una libreria di strumenti crittografici JavaScript: link Probabilmente anche irrilevante: < a href="https://tools.ietf.org/html/rfc6797"> link o link

    
risposta data 26.05.2014 - 07:50
fonte

Leggi altre domande sui tag