Sergio Soriano, Team Leader de Panoptico
Sergio Soriano Team Leader Panoptico

WebRTC: velocidad, seguridad y disponibilidad de transmisión de vídeo ‘on cloud’

Comunicaciones en la ciudad.

Gracias al avance tecnológico, la digitalización se ha convertido en parte de la vida diaria, un cambio al que el sector de la seguridad no es ajeno. Los nuevos protocolos de transmisión de datos e información y el aumento exponencial de las capacidades de cálculo y gestión de los mismos en servidores, hacen que hoy en día se cubran de manera segura y eficiente necesidades que anteriormente solo se podían abordar con equipos hardware y software en local, dificultando la actualización continua de cada instalación y la integración entre ellas. En este artículo hablamos de un protocolo de transmisión de información desde dispositivos que transmiten multimedia a servidores en la nube. Entre sus bondades está la rapidez, la seguridad y la disponibilidad; factores que allanan el camino hacia la transformación digital en el sector de la seguridad y, en concreto, en la videovigilancia.

El protocolo de comunicación WebRTC es un proyecto de código abierto que tiene como objetivo la comunicación en tiempo real de video/audio Peer-to-Peer entre dos agentes. En términos de rendimiento, es el protocolo de comunicación que ofrece menos latencia, situándose en términos de medio segundo en condiciones óptimas frente a los tres segundos que ofrece su siguiente competidor, el LL-HSL. Este factor hace que sea ideal para la implementación de soluciones en tiempo real tales como chats, conferencias en vivo o cámaras de seguridad.

Por otro lado, este tipo de aplicaciones, al estar tratando con comunicación de video y audio en tiempo real, deben atender un tema muy importante: la seguridad.

El protocolo WebRTC, además de ser el más rápido, también es el más seguro entre sus otros competidores.

Compatible y actualizable

El protocolo fue creado para poder realizar este tipo de comunicaciones directamente en los navegadores que lo promueven (Google, Firefox). Esto quiere decir que el protocolo viene preinstalado dentro del navegador, no hace falta ningún tipo de plugin, librería externa o aplicación de terceros. Esto, además de las ventajas en el desarrollo de aplicaciones, también deja de lado de los propios navegadores la actualización de sus librerías internas; son estos los que actualizan cualquier fallo de seguridad que pueda existir. Por este motivo, no tendremos que preocuparnos de la obsolescencia ni de los agujeros de seguridad, ya que serán corregidos por los propios navegadores. Nuestra única tarea en este sentido es mantener los navegadores actualizados en su última versión. Además, el no tener que realizar ninguna instalación local reduce la posibilidad de que se introduzca algún virus en esas instalaciones. El protocolo cuenta con el apoyo de Google, Firefox, Microsoft, Apple, Opera y todas las compañías de navegadores. Además, dispone de un grupo de trabajo en la w3.org para la estandarización e implementación de su API. Podemos visitarlo, ver el estado y toda la documentación de su estándar en: https://www.w3.org/groups/wg/webrtc

Tecnología

La seguridad del protocolo se apoya en muchas tecnologías con las que se construye toda su infraestructura. Más que un protocolo de comunicaciones es un «super» protocolo que implementa muchas otras tecnologías para llevar a cabo todas sus funcionalidades. En el gráfico de la otra página podemos ver todas las que entran en funcionamiento.

Podemos dividir el proceso en tres partes diferenciadas. La primera es la parte en la que se obtiene la fuente de los datos desde el navegador (cámara web, cámara IP, etc. el MediaStream). La segunda parte es la conexión PeerConnection, en la que se intercambia entre los pares los flujos obtenidos en la primera parte. Por último, el DataChannel en la que se intercambia otros datos de la aplicación necesarios.

En el primer proceso, podemos tener acceso al micrófono o la cámara en nuestro navegador y es el propio usuario el encargado de permitir o no su utilización.

Es en el segundo proceso, el de comunicación entre pares (PeerConnection), cuando los datos «salen» de nuestro ordenador y viajan por la red. Para la negociación se utiliza el protocolo ICE (Interactive Connectivity Establishment), que suele necesitar, debido a las restricciones de red, los protocolos STUN y TURN (requiriendo un servidor para ello) para que se puedan establecer las conexiones requeridas entre los pares y éstos puedan “verse” en la red y establecer una conexión directa. Las sesiones se realizan a través de SDP, que describe la forma de establecer las sesiones entre los pares y define el proceso de offer/answer entre ellos. Una vez que el proceso de signaling se establece y completa, el transporte de los datos entre los pares comienza y se inicia una comunicación por protocolo UDP. Ahora bien, todo este proceso de comunicación y transferencia de información puede ser interceptado por un malware, siendo de vital importancia que toda la información esté encriptada. Además, en aplicaciones en las que uno de los clientes sea, por ejemplo, una cámara de seguridad, los datos que se transmiten son especialmente sensibles y deben ser protegidos.

Panoptico
Tecnologías que permiten llevar a cabo todas las funcionalidades del protocolo WebRTC. / Fuente: (Grigorik, 2013).

Protocolos seguros

El estándar WebRTC utiliza y obliga para todos estos procesos protocolos seguros en su implementación destacando los siguientes:

  • HTTPS: La conexión al servidor que se encarga de la negociación se debe hacer a través de HTTPS; no es posible establecer conexiones no seguras dentro del protocolo.
  • DTSL (Datagram Transport Layer Security): Este protocolo se utiliza para establecer las sesiones, trabaja basado en TLS, pero adaptado al transporte por UDL proporcionando una seguridad equivalente. Para el proceso de offer/answer de la comunicación, se utilizan certificados autofirmados para proteger el contenido de la negociación, de manera que la información sensible queda a salvo.
  • SRTP (Secure Real-time Transport Protocol): WebRTC utiliza una versión segura del protocolo RTP, el SRTP. Se puede considerar como una versión ligera del protocolo DTSL y se utiliza para el transporte de los datos en sí, en la que la carga (payload) del paquete está siempre encriptada.

Conclusión

En conclusión, bajo nuestra propia experiencia en Panoptico, el protocolo WebRTC es uno de los más seguros que se pueden utilizar para soluciones de streaming y conferencias, además de ser el más rápido de su generación. Es seguro porque depende de la seguridad de los propios navegadores. Es seguro porque obliga a que todas las comunicaciones estén encriptadas y sean seguras, y emplea protocolos de comunicación comunes, abiertos y probados en infinitos escenarios. Es seguro porque tiene una fuerte comunidad detrás que vela por la actualización y mejora destacando que, al ser un proyecto abrigado por la W3 y ser de código abierto, es transparente en su desarrollo y está sujeto al escrutinio de la comunidad de desarrolladores. No deja una implementación ofuscada por código privativo en la que no sabemos qué es lo que nos está haciendo en las sombras el software.