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.
-
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 ?!)
-
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.
-
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)?