seguridad y cifrado de WebRTC

3

Estoy creando una aplicación WebRTC y realmente me preocupa la seguridad.

He leído este artículo bastante interesante: enlace

Como estoy lejos de ser un experto en seguridad de redes, solo quiero confirmar que lo estoy haciendo bien y sobre las cosas en las que debería preocuparme.

  1. Origen

    • La "sala" de WebRTC está alojada en un sitio web a través de HTTPS (LetsEncrypt).
    • Obligo a las API de JavaScript a que generen certificados de ECDSA siempre que sea posible (¡¿no es exactamente consciente de la función de esos certificados ?!)
  2. Señalización

    • Construí un servidor de señalización websocket accesible a través de WSS.
    • Este servidor de señalización necesita recibir un mensaje especial de "autenticación", que contiene un JsonWebToken RFC7519 válido (que comprueba el origen y el vencimiento), antes de que realmente permita reenviar ofertas, respuestas y candidatos ICE del SDP. Todos los JWT están cifrados con una clave privada de 4096 bits.
    • Una vez autenticado, este JWT ya no es necesario, ya que el servidor WebSocket considerará una conexión como desconexión autenticada hasta ahora.
  3. Redes

    • He configurado un servidor TURN (resiprocate-turn-server) usando TLS también, accesible para los protocolos STUN y TURNS:

stun:stun.my-domain.org:3478

turns:turn.my-domain.org:5349 (que requiere un nombre de usuario y contraseña válidos)

  • ¿Debería restringir el acceso a este servidor STUN a algunos orígenes de dominio?

Como desarrollador web, ¿debo preocuparme por el tipo de ataque MITM (en realidad, cualquier tipo de ataque)?

    
pregunta Flo-Schield-Bobby 04.02.2017 - 15:32
fuente

1 respuesta

2

Esta es realmente una buena pregunta, y mi respuesta es que no estoy 100% seguro ... por lo que le diré lo que sé y lo que sospecho y cómo probarlo.

Primero que nada, si está usando WSS, es bueno que se ponga fin a su servidor. Usar WSS sobre WS es efectivamente lo mismo que usar HTTPS sobre HTTP.

Ahora la parte difícil ... Si tiene clientes A & B se conecta al servidor C con WSS ... y luego usa STUN & GIROSA, sospecharía que A se conectaría a B con la misma conexión WSS que cada uno de ellos estaba usando previamente para la conexión con el servidor C. La palabra clave es SUSPECTO

Como no tengo https habilitado, STUN & El servidor de TURNS está disponible para mi prueba, personalmente no puedo probarlo y le digo que todo está bien. Sin embargo, si pones wirehark en los clientes A & B, deberías poder monitorear el tráfico entre ellos ... y si no llega a través de la línea con texto simple ... entonces sí, el cifrado se mantiene.

    
respondido por el CaffeineAddiction 04.02.2017 - 18:01
fuente

Lea otras preguntas en las etiquetas