Открыть сервисСервис

UPnP — протокол автоматической настройки сетевых устройств

UPnP (Universal Plug and Play, «универсальное подключение и работа») — набор сетевых протоколов, разработанный для автоматического обнаружения, конфигурации и взаимодействия устройств в локальной сети без ручного вмешательства пользователя. Технология позволяет устройствам — роутерам, принтерам, камерам, медиасерверам, игровым приставкам — находить друг друга в сети, получать IP-адреса, открывать порты и обмениваться данными по предсказуемым правилам. UPnP описывает набор протоколов поверх стандартных сетевых стеков: TCP/IP, UDP, HTTP, SSDP и XML.

История и организация

Инициатива UPnP была запущена в 1999 году компанией Microsoft как часть стратегии «Windows 98 Second Edition» и позиционировалась как развитие идеи Plug and Play для сетевых устройств. В том же году был основан UPnP Forum — консорциум промышленных компаний, разрабатывавший спецификации. К 2000-м годам в форум входили Intel, IBM, Sony, Samsung, Cisco, HP и десятки других производителей. В 2016 году UPnP Forum объединился с Digital Living Network Alliance (DLNA), образовав Open Connectivity Foundation (OCF), которая продолжает развитие стандарта.

Спецификации UPnP публикуются открыто и не требуют лицензионных платежей. Базовый набор протоколов описывает четыре ключевых действия: обнаружение устройств (discovery), описание устройств и служб (description), управление (control) и событийные уведомления (eventing).

Как работает UPnP

Работа UPnP строится на нескольких протоколах, работающих поверх стандартного IP-стека:

ПротоколНазначение
SSDP (Simple Service Discovery Protocol)Обнаружение устройств и служб в сети через multicast-запросы на адресе 239.255.255.250:1900
GENA (Generic Event Notification Architecture)Подписка на события устройств
SOAP (Simple Object Access Protocol)Управление службами через HTTP-запросы
XMLОписание устройств и их возможностей

Процесс взаимодействия выглядит следующим образом. Устройство при подключении к сети рассылает multicast-объявление о своём присутствии. Другие устройства в сети получают это объявление и запрашивают XML-описание устройства по HTTP. Описание содержит список доступных служб и их действий. Для выполнения конкретного действия (например, открыть порт на роутере) инициатор отправляет SOAP-запрос по HTTP. Устройство выполняет действие и возвращает результат.

Применение

Основные сценарии использования UPnP:

  • Перенаправление портов (port forwarding) — автоматическое открытие портов на роутере для приложений, требующих входящих соединений: онлайн-игры, торрент-клиенты, видеонаблюдение, VoIP.
  • Обнаружение медиаустройств — поиск телевизоров, медиаплееров и аудиосистем в сети для передачи мультимедиа (реализовано в протоколе DLNA, построенном поверх UPnP).
  • Автоматическая настройка сетевых принтеров — обнаружение и установка драйверов без ручного ввода IP-адреса.
  • Интернет-шлюзы (IGD) — роутеры публикуют службу Internet Gateway Device, через которую приложения могут управлять перенаправлением портов и получать внешний IP-адрес.

Критика и безопасность

UPnP не предусматривает механизмов аутентификации: любое устройство в локальной сети может запрашивать описание и отправлять команды. Это создаёт ряд рисков:

  • Отсутствие авторизации — вредоносное приложение в сети может незаметно открывать порты на роутере, предоставляя удалённый доступ к внутренним устройствам.
  • Уязвимость SSDP — multicast-объявления могут использоваться для DDoS-атак (усиление трафика, направленного на уязвимый сервер), а также для разведки сети из интернета через отражённые запросы.
  • Сервисы UPnP-IGD в интернете — ряд исследований показывал, что миллионы роутеров по всему миру публикуют интерфейсы UPnP в глобальную сеть, что позволяет злоумышленникам управлять портами удалённо.

В ответ на эти проблемы появился альтернативный протокол NAT-PMP и его развитие PCP (Port Control Protocol), а также UPnP IGD v2 с ограниченной поддержкой проверки подлинности. Ряд экспертов рекомендует отключать UPnP на роутере, если автоматическое перенаправление портов не требуется, и использовать ручную настройку.

См. также

  • DLNA
  • SSDP
  • NAT-PMP
  • Internet Gateway Device

Источники

  • UPnP Forum / Open Connectivity Foundation — спецификации UPnP Device Architecture
  • RFC 6970 — Universal Plug and Play (UPnP) Internet Gateway Device Protocol
  • Miller, T. — «Unplugging UPnP: Universal Plug and Play — A Security Nightmare» (Black Hat, 2013)
  • Книга «Computer Networking: A Top-Down Approach» (Kurose, Ross) — раздел о протоколах обнаружения устройств
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru