Plug and Play universal - Universal Plug and Play

Universal Plug and Play ( UPnP ) es un conjunto de protocolos de red que permite que los dispositivos en red, como computadoras personales, impresoras, pasarelas de Internet , puntos de acceso Wi-Fi y dispositivos móviles, descubran sin problemas la presencia de los demás en la red y establezcan servicios de red funcionales. . UPnP está diseñado principalmente para redes residenciales sin dispositivos de clase empresarial.

Los protocolos UPnP fueron promovidos por el Foro UPnP, una iniciativa de la industria informática para permitir una conectividad simple y robusta a dispositivos independientes y computadoras personales de muchos proveedores diferentes. El Foro estuvo integrado por más de 800 proveedores involucrados en todo, desde electrónica de consumo hasta computación en red. Desde 2016, todos los esfuerzos de UPnP han sido gestionados por Open Connectivity Foundation (OCF).

UPnP asume que la red ejecuta el Protocolo de Internet (IP) y luego aprovecha HTTP , además de IP, para proporcionar la descripción del dispositivo / servicio, las acciones, la transferencia de datos y la notificación de eventos . Las solicitudes de búsqueda de dispositivos y los anuncios son compatibles con la ejecución de HTTP sobre UDP ( puerto 1900) mediante multidifusión (conocido como HTTPMU). Las respuestas a las solicitudes de búsqueda también se envían a través de UDP, pero en su lugar se envían mediante unidifusión (conocido como HTTPU).

Conceptualmente, UPnP extiende plug and play, una tecnología para conectar dispositivos dinámicamente directamente a una computadora, a redes de configuración cero para redes inalámbricas residenciales y SOHO . Los dispositivos UPnP son plug and play en el sentido de que, cuando se conectan a una red, establecen automáticamente configuraciones de trabajo con otros dispositivos.

Por lo general, se considera que UPnP no es adecuado para su implementación en entornos comerciales por razones de economía, complejidad y coherencia: la base de multidifusión lo hace hablador, consumiendo demasiados recursos de red en redes con una gran población de dispositivos; los controles de acceso simplificados no se asignan bien a entornos complejos; y no proporciona una sintaxis de configuración uniforme como los entornos CLI de Cisco IOS o JUNOS.

Visión general

La arquitectura UPnP permite la conexión en red de dispositivo a dispositivo de productos electrónicos de consumo , dispositivos móviles, computadoras personales y electrodomésticos conectados en red . Es un protocolo de arquitectura abierta y distribuida basado en estándares establecidos como Internet Protocol Suite (TCP / IP), HTTP , XML y SOAP . Los puntos de control UPnP (CP) son dispositivos que utilizan protocolos UPnP para controlar dispositivos controlados por UPnP (CD).

La arquitectura UPnP admite redes de configuración cero. Un dispositivo compatible con UPnP de cualquier proveedor puede unirse dinámicamente a una red, obtener una dirección IP, anunciar su nombre, anunciar o transmitir sus capacidades a pedido y conocer la presencia y capacidades de otros dispositivos. Los servidores del Protocolo de configuración dinámica de host (DHCP) y del Sistema de nombres de dominio (DNS) son opcionales y solo se utilizan si están disponibles en la red. Los dispositivos pueden desconectarse de la red automáticamente sin dejar información de estado .

UPnP se publicó como una norma internacional de 73 partes , ISO / IEC 29341, en diciembre de 2008.

Otras características de UPnP incluyen:

