Universal Plug and Play ( UPnP ) es un conjunto de protocolos de red en el Protocolo de Internet (IP) que permite que los dispositivos en red, como computadoras personales, impresoras, puertas de enlace de Internet , puntos de acceso Wi-Fi y dispositivos móviles, detecten sin problemas la presencia de otros en la red y establezcan servicios de red funcionales. UPnP está destinado principalmente a redes residenciales sin dispositivos de clase empresarial.
UPnP asume que la red ejecuta IP y luego utiliza HTTP sobre IP para proporcionar descripción de dispositivos/servicios, acciones, transferencia de datos y notificación de eventos . Las solicitudes de búsqueda de dispositivos y los anuncios se admiten ejecutando HTTP sobre UDP ( puerto 1900) mediante multidifusión (conocido como HTTPMU). Las respuestas a las solicitudes de búsqueda también se envían mediante UDP, pero en su lugar se envían mediante unidifusión (conocido como HTTPU).
En términos conceptuales, UPnP extiende la tecnología plug and play (una tecnología para conectar dinámicamente dispositivos directamente a una computadora) a las redes sin configuración 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, lo que elimina la necesidad de que los usuarios configuren y agreguen dispositivos manualmente a través de direcciones IP . [1]
En general, se considera que UPnP no es adecuado para su implementación en entornos comerciales por razones de economía, complejidad y consistencia: la base de multidifusión lo hace comunicativo y consume demasiados recursos de red en redes con una gran población de dispositivos; los controles de acceso simplificados no se adaptan bien a entornos complejos; y no proporciona una sintaxis de configuración uniforme como los entornos CLI de Cisco IOS o JUNOS. [ cita requerida ]
La arquitectura UPnP permite la interconexión de dispositivos entre dispositivos de productos electrónicos de consumo , dispositivos móviles , ordenadores personales y electrodomésticos en red . Es un protocolo distribuido y de arquitectura abierta basado en estándares establecidos como el conjunto de protocolos de Internet (TCP/IP), HTTP , XML y SOAP . Los puntos de control (CP) UPnP son dispositivos que utilizan protocolos UPnP para controlar dispositivos controlados por UPnP (CD). [2]
La arquitectura UPnP admite redes sin necesidad de configuración. Un dispositivo compatible con UPnP de cualquier proveedor puede unirse dinámicamente a una red, obtener una dirección IP, anunciar su nombre, publicitar o transmitir sus capacidades a pedido y conocer la presencia y las capacidades de otros dispositivos. Los servidores de protocolo de configuración dinámica de host (DHCP) y de 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 un estándar internacional de 73 partes ISO/IEC 29341 en diciembre de 2008. [3] [4] [5] [6] [7] [8]
Otras características de UPnP incluyen:
UPnP utiliza tecnologías comunes de Internet . Supone que la red debe ejecutar el Protocolo de Internet (IP) y luego utiliza HTTP , SOAP y XML sobre IP, para proporcionar la descripción del dispositivo/servicio, acciones, transferencia de datos y eventos. Las solicitudes de búsqueda de dispositivos y los anuncios se admiten ejecutando HTTP sobre UDP utilizando 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 utilizando unidifusión (conocido como HTTPU). UPnP utiliza UDP debido a su menor sobrecarga al no requerir confirmación de los datos recibidos y la retransmisión de paquetes corruptos. HTTPU y HTTPMU se presentaron inicialmente como un borrador de Internet , pero expiró en 2001; [9] estas especificaciones se han integrado desde entonces en las especificaciones UPnP reales.
UPnP utiliza el puerto UDP 1900 y todos los puertos TCP utilizados se derivan de los mensajes de estado activo y de respuesta de SSDP. [10]
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 una dirección se conoce dentro de la Arquitectura de dispositivos UPnP como AutoIP . En la Arquitectura de dispositivos UPnP versión 1.0, [3] AutoIP se define dentro de la propia especificación; en la Arquitectura de dispositivos UPnP versión 1.1, [4] 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 reenvío de DNS, el dispositivo debe usar ese nombre en operaciones de red posteriores; de lo contrario, el dispositivo debe usar su dirección IP.
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 de descubrimiento de servicios simples (SSDP). Cuando se agrega un dispositivo a la red, SSDP permite que ese dispositivo anuncie sus servicios a los puntos de control de la red. Esto se logra enviando mensajes activos SSDP. 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 activos SSDP 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.
Una vez que un punto de control ha descubierto un dispositivo, aún sabe muy poco sobre él. Para que el punto de control aprenda más sobre el dispositivo y sus capacidades, o para interactuar con él, 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 específica del fabricante, como el nombre y el número del modelo, el número de serie , el nombre del fabricante, las URL (de presentación) a los sitios web específicos del proveedor, etc. La descripción también incluye una lista de los servicios integrados. 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 los que responde el servicio y los 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 de evento.
Una vez recuperada la descripción del dispositivo, el punto de control puede enviar acciones al servicio de un dispositivo. Para ello, un punto de control envía un mensaje de control adecuado a la URL de control del servicio (que se proporciona en la descripción del dispositivo). Los mensajes de control también se expresan en XML mediante el protocolo simple de acceso a objetos (SOAP). De forma muy similar a 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 ejecución del servicio.
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 generales (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 estas variables cambian, 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 variables con eventos y permite al suscriptor inicializar su modelo del estado del servicio. Para admitir escenarios con múltiples puntos de control, los eventos están diseñados para mantener a todos los puntos de control igualmente informados sobre los efectos de cualquier acción. Por lo tanto, a todos los suscriptores se les envían todos los mensajes de eventos, los suscriptores reciben mensajes de eventos para todas las variables "con eventos" que han cambiado, y los mensajes de eventos se envían sin importar el motivo por el cual cambió la variable de estado (ya sea en respuesta a una acción solicitada o porque el estado que el servicio está modelando cambió).
El paso final en la red 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 estado del mismo. El grado en que se puede lograr cada una de estas funciones depende de las capacidades específicas de la página de presentación y del dispositivo.
La arquitectura UPnP AV es una extensión de audio y video de UPnP, compatible con una variedad de dispositivos como televisores, videograbadoras, reproductores de CD/DVD/jukeboxes, decodificadores, sistemas estéreo, reproductores de MP3, cámaras de imágenes fijas, videocámaras, marcos de fotos 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 múltiples tipos de protocolos de transferencia, incluidos IEEE 1394, HTTP, RTP y TCP/IP. [11]
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 [12] , con las nuevas clases MediaServer (MS) versión 2.0 y MediaRenderer (MR) versión 2.0. Estas mejoras se crean añadiendo capacidades a las clases de dispositivos MediaServer y MediaRenderer, lo que permite un mayor nivel de interoperabilidad entre productos fabricados por diferentes fabricantes. Algunos de los primeros dispositivos que cumplían con estos estándares fueron comercializados por Philips bajo 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. [13] En marzo de 2013, se publicó una especificación actualizada de la arquitectura AV uPnP, que incorpora los protocolos de control de dispositivos actualizados. [11] La arquitectura de dispositivos UPnP 2.0 se lanzó en abril de 2020.
Los estándares UPnP AV han sido referenciados en especificaciones publicadas por otras organizaciones, incluidas las Pautas de interoperabilidad de dispositivos en red de Digital Living Network Alliance , [14] la Comisión Electrotécnica Internacional IEC 62481-1, [15] y el Protocolo de redes domésticas OpenCable de Cable Television Laboratories . [16]
Generalmente una arquitectura de audio/video (AV) UPnP consta de: [17]
AEl servidor multimedia UPnP AV es el servidor UPnP (dispositivo "maestro") que proporciona información de biblioteca multimedia y transmite datos multimedia (como audio, video, imágenes y archivos) a 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 multimedia UPnP AV proporcionan un servicio a los dispositivos cliente UPnP AV, denominados puntos de control , para explorar el contenido multimedia del servidor y solicitar al servidor multimedia que entregue un archivo al punto de control para su reproducción.
Los servidores multimedia UPnP están disponibles para la mayoría de los sistemas operativos y muchas plataformas de hardware. Los servidores multimedia UPnP AV pueden clasificarse como basados en software o basados en hardware. Los servidores multimedia UPnP AV basados en software pueden ejecutarse en una PC . Los servidores multimedia UPnP AV basados en hardware pueden ejecutarse en cualquier dispositivo NAS o en cualquier hardware específico para la entrega de contenido multimedia, como un DVR . En mayo de 2008, había más servidores multimedia UPnP AV basados en software que basados en hardware.
Una solución para la travesía de NAT , denominada Protocolo de control de dispositivos de puerta de enlace de Internet (Protocolo UPnP IGD), se implementa a través de UPnP. Muchos enrutadores y cortafuegos 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 una asignación de puertos, un controlador UPnP detrás del IGD puede habilitar la travesía del IGD desde una dirección externa a un cliente interno.
Existen numerosos problemas de compatibilidad debido a las diferentes interpretaciones de las especificaciones IGDv1 e IGDv2, que son muy compatibles con versiones anteriores. Uno de ellos es el cliente UPnP IGD integrado con los sistemas Microsoft Windows y Xbox actuales con enrutadores IGDv2 certificados. El problema de compatibilidad todavía existe desde la introducción del cliente IGDv1 en Windows XP en 2001, y un enrutador IGDv2 sin una solución alternativa que hace imposible la asignación de puertos del enrutador. [19]
Si UPnP sólo se utiliza para controlar las asignaciones de puertos y los agujeros de los enrutadores, existen protocolos alternativos, más nuevos, mucho más simples y livianos, como PCP y NAT-PMP , ambos estandarizados como RFC por la IETF. Aún no se sabe que estas alternativas tengan problemas de compatibilidad entre diferentes clientes y servidores, pero la adopción sigue siendo baja. Para los enrutadores de consumo, actualmente sólo se sabe que AVM y los proyectos de software de enrutador de código abierto OpenWrt , OPNsense y pfSense admiten PCP como alternativa a UPnP. La implementación de Fritz!Box UPnP IGDv2 y PCP de AVM ha tenido muchos errores desde su introducción. En muchos casos no funciona. [20] [21] [22] [23] [24]
El protocolo UPnP, por defecto, no implementa ningún tipo de autenticación , por lo que las implementaciones de dispositivos UPnP deben implementar el servicio adicional Device Protection , [25] o implementar el Device Security Service . [26] También existe una solución no estándar llamada UPnP-UP (Universal Plug and Play - User Profile) [27] [28] 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 por defecto asumen que los sistemas locales y sus usuarios son completamente confiables. [29] [30]
Cuando no se implementan los mecanismos de autenticación, los enrutadores y cortafuegos que ejecutan el protocolo UPnP IGD son vulnerables a ataques. Por ejemplo, los programas Adobe Flash que se ejecutan fuera del entorno protegido 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 implementa el protocolo UPnP IGD sea controlado por un sitio web malicioso cuando alguien con un enrutador habilitado para UPnP simplemente visita ese sitio web. [31] Esto solo se aplica a la función de "perforación de agujeros de firewall" de UPnP; no se aplica cuando el enrutador/cortafuegos no admite UPnP IGD o ha sido deshabilitado en el enrutador. Además, no todos los enrutadores pueden tener cosas como configuraciones de servidor DNS alteradas por UPnP porque gran parte de la especificación (incluida la configuración del host de LAN) es opcional para los enrutadores habilitados para UPnP. [6] Como resultado, algunos dispositivos UPnP se envían con UPnP desactivado de forma predeterminada como medida de seguridad.
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. [32] [33] La herramienta se hizo pública en DEFCON 19 y permite solicitudes de mapeo de puertos a direcciones IP externas desde el dispositivo y direcciones IP internas detrás del NAT. El problema se ha propagado ampliamente en todo el mundo, con escaneos que muestran millones de dispositivos vulnerables a la vez. [34]
En enero de 2013, la empresa de seguridad Rapid7 de Boston informó [35] sobre un programa de investigación de seis meses. Un equipo buscó señales de dispositivos con UPnP habilitado que anunciaran su disponibilidad para la conexión a Internet. Unos 6900 productos con capacidad de conexión a la red de 1500 empresas en 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. Utilizando el protocolo UPnP, se puede acceder a muchos de esos dispositivos y/o manipularlos.
En febrero de 2013, el foro UPnP respondió en un comunicado de prensa [36] recomendando versiones más recientes de las pilas UPnP utilizadas y mejorando el programa de certificación para incluir controles para evitar más problemas similares.
UPnP es a menudo la única aplicación de multidifusión significativa en uso en redes domésticas digitales; por lo tanto, una mala configuración de la red de multidifusión u otras deficiencias pueden aparecer como problemas de UPnP en lugar de problemas de red subyacentes.
Si la vigilancia 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 está configurado de manera incorrecta o incompleta (por ejemplo, sin un interrogador activo o un proxy IGMP), lo que hará 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 (generalmente 30 según la configuración predeterminada) debido a que expira la membresía del grupo IGMP.
El 8 de junio de 2020, se anunció otra falla de diseño de protocolo. [37] Apodada "CallStranger" [38] 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 para su 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, [39] pero como muchos dispositivos que ejecutan UPnP no son fácilmente actualizables, es probable que CallStranger siga siendo una amenaza durante mucho tiempo. [40] CallStranger ha alimentado los llamados para que los usuarios finales abandonen UPnP debido a las repetidas fallas en la seguridad de su diseño e implementación. [41]
Los protocolos UPnP fueron promovidos por el Foro UPnP (formado en octubre de 1999), [42] 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 estaba formado 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 la Open Connectivity Foundation (OCF).
En el otoño de 2008, el Foro UPnP ratificó el sucesor de la arquitectura de dispositivos UPnP 1.0, UPnP 1.1. [43] El estándar Devices Profile for Web Services (DPWS) era un candidato a sucesor de UPnP, pero el Foro UPnP seleccionó UPnP 1.1. La versión 2 de IGD está estandarizada. [44]
El estándar UPnP Internet Gateway Device (IGD) [6] tiene un servicio WANIPConnection, que proporciona una funcionalidad similar al estándar IETF Port Control Protocol . La especificación NAT-PMP contiene una lista de los problemas con IGDP [45] : 26–32 que impulsaron la creación de NAT-PMP y su sucesor PCP.
Se han definido una serie de estándares adicionales para la arquitectura del dispositivo UPnP:
urn:schemas-wifialliance-org:device:WFADevice
servicios de "dispositivo WFA" ( ) relacionados con el punto de acceso inalámbrico.{{cite journal}}
: Requiere citar revista |journal=
( ayuda )