Red de conocimiento informático - Problemas con los teléfonos móviles - La relación entre el proxy upnp y el protocolo

La relación entre el proxy upnp y el protocolo

Protocolo UPnP

Universal Plug and Play en inglés es Universal Plug and Play, abreviado como UPnP. Cuando se trata de Plug and Play (abreviado PnP) para periféricos de computadora, es posible que todos estén familiarizados con él, pero la mayoría de la gente está confundida acerca del Plug and Play unificado. Desde que Windows XP agregó soporte para UPnP y se descubrió que tenía serios problemas de seguridad, UPnP se hizo famoso por un tiempo. Casualmente, había consultado previamente el documento técnico sobre UPnP y también leí una introducción más detallada a las fallas de seguridad descubiertas esta vez. Por ello, aprovechamos esta oportunidad para revelar los detalles de UPnP y los fallos de seguridad que lo provocan.

1. ¿Para qué se utiliza UPnP?

El desarrollo de Internet nos permite actualmente navegar por Internet, enviar y recibir correos electrónicos, escuchar voces lejanas, buscar contenidos de interés, descargar software, programas bajo demanda, chat instantáneo, etc. , etc. ... Parece que se han implementado muchas funciones, pero los deseos de las personas son infinitos, y las personas que disfrutan de la felicidad todavía quieren disfrutar de más felicidad. Todavía hay muchas metas que no se han logrado: por ejemplo, cómo. ¿Podemos operar en Internet como lo hacemos habitualmente con un control remoto? ¿Qué pasa con los aires acondicionados, ventiladores eléctricos, electrodomésticos de cocina o equipos eléctricos en el lado remoto de la red? ¿Cómo utilizar los recursos informáticos de la red para hacer más inteligente este "control remoto"? ¿O incluso escribir una serie de controles relacionados en un script para que los usuarios puedan personalizar su proceso de control favorito? ……etc. Lograr efectos como este será una tecnología de aplicación muy demandada. Si podemos usar UPnP para controlar dispositivos domésticos a través de la red, traerá una gran comodidad y muchas experiencias nuevas a nuestras vidas. Por ejemplo:

1. Antes de salir del trabajo o de regreso, puede encender el aire acondicionado y el equipo de cocina de su casa. Al ingresar a la casa, inmediatamente encontrará un ambiente con un. temperatura agradable - la cocina El arroz también está listo. La temperatura ambiente y el proceso de cocción en la cocina se realizan según un programa "script" prediseñado y absolutamente fiable.

2. Si eres un entusiasta de la música de alto nivel, debes tener requisitos estrictos sobre el entorno para escuchar música: la posición de los altavoces, el volumen, el brillo de las luces y si el Las cortinas están cerradas o no, son todas particulares. El control manual está bien, pero después de todo es un inconveniente. Si desea utilizar UPnP, todo se hará por usted. También puede escribir el volumen del sonido, el brillo de la luz, la altura del altavoz, etc. al que está acostumbrado, en el script de ejecución con los parámetros que considere mejores, y puede utilizar esto como estándar en el futuro. Si tiene su propia sala de escucha exclusiva, el entorno anterior se configurará inmediatamente tan pronto como abra la puerta de la sala de escucha. Cuando termine la canción, simplemente sal con tranquilidad. El sistema UPnP apagará los parlantes, apagará las luces y cerrará las cortinas.

3. Estás en la oficina, pero no puedes dejar a tus hijos en casa. Usando UPnP, solo necesitas instalar una cámara en casa y establecer una conexión a la red. En la oficina, puede habilitar WEBTV en su computadora de escritorio y conectarse a Internet para monitorear cada movimiento de sus hijos en casa.

Hay muchas comodidades y características atractivas, demasiado numerosas para mencionarlas.

De hecho, esto ya no es ciencia ficción, ni tampoco una predicción de expertos. Actualmente, estas operaciones se pueden lograr utilizando el protocolo UPnP. Esta es la razón por la que los sistemas Windows XP están ansiosos por unirse a UPnP. Debido a que UPnP es un protocolo, el uso de UPnP puede abarcar varias plataformas de sistemas operativos y no hay limitación del lenguaje de desarrollo al desarrollar aplicaciones. Puede trabajar en diversas formas de estructuras de red. Y solo se basa en las instalaciones de red actuales y solo agrega este protocolo UPnP. ¡Se puede poner en uso sin agregar nuevas instalaciones ni restablecer medios de red!