Independencia de medios y dispositivos
La tecnología UPnP puede ejecutarse en muchos medios que admiten IP, incluidos Ethernet , FireWire , IR ( IrDA ), cableado doméstico ( G.hn ) y RF ( Bluetooth , Wi-Fi ). No se necesita soporte de controlador de dispositivo especial ; En su lugar, se utilizan protocolos de red comunes.
Control de la interfaz de usuario (UI)
Opcionalmente , la arquitectura UPnP permite que los dispositivos presenten una interfaz de usuario a través de un navegador web (consulte la Presentación a continuación).
Independencia del sistema operativo y del lenguaje de programación
Se puede utilizar cualquier sistema operativo y cualquier lenguaje de programación para crear productos UPnP. Las pilas de UPnP están disponibles para la mayoría de las plataformas y sistemas operativos en formatos de código abierto y cerrado.
Extensibilidad
Cada producto UPnP puede tener servicios específicos del dispositivo superpuestos a la arquitectura básica. Además de combinar los servicios definidos por UPnP Forum de varias formas, los proveedores pueden definir sus propios tipos de dispositivos y servicios, y pueden ampliar los dispositivos y servicios estándar con acciones definidas por el proveedor, variables de estado, elementos de estructura de datos y valores variables.

Protocolo

UPnP utiliza tecnologías comunes de Internet . Asume que la red debe ejecutar el Protocolo de Internet (IP) y luego aprovecha HTTP , SOAP y XML en la parte superior de IP, para proporcionar descripción del dispositivo / servicio, acciones, transferencia de datos y eventos. Las solicitudes de búsqueda de dispositivos y los anuncios son compatibles con la ejecución de HTTP sobre UDP mediante multidifusión (conocido como HTTPMU). Las respuestas a las solicitudes de búsqueda también se envían a través de UDP , pero en su lugar se envían mediante unidifusión (conocido como HTTPU). UPnP usa UDP debido a su menor sobrecarga al no requerir la confirmación de los datos recibidos y la retransmisión de paquetes corruptos. HTTPU y HTTPMU se enviaron inicialmente como un borrador de Internet, pero expiró en 2001; Desde entonces, estas especificaciones se han integrado en las especificaciones UPnP reales.

UPnP usa el puerto UDP 1900 y todos los puertos TCP usados se derivan de los mensajes SSDP vivos y de respuesta.

Direccionamiento

La base de la red UPnP es el direccionamiento IP. Cada dispositivo debe implementar un cliente DHCP y buscar un servidor DHCP cuando el dispositivo se conecta por primera vez a la red. Si no hay ningún servidor DHCP disponible, el dispositivo debe asignarse una dirección. El proceso por el cual un dispositivo UPnP se asigna a sí mismo una dirección se conoce dentro de la arquitectura de dispositivos UPnP como AutoIP . En la versión 1.0 de la arquitectura de dispositivos UPnP, AutoIP se define dentro de la propia especificación; en la versión 1.1 de la arquitectura del dispositivo UPnP, AutoIP hace referencia a IETF RFC 3927. Si durante la transacción DHCP, el dispositivo obtiene un nombre de dominio, por ejemplo, a través de un servidor DNS o mediante el reenvío de DNS , el dispositivo debe usar ese nombre en operaciones de red posteriores; de lo contrario, el dispositivo debería utilizar su dirección IP.

Descubrimiento

Una vez que un dispositivo ha establecido una dirección IP, el siguiente paso en la red UPnP es el descubrimiento. El protocolo de descubrimiento UPnP se conoce como Protocolo simple de descubrimiento de servicios (SSDP). Cuando se agrega un dispositivo a la red, SSDP permite que ese dispositivo anuncie sus servicios en puntos de control de la red. Esto se logra enviando mensajes SSDP activos. Cuando se agrega un punto de control a la red, SSDP permite que ese punto de control busque activamente dispositivos de interés en la red o escuche pasivamente los mensajes SSDP activos de los dispositivos. El intercambio fundamental es un mensaje de descubrimiento que contiene algunos detalles esenciales sobre el dispositivo o uno de sus servicios, por ejemplo, su tipo, identificador y un puntero (ubicación de red) a información más detallada.

Descripción

