Cómo tratar realmente la seguridad entre pares en WebRTC

6

Recientemente he estado implementando WebRTC en mi proyecto y me gustaría agregar seguridad y privacidad a la pareja. Entonces decidí buscar y encontré algo

  

si es realmente necesario imponer seguridad, debe hacerse en el   nivel de aplicación.

No recuerdo si leí esto en la API o en los sitios de seguridad.

De acuerdo, cifro el tráfico (respuesta, oferta, candidato ..) con AES y RSA .

Noté que el trabajo de mi sistema redujo en gran medida la eficiencia, disminuyó el tiempo de conexión, lo cual es bastante obvio porque hay muchos procesos a la vez.

Mis preguntas teniendo en cuenta todas estas son:

  • ¿Lo estoy haciendo bien?

  • ¿Es realmente necesario cifrar todo?, puede que no sea la respuesta y la oferta?

  • ¿Hay algo más que deba saber?

pregunta user5166099 28.07.2015 - 20:07
fuente

2 respuestas

1

Técnicamente, el cifrado siempre tiene un impacto en el rendimiento, en las máquinas de hoy es insignificante. Para un mejor resultado, puedes realizar lo siguiente:

  • Obtenga la clave pública RSA del lado del servidor.
  • Cree una clave AES simétrica, cifrada con la clave pública RSA y envíela al servidor; el servidor lo descifra y usted tiene un 'secreto compartido previamente'.
  • Encripta tus datos con la clave simétrica y descifra en el servidor.

No para reinventar la rueda, pero si tiene navegadores como Opera, Chrome o FF, puede usar Capa de transporte de datagramas Seguridad o ZRTP .

En esencia, WebRTC crea un nuevo canal de comunicación, y el cifrado depende de usted. Lo que cifras (oferta, respuesta, ...) se basa básicamente en lo sensible que es la información, pero una vez que se configura un canal (es decir, se comparte la clave AES), también puedes cifrar todo; De nuevo, tendrá un impacto mínimo en el rendimiento de los sistemas modernos.

    
respondido por el ndrix 11.08.2015 - 09:33
fuente
1

El cifrado en webRTC es inminente, por lo que no tiene que implementarlo usted mismo. Consulte WebRTC P2P SSL - ¿Dónde se generan las claves? para obtener más información sobre cómo se intercambian las claves.

Los pares intercambiarán sus claves públicas durante el proceso de señalización. Luego cifrarán su comunicación a través del canal P2P. Esto es obligatorio, por lo que no tiene otra opción sobre él.

Lo que te queda es el servidor de señalización.

Entonces, primero, si el servidor de señalización no es tuyo y no confías en él, entonces puedes comunicarte con Man-In-the-Middle y no tienes ninguna garantía de seguridad.

Luego, si es un servidor en el que confía (por ejemplo, si está ejecutando su propio servidor de señalización), debe asegurarse de que la comunicación entre los interlocutores y el servidor sea segura. No hay obligación sobre cómo realizar la señalización. Se puede realizar a través de HTTP o Websocket (WS), pero independientemente de lo que use, debe usar su respectiva versión cifrada HTTPS y Secure Web Socket (WSS).

En resumen, no te encriptes, WebRTC está encriptado de forma predeterminada, solo asegúrate de usar SSL entre los pares y el servidor de señalización (y asegúrate de confiar en el servidor de señalización).

    
respondido por el Jecimi 29.12.2015 - 04:39
fuente

Lea otras preguntas en las etiquetas