Universal Plug and Play ( UPnP ) es un conjunto de protocolos de red en el Protocolo de Internet (IP) que permite que los dispositivos conectados en red, como computadoras personales, impresoras, puertas de enlace de Internet , puntos de acceso Wi-Fi y dispositivos móviles, descubran sin problemas la presencia de los demás. en la red y establecer 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 usa HTTP sobre IP para proporcionar descripción de dispositivo/servicio, 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 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 dinámicamente dispositivos directamente a una computadora) a 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, eliminando la necesidad de que los usuarios configuren y agreguen dispositivos manualmente a través de direcciones IP . [1]
Generalmente se considera que UPnP no es adecuado para su implementación en entornos empresariales por razones de economía, complejidad y coherencia: la base de multidifusión lo hace comunicativo, consumiendo 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 necesaria ]
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). [2]
La arquitectura UPnP admite redes sin 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, 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 estándar internacional ISO/IEC 29341 de 73 partes en diciembre de 2008. [3] [4] [5] [6] [7] [8]
Otras características de UPnP incluyen:
UPnP utiliza tecnologías comunes de Internet . Asume que la red debe ejecutar el Protocolo de Internet (IP) y luego utiliza HTTP , SOAP y XML además de IP, para proporcionar descripciones de dispositivos/servicios, acciones, transferencia de datos y eventos. Las solicitudes de búsqueda de dispositivos y los anuncios se admiten ejecutando 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 utiliza UDP debido a su menor sobrecarga al no requerir confirmación de los datos recibidos ni retransmisión de paquetes corruptos. HTTPU y HTTPMU se presentaron inicialmente como un borrador de Internet , pero expiró en 2001; [9] Desde entonces, estas especificaciones se han integrado en las especificaciones UPnP reales.
UPnP utiliza el puerto UDP 1900 y todos los puertos TCP utilizados se derivan de los mensajes activos y de respuesta del SSDP. [10]
La base de las redes 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 arquitectura de dispositivos UPnP versión 1.0, [3] AutoIP se define dentro de la propia especificación; en Arquitectura de dispositivo 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 la red posterior. operaciones; de lo contrario, el dispositivo debería utilizar 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 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 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 del 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.
Después de que un punto de control ha descubierto un dispositivo, todavía sabe muy poco sobre el dispositivo. Para que el punto de control obtenga más información sobre el dispositivo y sus capacidades, o interactúe 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 el número del modelo, el número de serie , el nombre del fabricante, URL (de presentación) a sitios web específicos del proveedor, etc. La descripción también incluye una lista de todos los dispositivos integrados. servicios. Para cada servicio, el documento de descripción del dispositivo enumera las URL para control, eventos y descripción del servicio. Cada descripción de servicio incluye una lista de los comandos o acciones a los 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 de evento.
Habiendo recuperado una 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 (proporcionada 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 ejecución del servicio.
Otra capacidad de las redes UPnP es la notificación de eventos o eventing . El protocolo de notificación de eventos definido en la Arquitectura del dispositivo UPnP se conoce como Arquitectura general de notificación de eventos (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 de evento y permite al suscriptor inicializar su modelo del estado del servicio. Para respaldar 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, a todos los suscriptores se les envían todos los mensajes de eventos, los suscriptores reciben mensajes de eventos para todas las variables "evento" 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 ¿Se ha cambiado el modelo?
El último paso en la creación de redes UPnP es la presentación. Si un dispositivo tiene una URL para presentación, entonces el punto de control puede recuperar una página de esta URL, cargar la página en un navegador web y, dependiendo de 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 del dispositivo.
La arquitectura UPnP AV es una extensión de audio y vídeo de UPnP, compatible con una variedad de dispositivos como televisores, VCR, 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 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. [11]
El 12 de julio de 2006, el Foro UPnP anunció el lanzamiento de la versión 2 de las especificaciones de audio y vídeo UPnP, [12] con las nuevas clases 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 bajo la marca Streamium .
Desde 2006 se publican las versiones 3 y 4 de los protocolos de control de dispositivos de audio y vídeo UPnP. [13] En marzo de 2013, se publicó una especificación de arquitectura AV uPnP actualizada, que incorpora los protocolos de control de dispositivos actualizados. [11] La arquitectura de dispositivo UPnP 2.0 se lanzó en abril de 2020.
Se ha hecho referencia a los estándares UPnP AV en especificaciones publicadas por otras organizaciones, incluidas las Directrices de interoperabilidad de dispositivos en red de Digital Living Network Alliance , [14] 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/vídeo (AV) UPnP consta de: [17]
AEl servidor de medios UPnP AV es el servidor UPnP (dispositivo "maestro") que proporciona información de la biblioteca de medios y transmite datos multimedia (como audio/vídeo/imagen/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 brindan un servicio a los dispositivos cliente UPnP AV, los llamados 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 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 se pueden clasificar 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 en cualquier hardware específico para entregar medios, como un DVR . En mayo de 2008, había más servidores de medios UPnP AV basados en software que servidores basados en hardware.
Una solución para el cruce 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 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 una asignación de puertos, un controlador UPnP detrás del IGD puede permitir el recorrido del IGD desde una dirección externa a un cliente interno.
Existen numerosos problemas de compatibilidad debido a las diferentes interpretaciones de las muy grandes especificaciones IGDv1 e IGDv2, realmente compatibles con versiones anteriores. Uno de ellos es el cliente UPnP IGD integrado con los sistemas actuales Microsoft Windows y Xbox con enrutadores IGDv2 certificados. El problema de compatibilidad aún existe desde la introducción del cliente IGDv1 en Windows XP en 2001 y un enrutador IGDv2 sin una solución alternativa que imposibilita el mapeo de puertos del enrutador. [19]
Si UPnP solo se usa para controlar las asignaciones de puertos del enrutador y los orificios, existen protocolos alternativos, más nuevos, mucho más simples y livianos, como PCP y NAT -PMP , los cuales han sido estandarizados como RFC por el IETF. Aún no se sabe que estas alternativas tengan problemas de compatibilidad entre diferentes clientes y servidores, pero la adopción aún es baja. Para los enrutadores de consumo, actualmente solo 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 ninguna autenticación , por lo que las implementaciones de dispositivos UPnP deben implementar el servicio adicional de Protección de dispositivos , [25] o implementar el Servicio de seguridad de dispositivos . [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, de forma predeterminada, 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 firewalls que ejecutan el protocolo UPnP IGD son vulnerables a los ataques. Por ejemplo, los programas Adobe Flash que se ejecutan fuera del entorno limitado 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 sólo se aplica a la característica "perforación de cortafuegos" de UPnP; no se aplica cuando el enrutador/firewall no admite UPnP IGD o ha sido deshabilitado en el enrutador. Además, no todos los enrutadores pueden tener elementos 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. [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 asignación de puertos a direcciones IP externas desde el dispositivo y direcciones IP internas detrás de NAT. El problema se propaga ampliamente por todo el mundo y los análisis 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 de duración. Un equipo buscó señales de dispositivos habilitados para UPnP que anunciaran su disponibilidad para conexión a Internet. Alrededor de 6.900 productos de red de 1.500 empresas con 81 millones de direcciones IP respondieron a sus solicitudes. El 80% de los dispositivos son routers domésticos; otros incluyen impresoras, cámaras web y cámaras de vigilancia. Utilizando 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 [36] recomendando versiones más recientes de las pilas UPnP utilizadas y mejorando el programa de certificación para incluir comprobaciones para evitar más problemas de este tipo.
UPnP es a menudo la única aplicación de multidifusión importante que se utiliza en las 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 subyacentes de la red.
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 se configura incorrecta o incompletamente (por ejemplo, sin un interrogador activo o un proxy IGMP), haciendo 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 que la membresía del grupo IGMP expira.
El 8 de junio de 2020, se anunció otro fallo en el diseño del protocolo. [37] Apodado "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 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 dado que muchos dispositivos que ejecutan UPnP no se pueden actualizar fácilmente, es probable que CallStranger siga siendo una amenaza durante mucho tiempo. [40] CallStranger ha impulsado llamados para que los usuarios finales abandonen UPnP debido a fallas repetidas 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 estuvo formado por más de 800 proveedores involucrados en todo, desde electrónica de consumo hasta informática 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 dispositivo UPnP 1.0, UPnP 1.1. [43] El estándar Devices Profile for Web Services (DPWS) era un candidato a sucesor de UPnP, pero UPnP 1.1 fue seleccionado por el Foro UPnP. La versión 2 de IGD está estandarizada. [44]
El estándar UPnP Internet Gateway Device (IGD) [6] tiene un servicio de conexión WANIP, que proporciona una funcionalidad similar al protocolo de control de puertos estándar IETF . 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 varios estándares adicionales para la arquitectura de dispositivos UPnP:
urn:schemas-wifialliance-org:device:WFADevice
servicios de "dispositivo WFA" ( ) relacionados con el punto de acceso inalámbrico.{{cite journal}}
: Citar diario requiere |journal=
( ayuda )