Una vez que un punto de control ha descubierto un dispositivo, el punto de control aún sabe muy poco sobre el dispositivo. Para que el punto de control aprenda más sobre el dispositivo y sus capacidades, o para interactuar con el dispositivo, el punto de control debe recuperar la descripción del dispositivo de la ubicación ( URL ) proporcionada por el dispositivo en el mensaje de descubrimiento. La descripción del dispositivo UPnP se expresa en XML e incluye información del fabricante específica del proveedor, como el nombre y número del modelo, el número de serie , el nombre del fabricante, las URL (de presentación) de los sitios web específicos del proveedor, etc. servicios. Para cada servicio, el documento de descripción del dispositivo enumera las URL para el control, los eventos y la descripción del servicio. Cada descripción de servicio incluye una lista de los comandos o acciones a las que responde el servicio y parámetros o argumentos para cada acción; la descripción de un servicio también incluye una lista de variables ; estas variables modelan el estado del servicio en tiempo de ejecución y se describen en términos de su tipo de datos, rango y características del evento.

Control

Una vez recuperada una descripción del dispositivo, el punto de control puede enviar acciones al servicio de un dispositivo. Para hacer esto, un punto de control envía un mensaje de control adecuado a la URL de control para el servicio (proporcionado en la descripción del dispositivo). Los mensajes de control también se expresan en XML utilizando el Protocolo simple de acceso a objetos (SOAP). Al igual que las llamadas a funciones , el servicio devuelve cualquier valor específico de la acción en respuesta al mensaje de control. Los efectos de la acción, si los hay, se modelan mediante cambios en las variables que describen el estado de tiempo de ejecución del servicio.

Notificación de eventos

Otra capacidad de la red UPnP es la notificación de eventos o eventos . El protocolo de notificación de eventos definido en la arquitectura de dispositivos UPnP se conoce como Arquitectura de notificación de eventos general (GENA). Una descripción UPnP para un servicio incluye una lista de acciones a las que responde el servicio y una lista de variables que modelan el estado del servicio en tiempo de ejecución. El servicio publica actualizaciones cuando cambian estas variables, y un punto de control puede suscribirse para recibir esta información. El servicio publica actualizaciones enviando mensajes de eventos. Los mensajes de eventos contienen los nombres de una o más variables de estado y el valor actual de esas variables. Estos mensajes también se expresan en XML. Se envía un mensaje de evento inicial especial cuando un punto de control se suscribe por primera vez; este mensaje de evento contiene los nombres y valores de todas las evented las variables y permite al abonado para inicializar su modelo del estado del servicio. Para admitir escenarios con múltiples puntos de control, los eventos están diseñados para mantener todos los puntos de control igualmente informados sobre los efectos de cualquier acción. Por lo tanto, todos los suscriptores reciben todos los mensajes de eventos, los suscriptores reciben mensajes de eventos para todas las variables "eventuales" que han cambiado y los mensajes de eventos se envían sin importar por qué cambió la variable de estado (ya sea en respuesta a una acción solicitada o porque el estado del servicio es modelado cambiado).

Presentación

El paso final en la creación de redes UPnP es la presentación. Si un dispositivo tiene una URL para la presentación, entonces el punto de control puede recuperar una página de esta URL, cargar la página en un navegador web y, según las capacidades de la página, permitir que un usuario controle el dispositivo y / o vea el dispositivo. estado. El grado en que se puede lograr cada uno de estos depende de las capacidades específicas de la página de presentación y el dispositivo.

Estándares UPnP AV

La arquitectura UPnP AV es una extensión de audio y video de UPnP, que admite una variedad de dispositivos como televisores, VCR, reproductores de CD / DVD / jukeboxes, decodificadores, sistemas de estéreo, reproductores de MP3, cámaras de imágenes fijas, videocámaras, marcos de imágenes electrónicos ( EPF) y computadoras personales. La arquitectura UPnP AV permite que los dispositivos admitan diferentes tipos de formatos para el contenido de entretenimiento, incluidos MPEG2, MPEG4, JPEG, MP3, Windows Media Audio (WMA), mapas de bits (BMP) y formatos NTSC, PAL o ATSC. Se admiten varios tipos de protocolos de transferencia, incluidos IEEE 1394, HTTP, RTP y TCP / IP.

