¿Está seguro el webRTC contra el hombre en los ataques medios?

8

Estamos implementando un paquete de software de código abierto (copago, una billetera bitcoin multisig), que usa peerJS , que usa webRTC para permitir la comunicación entre pares entre navegadores.

peerJS (y webRTC ) usan un servidor de señalización para ayudar a los pares a establecer el canal p2p. Mi pregunta es: ¿Debemos confiar en ese servidor de señalización? ¿Podría ese servidor comprometer el canal p2p haciendo un ataque de hombre en el medio?

muchas gracias. Nuestro proyecto principal es: enlace

    
pregunta ematiu 28.04.2014 - 04:25
fuente

4 respuestas

3

La respuesta depende de a qué "servidor de señalización" se refiere.

WebRTC es seguro para MITM contra los servidores de retransmisión no confiables , STUN y TURN . Esos servidores solo ayudan a los clientes a configurar una conexión p2p en absoluto.

Sin embargo, el canal a través del cual SDP se hace necesario para ser de confianza.

A diferencia del servidor de relés, SDP no tiene peso, y consiste solo en algunas cadenas enviadas por los clientes para la inicialización de una conexión. Se puede acceder a ellos a javascript y se pueden enviar de cualquier forma (HTTP, websockets, correo electrónico) entre los clientes.

Por lo tanto, debe utilizar un canal de confianza para realizar el SDP.

El intercambio SDP lleva un hash denominado a=fingerprint: , que autentica la conexión p2p DTLS con carga útil al otro cliente. RFD 5763 contiene una buena descripción de esa conexión entre DTLS y SDP.

Puede reducir el contenido que necesita ser confiado a este hash, pero a menos que no tenga otro propósito, es mejor que haga todo el SDP a través de un canal confiable, ya que tiene menos complejidad.

    
respondido por el user10008 31.07.2014 - 00:48
fuente
1

además de su propio awnser, cualquier conexión (http, p2p ..) nunca es completamente segura, el truco es tener tal seguridad, es demasiado difícil de encontrar, ya que los certificados son autofirmados, directamente significa que no son seguros, se centran en una mejor criptografía (para el entorno en sí mismo) y un buen certificado SSL es mejor, tal vez quiera echar un vistazo a esto: -information-center / dangers-of-self-signed-certificate.html "> enlace

Después de todo, la inseguridad REAL en cualquier aplicación web es el usuario :)

    
respondido por el Lighty 13.05.2014 - 12:32
fuente
0

La respuesta es No. los clientes webRTC generan certificados autofirmados. Se ha propuesto utilizar un proveedor de ID externo, pero aún no se ha implementado.

enlace

  

Identidad y autenticación El protocolo de enlace DTLS se realizó entre dos   Los clientes de WebRTC se basan en certificados autofirmados. Como resultado, la   Los certificados en sí mismos no se pueden utilizar para autenticar al par, como   no hay una cadena de confianza explícita (ver “Cadena de confianza y   Autoridades de certificación ") para verificar. Si es necesario, el WebRTC   La aplicación debe realizar su propia autenticación e identidad.   Verificación de los pares participantes:

     

Una aplicación web puede usar su sistema de verificación de identidad existente   (por ejemplo, requiere inicio de sesión para autenticar al usuario) antes de configurar el   Sesión webRTC. Alternativamente, cada par participante puede especificar su   "proveedor de identidad" al generar la oferta / respuesta SDP. Entonces cuando   se recibe el mensaje SDP, el par opositor puede contactar al   Proveedor de identidad especificado para verificar el certificado recibido. los   El último mecanismo de "proveedor de identidad" todavía está bajo discusión activa.   y desarrollo en el grupo de trabajo W3C WebRTC. Consultar el   Especificación y la lista de correo para la última implementación.   estado.

También relevante: enlace

    
respondido por el ematiu 30.04.2014 - 13:04
fuente
0

enlace

Si el usuario permite Adobe Flash, es posible: enlace

Creo que para Chrome la respuesta es que ni siquiera puedes hacerlo desde JS incluso dentro de una extensión: enlace

En Firefox, creo que solo es posible dentro de una extensión XUL. Ver enlace en este enlace por ejemplo Consulte enlace

Probablemente irrelevante: hay una biblioteca de herramientas criptográficas de JavaScript: enlace También probablemente irrelevante: < a href="https://tools.ietf.org/html/rfc6797"> enlace o enlace

    
respondido por el robocat 26.05.2014 - 07:50
fuente

Lea otras preguntas en las etiquetas