Cómo proteger tu aplicación que utiliza la Video API de Vonage

Siga estas prácticas recomendadas para mantener la seguridad en su aplicación.

Vonage es consciente de que la seguridad es un aspecto fundamental para cualquier empresa interesada en integrar comunicaciones en tiempo real en su página web, aplicación o servicio. La plataforma OpenTok es una plataforma fiable y segura en la que puedes desarrollar Applications que satisfagan las necesidades de seguridad de tu empresa, tu sector o tus clientes.

Esta página incluye las siguientes secciones:

Preguntas frecuentes sobre seguridad

¿Se cifra el tráfico de voz y vídeo en una sesión de OpenTok sobre WebRTC?

Sí, todo el tráfico multimedia está cifrado, independientemente del dispositivo que utilices (web o móvil) o del tipo de sesión que elijas (P2P o multipartita). Esto significa que estás a salvo cuando utilizas la solución OpenTok, incluso si la utilizas en un punto de acceso público abierto.

Además, en las aplicaciones web, la publicación solo es compatible con páginas HTTPS.

¿Se basa en una solución propia?

No, no creemos en las soluciones propietarias cuando hablamos de seguridad. OpenTok se basa íntegramente en estándares contrastados, elaborados por expertos del sector y utilizados desde hace años en productos comerciales. Los protocolos principales que garantizan la seguridad de WebRTC en OpenTok son el SRTP, para el cifrado del tráfico multimedia, y el DTLS-SRTP, para la negociación de claves, ambos definidos por la IETF.

¿Cuáles son los algoritmos de cifrado y la fuerza de las claves utilizadas?

Los terminales de OpenTok compatibles con WebRTC utilizan el algoritmo de cifrado AES con claves de 128 bits para cifrar el audio y el vídeo, y HMAC-SHA1 para verificar la integridad de los datos.

El cifrado AES-256 está disponible en los clientes compatibles como un funcionalidad adicional.

¿Qué claves se utilizan para el cifrado?

Los puntos finales generan claves aleatorias al inicio de la sesión y además cambian periódicamente durante la conversación para hacerla aún más segura.

¿Requiere alguna interacción con el usuario?

No, todo ocurre en segundo plano, sin que el usuario tenga que intervenir en absoluto.

¿Es necesario realizar algún cambio en mis aplicaciones basadas en OpenTok?

No, la API de OpenTok no cambia. La API de OpenTok no revela estos detalles de bajo nivel a los desarrolladores.

¿Afecta esto al ancho de banda y a la calidad de la videoconferencia?

Sí, pero muy poco. Aumenta la longitud de cada paquete de audio y vídeo en 8 bytes, pero eso supone menos del 1 % de la tasa de bits habitual de una sesión de OpenTok. En cuanto al retraso, el marco de cifrado SRTP se diseñó específicamente para aplicaciones en tiempo real, por lo que el impacto es totalmente imperceptible.

¿Influye en el consumo de la CPU o de la batería?

Sí, pero el coste de codificar y descodificar audio y vídeo es mucho mayor que el de codificar y descodificar.

Buenas prácticas de seguridad

Tanto si eres nuevo en la plataforma OpenTok como si cuentas con años de experiencia, aquí tienes una serie de prácticas recomendadas que te resultarán útiles a la hora de desarrollar con OpenTok y que te ayudarán a crear una aplicación segura.

Servir contenidos mediante URL HTTPS

En las aplicaciones web, la publicación de vídeo sólo se admite en páginas HTTPS.

Datos personales

Mantenga la clave y el secreto de la API de forma privada y segura

La clave y el secreto de la API se utilizan para crear tokens que conceden acceso a las sesiones, recuperar metadatos de archivo y cambiar las credenciales de almacenamiento de archivos, así como otras operaciones administrativas de su cuenta.

Para evitar poner en peligro sus credenciales, siempre debe mantener el secreto de su API en privado. Algunas medidas clave que puede tomar:

  • Nunca guarde el secreto de la API en ningún repositorio público de código fuente.
  • Nunca guardes el secreto de la API en ninguna biblioteca del lado del cliente, ni siquiera en los SDK móviles compilados.
  • Utiliza únicamente direcciones URL HTTPS para realizar llamadas REST a los servidores de OpenTok.

Generar un identificador de sesión único por llamada y token por participante

Debes generar un identificador de sesión para iniciar una llamada. Los tokens que permiten a los participantes unirse a la reunión son únicos para cada identificador de sesión. Los tokens tienen una fecha de caducidad, pero esta puede ser posterior a la duración de la llamada. Por lo tanto, si tienes reuniones consecutivas con el mismo identificador de sesión, es posible que los usuarios que se hayan conectado anteriormente aún puedan conectarse a la nueva reunión.

Para evitarlo:

  • Generar un identificador de sesión único para cada nueva reunión
  • Genera un token único para cada participante de esa reunión.

Ten en cuenta que las siguientes versiones de los SDK del servidor de OpenTok generan tokens firmados con SHA-256 para mayor seguridad:

  • OpenTok Node SDK v2.20.0+
  • OpenTok Java SDK v4.15.0+
  • OpenTok Ruby SDK v4.11.0+
  • SDK de OpenTok para PHP v4.15.0+
  • SDK de OpenTok para Python v3.10.0+
  • OpenTok SDK para .NET v3.15.2+

Véase este tema sobre cómo crear sesiones. Ver este tema sobre cómo generar tokens.

Asegúrese de que el servidor que genera el testigo está detrás de un punto final autenticado.

Es importante situar el servidor que genera el token detrás de un punto final autenticado, ya que cualquier persona con acceso a dicho servidor podría acabar generando nuevos tokens y hacer un uso indebido de la aplicación para generar tráfico.

No utilices información personal en los datos del token ni en el campo «nombre» del editor.

Los datos del token es una cadena que contiene metadatos que describen la conexión en el SDK del servidor, y el nombre del editor se establece al crear un editor en el Client SDK. Ambos campos pueden estar visibles para otros participantes de la sesión y también pueden consultarse a través de la herramienta Inspector y de los registros internos de Vonage.

Esto significa que nunca debe utilizar información sensible o personal sin cifrar en estos campos.

Si necesita asociar la identidad de un usuario a una secuencia, utilice identificadores a nivel de aplicación (como ID de usuario) y resuélvalos dentro de su propia aplicación en lugar de incrustar datos personales en los campos de la Video API.

Modo retransmitido frente a modo enrutado

Cifrado de medios de extremo a extremo

Durante una sesión enrutada, los flujos multimedia se descifran temporalmente mientras se encuentran en los servidores en la nube de la plataforma OpenTok y, a continuación, se vuelven a cifrar inmediatamente antes de enviarse a través de Internet al cliente suscrito, a menos que utilices el cifrado de extremo a extremo función. Este descifrado es necesario para gestionar las sesiones de grupo, el control de calidad inteligente y las funciones que requieren descifrado de medios, como el archivado, las emisiones en directo, el compositor de experiencias, el conector de audio y la interconexión SIP (si se utiliza). Al utilizar sesiones enrutadas, sus flujos de medios nunca se transmiten sin cifrar en la Internet abierta.

Puede utilizar cifrado de extremo a extremo para impedir que OpenTok Media Router tenga acceso a los datos multimedia en una sesión enrutada. Cuando se utiliza el cifrado de extremo a extremo, no se admiten las funciones que requieren la decodificación de datos multimedia (como el archivado, etc.).

Además, si tu aplicación requiere un cifrado de extremo a extremo ininterrumpido de todos los medios, puedes optar por utilizar sesiones retransmitidas. Ten en cuenta que no podrás utilizar funciones que requieran la decodificación de medios (como el archivado, etc.), y que el rendimiento no se gestionará tan bien en redes con bajo ancho de banda o alta pérdida de paquetes, ni en el caso de grupos.

Archivado

Vonage ofrece varias formas de garantizar la seguridad de tus sesiones de OpenTok archivadas.

Diferentes niveles de seguridad de los archivos

Puedes proteger tus archivos de las siguientes maneras:

  • Desactivar el recurso de almacenamiento de archivo — De forma predeterminada, Vonage almacena un archivo de copia de seguridad en los servidores de OpenTok si no ha podido cargar el archivo en el servidor de Amazon S3 o Microsoft Azure que hayas especificado. Para evitar este almacenamiento alternativo, inicia sesión en tu Account de la Video API, selecciona el proyecto y configura la opción para desactivar el almacenamiento de respaldo en el archivo.

Nota: El almacenamiento de reserva solo se puede desactivar si has configurado un almacenamiento de archivo personalizado. Consulta la documentación sobre cómo configurar el almacenamiento de archivo en S3 y Azure.

  • Utilizar el cifrado de OpenTok — Con el archivado cifrado, los datos de vídeo y audio de un archivo de OpenTok se cifran mediante un certificado de clave pública que tú facilitas a Vonage. Esto te permite crear archivos de OpenTok en los que los datos nunca permanecen almacenados sin cifrar. De entre los métodos disponibles para proteger tus archivos de OpenTok, este ofrece el mayor nivel de seguridad. Está disponible como un funcionalidad adicional. Para más información, consulte el Documentación sobre el cifrado de OpenTok.