El 12 de julio de 2006, el Foro UPnP anunció el lanzamiento de la versión 2 de las especificaciones de audio y video UPnP, con nuevas clases de MediaServer (MS) versión 2.0 y MediaRenderer (MR) versión 2.0. Estas mejoras se crean agregando capacidades a las clases de dispositivos MediaServer y MediaRenderer, lo que permite un mayor nivel de interoperabilidad entre productos fabricados por diferentes fabricantes. Philips comercializó algunos de los primeros dispositivos que cumplían con estos estándares con la marca Streamium .

Desde 2006, se han publicado las versiones 3 y 4 de los protocolos de control de dispositivos de audio y video UPnP. En marzo de 2013, se publicó una especificación actualizada de la arquitectura uPnP AV, que incorpora los protocolos de control de dispositivos actualizados.

Los estándares UPnP AV han sido referenciados en especificaciones publicadas por otras organizaciones, incluidas las Directrices de interoperabilidad de dispositivos en red de Digital Living Network Alliance , la Comisión Electrotécnica Internacional IEC 62481-1 y el Protocolo de red doméstica OpenCable de Laboratorios de televisión por cable .

Componentes AV UPnP

Servidor multimedia

A El servidor de medios UPnP AV es el servidor UPnP (dispositivo "maestro") que proporciona información de la biblioteca de medios y transmite datos de medios (como audio / video / imágenes / archivos) a los clientes UPnP en la red. Es un sistema informático o un dispositivo digital similar que almacena medios digitales, como fotografías, películas o música, y los comparte con otros dispositivos.

Los servidores de medios UPnP AV proporcionan un servicio a los dispositivos cliente UPnP AV, los denominados puntos de control , para examinar el contenido de medios del servidor y solicitar al servidor de medios que entregue un archivo al punto de control para su reproducción.

Los servidores de medios UPnP están disponibles para la mayoría de los sistemas operativos y muchas plataformas de hardware. Los servidores de medios UPnP AV pueden clasificarse como basados ​​en software o basados ​​en hardware. Los servidores de medios UPnP AV basados ​​en software se pueden ejecutar en una PC . Los servidores de medios UPnP AV basados ​​en hardware pueden ejecutarse en cualquier dispositivo NAS o cualquier hardware específico para entregar medios, como un DVR . En mayo de 2008, había más servidores de medios AV UPnP basados ​​en software que servidores basados ​​en hardware.

Otros componentes

  • UPnP MediaServer ControlPoint - que es el cliente UPnP (un dispositivo 'esclavo') que puede detectar automáticamente los servidores UPnP en la red para buscar y transmitir archivos multimedia / de datos desde ellos.
  • UPnP MediaRenderer DCP - que es un dispositivo 'esclavo' que puede procesar (reproducir) contenido.
  • UPnP RenderingControl DCP : controla la configuración de MediaRenderer; volumen, brillo, RGB, nitidez y más.
  • Cliente / servidor UPnP Remote User Interface (RUI) - que envía / recibe comandos de control entre el cliente UPnP y el servidor UPnP a través de la red (como grabar, programar, reproducir, pausar, detener, etc.).
    • Web4CE (CEA 2014) para UPnP Remote UI - Estándar CEA-2014 diseñado por el Comité de redes domésticas R7 de la Consumer Electronics Association . Protocolo basado en web y marco para la interfaz de usuario remota en redes UPnP e Internet (Web4CE). Este estándar permite que un dispositivo de red doméstica compatible con UPnP proporcione su interfaz (opciones de visualización y control) como una página web para mostrar en cualquier otro dispositivo conectado a la red doméstica. Eso significa que uno puede controlar un dispositivo de red doméstica a través de cualquier método de comunicación basado en navegador web para dispositivos CE en una red doméstica UPnP usando Ethernet y una versión especial de HTML llamada CE-HTML .
  • QoS (calidad de servicio) : es una función de servicio importante (pero no obligatoria) para su uso con UPnP AV (audio y video). QoS (calidad de servicio) se refiere a los mecanismos de control que pueden proporcionar una prioridad diferente a diferentes usuarios o flujos de datos, o garantizar un cierto nivel de rendimiento a un flujo de datos de acuerdo con las solicitudes del programa de aplicación. Dado que UPnP AV es principalmente para entregar medios de transmisión que a menudo son datos de audio / video casi en tiempo real o en tiempo real, que es fundamental entregar dentro de un tiempo específico o la transmisión se interrumpe. Las garantías de QoS son especialmente importantes si la capacidad de la red es limitada, por ejemplo, redes públicas, como Internet .
    • QoS para UPnP consta de funciones de servicio de dispositivo receptor (del lado del cliente / front-end) y del dispositivo de origen (del lado del servidor / back-end). Con clases como; Clase de tráfico que indica el tipo de tráfico en el flujo de tráfico (por ejemplo, audio o video). Identificador de tráfico (TID) que identifica los paquetes de datos como pertenecientes a un flujo de tráfico único. Especificación de tráfico (TSPEC) que contiene un conjunto de parámetros que definen las características del flujo de tráfico (por ejemplo, requisitos operativos y programación). Traffic Stream (TS), que es un flujo unidireccional de datos que se origina en un dispositivo fuente y termina en uno o más dispositivos sumideros.
  • Acceso remoto : define métodos para conectar conjuntos de dispositivos UPnP que no están en el mismo dominio de multidifusión.