El protocolo UPnP tiene las siguientes características:

1. La red se utiliza como entorno de aplicación y no se consideran las computadoras en la "isla aislada".

2. Basado en TCP/IP y todo Internet. Esto es "neutral", no está vinculado a ningún sistema operativo o aplicación, no utiliza funciones API específicas y no está limitado por lenguajes de programación.

Se puede conectar sin problemas a redes tradicionales.

3. El dispositivo puede ingresar dinámicamente a la red, luego obtener una dirección IP, "aprender" o encontrar información sobre las operaciones y servicios que debe realizar "percibir" si existen otros dispositivos y sus funciones y actualidad; estado. Todo esto debería hacerse automáticamente.

4. Cada dispositivo puede leer su propio estado y parámetros específicos; después de completar la operación de control, se debe enviar una señal de respuesta de "operación completada". Si falla, se debe señalar una falla de control.

2. Capas del protocolo UPnP:

El propósito final del protocolo UPnP es establecer un modelo de dispositivo utilizable. Debido al espacio, no analizaremos toda la estructura en detalle aquí. , pero debes recordar que las siguientes características principales son:

1. UPnP es un sistema marco compuesto por protocolos multicapa. Cada capa se basa en la capa inferior adyacente y también es la base de la capa superior adyacente. capa. hasta llegar a la capa de aplicación. La parte inferior de la figura es IP y TCP, las dos últimas capas, responsables de la dirección IP del dispositivo.

2. Las tres capas son HTTP, HTTPU y HTTPMU. Esta capa debería ser familiar para todos y pertenece a la capa del protocolo de transporte. Lo que se transmite es que el contenido queda “encapsulado” y almacenado en un archivo XML específico. Los SSDP, GENA y SOAP correspondientes se refieren al formato de datos guardado en archivos XML. En este nivel, se han resuelto los problemas de dirección IP y transmisión de información de los dispositivos UPnP.

3. La cuarta capa es la definición del sistema de dispositivo UPnP, que es solo un modelo de dispositivo público abstracto. Cualquier dispositivo UPnP debe utilizar esta capa.

4. La quinta capa es la capa de definición de dispositivos de cada comité profesional del foro UPnP. En este foro, diferentes equipos eléctricos son definidos por diferentes comités profesionales. Por ejemplo, el Comité de Televisión solo es responsable de. definiendo la parte de equipos de TV de la red, el Comité de Aire Acondicionado sólo es responsable de definir la parte de equipos de aire acondicionado de la red..., y así sucesivamente. Todos los diferentes tipos de dispositivos se definen en un esquema o plantilla especializada para su uso al construir el dispositivo. Se puede inferir que al ingresar a esta capa, al equipo se le ha asignado un propósito claro. Por supuesto, estos deben cumplir con especificaciones estandarizadas. Desde el punto de vista actual, UPnP ya puede admitir la mayoría de los dispositivos: desde computadoras, periféricos de computadora, dispositivos móviles y equipos de electrónica de consumo doméstico, etc., todo está incluido. Con la popularidad de este sistema, es probable que haya más fabricantes. Este estándar puede eventualmente evolucionar hasta convertirse en un estándar industrial reconocido.

5. La capa superior, que es la capa de aplicación, la define el fabricante del dispositivo UPnP. Esta capa de información la "completa" el fabricante del equipo. Esta parte generalmente contiene el código subyacente para el control y operación del dispositivo proporcionado por el fabricante del equipo y luego incluye cosas como el nombre, el número de serie, la información del fabricante y similares.

3. Detalles dentro del protocolo

Solo existe un protocolo UPnP de cinco capas y solo tiene un marco que todos pueden cumplir. ¿Cómo es el sistema UPnP real? ¿Cuál es la composición?

El sistema de servicio UPnP completo está compuesto por una red que admite UPnP y un dispositivo que cumple con la especificación UPnP.

Todo el sistema se compone de tres partes: equipos, servicios y punteros de control.

Dispositivo:

Se refiere a dispositivos que cumplen con la especificación UPnP. Un dispositivo UPnP puede considerarse como un "contenedor" que contiene servicios y dispositivos normales anidados. Por ejemplo, un dispositivo VCR (grabador de vídeo) UPnP puede contener servicios de transferencia de cintas, servicios de sintonización y servicios de reloj. Es decir, los dispositivos bajo UPnP no pueden entenderse sólo como dispositivos en el sentido de hardware, sino que deben incluir funciones de servicio.

Se asociarán diferentes tipos de dispositivos UPnP con diferentes configuraciones, servicios y dispositivos integrados. Si las impresoras y los VCR son dispositivos con usos diferentes, los servicios no se pueden definir de la misma manera.

Servicio:

El dispositivo ejecuta el proceso de control solicitado por el usuario, el cual se puede dividir en etapas o unidades muy pequeñas, y cada unidad se denomina servicio.

Cada servicio se representa externamente como comportamientos y patrones específicos, y los comportamientos y patrones pueden describirse mediante estados y valores variables. Siempre que pueda describirse numéricamente, es fácil de procesar en una computadora. Por ejemplo, para simular un reloj, tiene un solo modo de funcionamiento: este modo es para simular y mostrar la hora actual. Hay dos (y sólo dos) comportamientos de un reloj:

1 Configurar la hora (se utiliza para "hacer coincidir el reloj como solemos decir").

2. hora (utilizada para mostrar la hora).

Otros servicios del dispositivo también se describen y definen de esta manera. Un dispositivo también se puede definir con múltiples servicios. Tanto la información de definición del dispositivo como la información de descripción del servicio se guardan en un archivo XML, que también forma parte del protocolo UPnP. Cuando los dispositivos crean y utilizan servicios, se pueden asociar archivos XML con ellos.

También hay una "tabla de estado" muy crítica en el archivo XML. La tabla de estado se puede dividir en "tabla de estado del servicio" y "tabla de estado de eventos". Durante todo el funcionamiento del dispositivo UPnP, la tabla de estado se ejecuta. Cuando el estado del dispositivo cambia, como cambios de parámetros o actualizaciones de estado, se refleja inmediatamente en la "tabla de estado". Por ejemplo, cuando el servidor de control recibe una solicitud de comportamiento para establecer la hora, inmediatamente ejecuta la solicitud (operación de ajuste de hora), da una respuesta y actualiza los datos relevantes en la tabla de estado al mismo tiempo. En consecuencia, el servidor de eventos es responsable de publicar los cambios de estado que se han producido en los dispositivos interesados ​​en el evento. Por ejemplo, después de que ocurre un incendio, el servidor de eventos publica el evento en la alarma de incendio, lo que hace que la alarma actúe y genere una señal de alarma.

Puntero de control:

En la red UPnP, el control que el usuario solicita al dispositivo se consigue a través del puntero de control. El puntero de control es ante todo un controlador que tiene. la capacidad de controlar otros dispositivos. También requiere la capacidad de "descubrir" objetivos de control en la red. Después del descubrimiento (objetivo de control), el puntero de control debe:

① Obtener la información de descripción del dispositivo y obtener la lista de servicios asociados.

② Obtener una descripción de los servicios relacionados.

③Llamada para controlar el comportamiento del servicio.

④ Determine el "fuente" del evento del servicio Siempre que cambie el estado del servicio, el servidor de eventos enviará inmediatamente un mensaje de evento al puntero de control.

La información mencionada anteriormente se almacena en archivos XML. La información para diferentes propósitos tiene diferentes formatos. Asegúrese de poder obtener lo que necesita y no habrá confusión.

Entonces, ¿cuál es el proceso de trabajo completo de UPnP?

UPnP proporciona funciones de comunicación entre el puntero de control y el dispositivo controlado. Los medios de red, el protocolo TCP/IP y HTTP solo proporcionan conexiones básicas y asignación de direcciones IP. Todo el proceso de trabajo debe abordar seis aspectos: asignación de direcciones, descubrimiento de dispositivos, descripción de dispositivos, control de dispositivos, eventos de dispositivos y expresión de dispositivos.

Problema de dirección:

La dirección es la condición básica para que todo el sistema UPnP funcione. Cada dispositivo debe ser un cliente de DHCP (Protocolo de configuración dinámica de host). Cuando el dispositivo establece una conexión a la red por primera vez, utiliza el servicio DHCP para obtener una dirección IP para el dispositivo. Esta dirección IP puede ser especificada por el sistema DHCP o seleccionada por el dispositivo. Por supuesto, los dispositivos que tienen la capacidad de elegir sus propias direcciones IP deben ser dispositivos "inteligentes". Esto también se conoce como dirección IP "automática".

Si encuentra una solicitud de dirección IP fuera del rango de administración de DHCP local, también debe resolver el problema de asignación de direcciones del "dispositivo amigable"

. el servidor de nombres de dominio.

Descubrir dispositivos:

Se puede dividir en dos situaciones: una es buscar los dispositivos disponibles correspondientes en la red actual después de una solicitud de control y la otra es después de que se conecta un determinado dispositivo; a la red y obtiene una dirección IP, comienza a "transmitir" a la red que ha ingresado a la red, es decir, busca solicitudes de control.

Descripción del dispositivo:

En pocas palabras, se trata de una declaración de qué tipo de dispositivo es "este", como nombre, fabricante, número de serie, etc. Después de que el dispositivo se "descubre" por primera vez, el puntero de control todavía tiene muy poca "comprensión" del dispositivo. Necesita encontrar los archivos de descripción del dispositivo según el ULR y leer más información de descripción de estos archivos. La información de descripción varía ampliamente y generalmente la proporciona el fabricante del dispositivo. Los elementos de descripción principal incluyen: nombre del modo de control y número de modo, número de serie del dispositivo, nombre del fabricante, WEB ULR del fabricante, etc. Estos generalmente se almacenan en archivos XML específicos;

Control de dispositivo:

Después de que el puntero de control encuentre la descripción del dispositivo, "extraerá" la operación a realizar de la descripción y aprenderá todos los servicios; para cada dispositivo UPnP, estas descripciones deben ser muy precisas y detalladas. La descripción puede incluir una lista de comandos o comportamiento, información de respuesta del servicio, parámetros utilizados, etc. Para cada comportamiento del servicio, también hay información de descripción: principalmente las variables durante todo el servicio, el tipo de datos de las variables, el rango de valores disponible y las características del evento.

Para controlar un dispositivo, el puntero de control primero debe enviar una solicitud de acción de control, solicitando al dispositivo que inicie el servicio, y luego enviar el mensaje de control correspondiente de acuerdo con el ULR del dispositivo. uno colocado en el archivo XML Información en formato SOAP. Finalmente, el servicio devolverá un mensaje de respuesta indicando si el servicio fue exitoso o falló.

Evento del dispositivo:

Durante todo el tiempo que el servicio esté en progreso, siempre que cambie el valor de la variable o cambie el estado del modo, se genera un evento y el sistema modificar lo mencionado anteriormente al contenido de la lista de eventos. Posteriormente, el servidor de eventos transmite el evento a toda la red. Por otro lado, el puntero de control también puede reservar información de eventos con el servidor de eventos por adelantado para garantizar que los eventos que le interesan al puntero de control se entreguen de manera oportuna y precisa.

Los eventos de transmisión o reserva transmiten mensajes de eventos. Los mensajes de eventos también se colocan en archivos XML y el formato utilizado es GENA.

La preparación antes de poner el equipo en funcionamiento: el proceso de inicialización también es un evento, y también se transmite diversa información necesaria para la inicialización mediante mensajes de evento. El contenido principal incluido es: valor inicial de variables, estado inicial del modo, etc.

Expresión del dispositivo:

Siempre que se obtenga el ULR del dispositivo, se puede obtener el ULR de la página de expresión del dispositivo y luego esta expresión se puede incorporar al local del usuario. navegador. Esta parte también incluye la interfaz para el diálogo con el usuario, así como el procesamiento de la conversación con el usuario.

Todo el sistema UPnP trabaja de forma colaborativa bajo el mando del "sistema nervioso central". La situación general es la siguiente:

Todos los dispositivos con direcciones IP deben usar directamente la dirección IP de la red, pero es posible que algunos dispositivos no tengan la capacidad de usar directamente la dirección IP de la red. Por ejemplo, el control de una. El interruptor de luz es De esta manera, este es un dispositivo no IP que intercambia información con el puntero de control a través del puente (Puente UPnP).