Gestionar la eliminación de archivos

Un archivo que se haya subido correctamente a tu espacio de almacenamiento se eliminará automáticamente del servidor de archivo de OpenTok en el momento de la subida.

En caso de que no se pueda realizar la subida, se ofrece el almacenamiento de OpenTok como opción alternativa por defecto. Esto significa que el archivo se almacenará durante 72 horas en el servidor de OpenTok.

Recibirás una notificación por correo electrónico cada vez que un archivo no se haya guardado correctamente en tu espacio de almacenamiento. A continuación, puedes utilizar la API REST para descargar el archivo desde su URL.

Una vez finalizada la descarga, puedes optar por eliminar inmediatamente el archivo comprimido para evitar que permanezca en el almacenamiento de OpenTok durante el resto del periodo de respaldo.

Para evitar este almacenamiento de reserva, inicia sesión en tu Account de la Video API, selecciona el proyecto y configura la opción para desactivar el almacenamiento de respaldo en el archivo.

Véase este tema Para obtener más información sobre cómo eliminar un archivo.

Controlar quién puede iniciar el proceso de archivo

Solo se puede archivar una sesión mediante la API REST. Para controlar quién puede iniciar el archivado, puedes determinar mediante programación qué vista de la aplicación incluye la opción de iniciar el archivado. Los usuarios no autorizados tendrían una vista limitada sin la opción de archivar.

Además de autenticar a tus propios usuarios, también debes considerar una estrategia de autorización. Una vez que sepas quién es un usuario (autenticación) y que, de hecho, tiene permiso para iniciar un archivo (autorización), habrás reducido el riesgo de que cualquier usuario no intencionado provoque la grabación de archivos.

Garantizar un conjunto mínimo de privilegios

El conjunto mínimo de permisos necesarios para cargar archivos en nuestro almacén se trata en este tema.

Los socios no deben conceder ningún permiso adicional a las credenciales que almacenan en OpenTok.

Alertas y controles

Limitar el número máximo de usuarios en una sesión

Para tener un mayor control sobre el número de personas que participan en una sesión, tu aplicación debería limitar el número máximo de usuarios por sesión. Esto podría resultarte útil si quieres limitar el uso.

Mostrar el número de suscriptores

También puede configurar un recuento de suscriptores para mostrarlo en su aplicación. Esta es una forma útil de saber cuándo una conexión se está suscribiendo pero no publicando.

Configurar los permisos de moderador para forzar la desconexión

La plataforma OpenTok ofrece la posibilidad de expulsar a un usuario de una sesión. Por ejemplo, en caso de incumplimiento de las condiciones de servicio, puedes permitir que el moderador de la sesión expulse al participante infractor mediante una desconexión forzada o la eliminación forzada de la publicación. Consulta este tema para más información.

Asignar permisos de sólo abonado a quienes no necesiten publicar

En algunos casos, es posible que desees limitar el número de personas que pueden publicar en una sesión. Esto se puede hacer fácilmente sin conceder permisos de publicación a todos los participantes.

Véase este tema para generar fichas con los roles adecuados.

Restricción del tráfico a servidores regionales

Puedes utilizar el Zonas regionales de medios de comunicación para enrutar todos los flujos de medios a servidores de medios dentro de una georregión especificada.

Además de restringir el tráfico de archivos multimedia, puedes utilizar el Proxy de la UE para restringir no relacionado con los medios de comunicación que el tráfico se canalice a través de servidores situados en la Unión Europea.

Capa de seguridad y transporte

Cifrado TLS

La Video API de Vonage ahora es compatible con TLS 1.3 y TLS 1.2 para todas las comunicaciones de la API, lo que brinda mayor seguridad y rendimiento para tus sesiones de video. Esta actualización garantiza la compatibilidad con los estándares de encriptación modernos y protege tus datos en tránsito.

Beneficios clave:

  • Mayor seguridad: Algoritmos criptográficos más robustos y mayor confidencialidad prospectiva con TLS 1.3
  • Mejor rendimiento: Reducción de la latencia de conexión gracias a un proceso de establecimiento de conexión optimizado
  • Negociación automática: Los clientes utilizan automáticamente la versión TLS más alta admitida

Todas las conexiones de punto final de API están protegidas con TLS por defecto. No es necesario realizar cambios en el código, ya que los SDK y los clientes HTTP modernos preferirán automáticamente la versión TLS más reciente (TLS 1.3 o 1.2). Sin embargo, es aconsejable utilizar siempre las últimas versiones del SDK para beneficiarse de las últimas mejoras de seguridad y rendimiento.