NAT transversal

Una solución para NAT transversal , llamada Protocolo de dispositivo de puerta de enlace de Internet (Protocolo IGD), se implementa a través de UPnP. Muchos enrutadores y firewalls se exponen como dispositivos de puerta de enlace de Internet, lo que permite que cualquier punto de control UPnP local realice una variedad de acciones, incluida la recuperación de la dirección IP externa del dispositivo, la enumeración de asignaciones de puertos existentes y la adición o eliminación de asignaciones de puertos. Al agregar un mapeo de puertos, un controlador UPnP detrás del IGD puede permitir el cruce del IGD desde una dirección externa a un cliente interno.

Problemas con UPnP

Autenticación

El protocolo UPnP, de forma predeterminada, no implementa ninguna autenticación , por lo que las implementaciones de dispositivos UPnP deben implementar el servicio de protección de dispositivos adicional o implementar el servicio de seguridad de dispositivos . También existe una solución no estándar llamada UPnP-UP (Universal Plug and Play - Perfil de usuario) que propone una extensión para permitir mecanismos de autenticación y autorización de usuarios para dispositivos y aplicaciones UPnP. Muchas implementaciones de dispositivos UPnP carecen de mecanismos de autenticación y, de forma predeterminada, se asume que los sistemas locales y sus usuarios son completamente confiables.

Cuando no se implementan los mecanismos de autenticación, los enrutadores y firewalls que ejecutan el protocolo UPnP IGD son vulnerables a los ataques. Por ejemplo, los programas de Adobe Flash que se ejecutan fuera de la zona de pruebas del navegador (por ejemplo, esto requiere una versión específica de Adobe Flash con problemas de seguridad reconocidos) son capaces de generar un tipo específico de solicitud HTTP que permite que un enrutador que implemente el protocolo UPnP IGD sea controlado por un sitio web malicioso cuando alguien con un enrutador habilitado para UPnP simplemente visita ese sitio web. Esto sólo se aplica a la función "perforar agujeros en el firewall" de UPnP ; no se aplica cuando el IGD no es compatible con UPnP o se ha desactivado UPnP en el IGD. Además, no todos los enrutadores pueden tener cosas como la configuración del servidor DNS alterada por UPnP porque gran parte de la especificación (incluida la configuración del host LAN) es opcional para los enrutadores habilitados para UPnP. Como resultado, algunos dispositivos UPnP se envían con UPnP desactivado de forma predeterminada como medida de seguridad.

Acceso desde Internet

En 2011, el investigador Daniel García desarrolló una herramienta diseñada para explotar una falla en algunas pilas de dispositivos UPnP IGD que permiten solicitudes UPnP desde Internet. La herramienta se hizo pública en DEFCON 19 y permite solicitudes de asignación de puertos a direcciones IP externas desde el dispositivo y direcciones IP internas detrás del NAT. El problema se propaga ampliamente en todo el mundo, con escaneos que muestran millones de dispositivos vulnerables a la vez.

En enero de 2013, la empresa de seguridad Rapid7 de Boston informó sobre un programa de investigación de seis meses. Un equipo buscó señales de dispositivos habilitados para UPnP que anunciaran su disponibilidad para la conexión a Internet. Unos 6900 productos con reconocimiento de red de 1500 empresas con 81 millones de direcciones IP respondieron a sus solicitudes. El 80% de los dispositivos son enrutadores domésticos; otros incluyen impresoras, cámaras web y cámaras de vigilancia. Usando el protocolo UPnP, se puede acceder y / o manipular muchos de esos dispositivos.

En febrero de 2013, el foro UPnP respondió en un comunicado de prensa recomendando versiones más recientes de las pilas UPnP usadas y mejorando el programa de certificación para incluir comprobaciones para evitar más problemas de este tipo.

Fiabilidad y espionaje IGMP

UPnP es a menudo la única aplicación de multidifusión significativa que se utiliza en redes domésticas digitales; por lo tanto, la configuración incorrecta de la red de multidifusión u otras deficiencias pueden aparecer como problemas de UPnP en lugar de problemas de red subyacentes.

Si la indagación IGMP está habilitada en un conmutador, o más comúnmente en un enrutador / conmutador inalámbrico, interferirá con el descubrimiento de dispositivos UPnP / DLNA (SSDP) si se configura de manera incorrecta o incompleta (por ejemplo, sin un interrogador activo o proxy IGMP), lo que hace que UPnP parezca poco confiable .

Los escenarios típicos observados incluyen un servidor o cliente (por ejemplo, un televisor inteligente) que aparece después del encendido y luego desaparece después de unos minutos (a menudo 30 en la configuración predeterminada) debido a la expiración de la membresía del grupo IGMP.

Vulnerabilidad de devolución de llamada

El 8 de junio de 2020 se anunció otra falla en el diseño del protocolo. Apodado "CallStranger" por su descubridor, permite a un atacante subvertir el mecanismo de suscripción de eventos y ejecutar una variedad de ataques: amplificación de solicitudes de uso en DDoS; enumeración; y exfiltración de datos.

OCF había publicado una solución a la especificación del protocolo en abril de 2020, pero dado que muchos dispositivos que ejecutan UPnP no se pueden actualizar fácilmente, es probable que CallStranger siga siendo una amenaza durante mucho tiempo. CallStranger ha impulsado las llamadas a los usuarios finales para que abandonen UPnP debido a fallas repetidas en la seguridad de su diseño e implementación.

Futuros desarrollos

En el otoño de 2008, el Foro UPnP ratificó el sucesor de UPnP 1.0 Device Architecture UPnP 1.1. El estándar de perfil de dispositivos para servicios web (DPWS) era un candidato a sucesor de UPnP, pero el foro UPnP seleccionó UPnP 1.1. La versión 2 de IGD está estandarizada.

El estándar de dispositivo de puerta de enlace de Internet UPnP (IGD) tiene un servicio de conexión WANIP, que proporciona una funcionalidad similar al protocolo de control de puerto estándar IETF . La especificación NAT-PMP contiene una lista de los problemas con IGDP que motivaron la creación de NAT-PMP y su sucesor PCP.

Ver también

Referencias

Fuentes

  • Golden G. Richard: Descubrimiento de dispositivos y servicios: protocolos y programación , McGraw-Hill Professional, ISBN  0-07-137959-2
  • Michael Jeronimo, Jack Weast: UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play , Intel Press, ISBN  0-9717861-1-9

enlaces externos