Los que utilizan direcciones IP directamente son: punteros de control (que pueden emitir controles en ordenadores de bolsillo y dispositivos remotos), dispositivos locales como VCR y relojes y puentes de red; Los dispositivos que no son IP incluyen los llamados dispositivos de iluminación (como controladores de temperatura) y dispositivos que no son UPnP (como interruptores de control de iluminación, etc.).

La introducción anterior pertenece al aspecto del hardware. Hablemos del software como alma de control:

En la descripción anterior, se menciona muchas veces que los archivos XML se utilizan para almacenar. la información requerida, ya que ya sea para controlar el puntero o los servicios del dispositivo, se requiere mucha información, tanto de lectura como de salida. El protocolo UPnP estipula que éstas se almacenan en un archivo XML específico. La información con diferentes usos tiene diferentes formatos en archivos XML. Por tanto, el archivo XML correspondiente es el alma del servicio de control.

4. Respecto a los fallos de seguridad ocultos de UPnP:

Esta vez se han descubierto dos fallos de seguridad, el primero de los cuales es el búfer (Buffer). No existen controles ni restricciones. usar.

¡Los atacantes externos pueden obtener privilegios de control sobre todo el sistema a través de esto! Dado que la función UPnp debe utilizar los puertos de la computadora para funcionar, un atacante que haya obtenido el control también puede utilizar estos puertos para lograr sus objetivos. Las consecuencias de esta falla son muy graves, sin importar la versión del sistema Windows, mientras se esté ejecutando UPnP, ¡este peligro existe! Pero estrictamente hablando, esto no es enteramente un problema con la tecnología UPnP en sí, sino más bien un descuido en el diseño del programa.

¡El segundo defecto está relacionado con el mecanismo de funcionamiento de UPnP!

Esta falla existe en la fase de "descubrimiento de dispositivo" del trabajo UPnP. El descubrimiento de dispositivos se puede dividir en dos situaciones: si una computadora con función UPnP se inicia correctamente y se conecta a la red, enviará inmediatamente una "transmisión" a la red para notificar a los dispositivos UPnP en la red que está listo en el programa. diseño En este nivel, el contenido transmitido es una indicación M-SEARCH (mensaje). La transmisión será "escuchada" por todos los dispositivos dentro del "rango de sonido". Y devolver información relevante sobre sí mismo a la computadora para su posterior control.

De manera similar, si un dispositivo acaba de conectarse a la red, también enviará una "notificación" a la red, indicando que está listo y puede aceptar el control de la red. La notificación es una indicación NOTIFICAR (mensaje). También será aceptado por todas las computadoras dentro del "rango de sonido". La computadora "percibirá" que el dispositivo se ha "registrado" con ella. De hecho, la instrucción NOTIFICAR (mensaje) no solo se envía a la computadora, sino que también puede ser escuchada por otros dispositivos de red.

¡Fue durante la transmisión y escucha mencionada anteriormente que ocurrió un problema!

Si un hacker envía una instrucción NOTIFICAR (mensaje) a un sistema de usuario, el sistema de usuario recibirá la instrucción NOTIFICAR (mensaje) y se conectará a un servidor específico según sus instrucciones. Luego solicitará el servicio de descarga del. servidor correspondiente: descargue el contenido del servicio que se ejecutará. Por supuesto, el servidor responderá a esta solicitud. El sistema de servicio UPnP interpretará la parte de descripción del dispositivo y solicitará que se envíen más archivos, y el servidor deberá responder a estas solicitudes. De esta forma, se forma un ciclo de "solicitud-respuesta", que ocupa una gran cantidad de recursos del sistema, lo que hace que el servicio del sistema UPnP se ralentice o incluso se detenga. Por lo tanto, esta falla conducirá a un posible ataque de "denegación de servicio".

Conclusión

UpnP se acerca paso a paso a nosotros y ahora se puede escuchar. En un futuro próximo, inevitablemente tendrá un gran impacto en nuestro trabajo y nuestra vida. También contiene oportunidades comerciales ilimitadas. Aunque ahora hay problemas, no hay garantía de que no surjan nuevos problemas en el futuro, pero como refleja las necesidades e intenciones de las personas, tendrá una enorme vitalidad y los contratiempos temporales no le impedirán seguir adelante.