Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

132
Vistas
Cambiar cifrado en WebRTC

Estoy haciendo una investigación y un proyecto piloto en WebRTC (basado en navegador/JavaScript) y ahora estoy investigando la implementación de seguridad del mismo.

Entiendo (corríjame de lo contrario) que el DTLS-SRTC implementa un mecanismo de encriptación y solo puedo encontrar referencias a TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.

También pensé que los servidores STUN/TURN intermedios no participan en el mecanismo de cifrado, por lo que la carga útil simplemente pasará intacta a través de un servidor TURN.

Esto me hace preguntar si es posible configurar y elegir entre una lista de cifrados disponibles y longitud de clave para WebRTC en una solución de navegador/JavaScript... o si TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 es el único.

Si se puede establecer la longitud de clave/cifrado, ¿puede darnos algún consejo sobre cómo hacerlo en JavaScript o señalar alguna documentación específica para lograrlo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Primero quiero responder a sus preguntas directas, las notas sobre cosas que no se preguntaron explícitamente.

Tiene razón en que TURN no proporciona seguridad a la sesión de WebRTC. Cuando se utiliza un servidor TURN, los datos ya están cifrados cuando pasan por el servidor TURN. El servidor TURN no puede modificar ni inspeccionar los datos que fluyen a través de él.

No puede controlar CipherSuites a través de Javascript. No existen API para eso hoy.

Los navegadores ofrecen múltiples DTLS y SRTP CipherSuites. Aquí está la lista que usa FireFox 98.

 Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Cipher Suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9) Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)

y estos son los SRTP CipherSuites

 SRTP Protection Profile: SRTP_AEAD_AES_128_GCM (0x0007) SRTP Protection Profile: SRTP_AEAD_AES_256_GCM (0x0008) SRTP Protection Profile: SRTP_AES128_CM_HMAC_SHA1_80 (0x0001) SRTP Protection Profile: SRTP_AES128_CM_HMAC_SHA1_32 (0x0002)

WebRTC utiliza dos CipherSuites. Uno es para DTLS y otro para SRTP. DTLS es para mensajes de DataChannel y SRTP es para medios.

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 es un CipherSuite TLS (no un CipherSuite SRTP).

La única forma en que puede tener algún control sobre CipherSuite es ejecutando una implementación de WebRTC que no está en el navegador. Un servidor/cliente WebRTC de su elección podría proporcionar API para cambiarlos.

WebRTC para Curious#Secure también podría ser útil. Toca los puntos en esta respuesta un poco más profundo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda