Universal Plug and Play

редактировать

Universal Plug and Play (UPnP ) - это набор сетевых протоколов, которые позволяют устройства, такие как персональные компьютеры, принтеры, интернет-шлюзы, точки доступа Wi-Fi и мобильные устройства, чтобы беспрепятственно обнаруживать присутствие друг друга в сети и устанавливать функциональные сетевые службы для обмена данными, связи и развлечений. UPnP предназначен в первую очередь для жилых сетей без устройств корпоративного класса.

Протоколы UPnP продвигались форумом UPnP - инициативой компьютерной индустрии, призванной обеспечить простое и надежное подключение к автономным устройствам и персональным компьютерам от многих различных поставщиков. Форум состоял из более чем восьмисот поставщиков, занимающихся всем, от бытовой электроники до сетевых вычислений. С 2016 года все усилия по UPnP находятся под управлением Open Connectivity Foundation (OCF).

UPnP предполагает, что сеть использует Интернет-протокол (IP), а затем использует HTTP поверх IP для предоставления описания устройства / службы, действий, передачи данных и событий. Запросы на поиск устройств и рекламные объявления поддерживаются запуском HTTP поверх UDP (порт 1900) с использованием многоадресной рассылки (известной как HTTPMU). Ответы на поисковые запросы также отправляются через UDP, но вместо этого отправляются с использованием одноадресной рассылки (известной как HTTPU).

Концептуально UPnP расширяет plug and play - технологию динамического подключения устройств непосредственно к компьютеру - до сетей с нулевой конфигурацией для жилых и SOHO беспроводных сетей. Устройства UPnP работают по принципу «включай и работай», поскольку при подключении к сети они автоматически устанавливают рабочие конфигурации с другими устройствами.

UPnP обычно считается непригодным для развертывания в бизнес-среде по причинам экономии, сложности и согласованности: основа многоадресной рассылки делает его болтливым, потребляя слишком много сетевых ресурсов в сетях с большим количеством устройств; упрощенные средства управления доступом плохо подходят для сложных сред; и он не обеспечивает унифицированный синтаксис конфигурации, такой как среды CLI Cisco IOS или JUNOS.

Содержание

  • 1 Обзор
  • 2 Протокол
    • 2.1 Адресация
    • 2.2 Обнаружение
    • 2.3 Описание
    • 2.4 Управление
    • 2.5 Уведомление о событии
    • 2.6 Презентация
  • 3 UPnP Стандарты AV
  • 4 UPnP AV-компоненты
    • 4.1 Медиа-сервер
    • 4.2 Другие компоненты
  • 5 Обход NAT
  • 6 Проблемы с UPnP
    • 6.1 Аутентификация
    • 6.2 Доступ из Интернета
    • 6.3 Отслеживание IGMP и надежность
    • 6.4 Уязвимость обратного вызова
  • 7 Будущие разработки
  • 8 См. Также
  • 9 Ссылки
  • 10 Источники
  • 11 Внешние ссылки

Обзор

Архитектура UPnP позволяет объединять в сеть бытовую электронику, мобильные устройства, персональные компьютеры и объединенные в сеть бытовые устройства. Это распределенный протокол с открытой архитектурой,, основанный на установленных стандартах, таких как Internet Protocol Suite (TCP / IP), HTTP, XML <27.>и SOAP. Контрольные точки UPnP (CP) - это устройства, которые используют протоколы UPnP для управления устройствами (CD), управляемыми UPnP.

Архитектура UPnP поддерживает сеть с нулевой конфигурацией. UPnP-совместимое устройство от любого поставщика может динамически подключаться к сети, получать IP-адрес, объявлять свое имя, рекламировать или передавать свои возможности по запросу, а также узнавать о присутствии и возможностях других устройств. Протокол динамической конфигурации хоста (DHCP) и Серверы системы доменных имен (DNS) не являются обязательными и используются только в том случае, если они доступны в сети. Устройства могут автоматически отключаться от сети, не оставляя информации состояние.

UPnP был опубликован как международный стандарт , состоящий из 73 частей,, ISO / IEC 29341, в декабре 2008 года.

Другие функции UPnP включают:

Носители и устройства независимость
Технология UPnP может работать на многих носителях, поддерживающих IP, включая Ethernet, FireWire, IR (IrDA ), домашнюю проводку (G.hn ) и RF (Bluetooth, Wi-Fi ). Никакой специальной поддержки драйвера устройства не требуется; Вместо этого используются общие сетевые протоколы.
Пользовательский интерфейс (UI) Элемент управления
Опционально, архитектура UPnP позволяет устройствам представлять пользовательский интерфейс через веб-браузер (см. Презентация ниже).
Операционная система и язык программирования независимость
Для создания продуктов UPnP можно использовать любую операционную систему и любой язык программирования. Стеки UPnP доступны для большинства платформ и операционных систем как в закрытой, так и в открытой форме.
Расширяемость
Каждый продукт UPnP может иметь службы для конкретных устройств, расположенные поверх базовой архитектуры. В дополнение к объединению сервисов, определенных UPnP Forum различными способами, поставщики могут определять свои собственные устройства и типы сервисов, а также могут расширять стандартные устройства и сервисы с помощью действий, определенных поставщиком, переменных состояния, элементов структуры данных и значений переменных.

Протокол

UPnP использует общие Интернет технологии. Предполагается, что в сети должен работать Интернет-протокол (IP), а затем используются HTTP, SOAP и XML поверх IP, чтобы для предоставления описания устройства / услуги, действий, передачи данных и событий. Запросы на поиск устройств и рекламные объявления поддерживаются запуском HTTP поверх UDP с использованием многоадресной передачи (известной как HTTPMU). Ответы на поисковые запросы также отправляются через UDP, но вместо этого отправляются с использованием одноадресной передачи (известной как HTTPU). UPnP использует UDP из-за меньших накладных расходов, поскольку не требует подтверждения полученных данных и повторной передачи поврежденных пакетов. HTTPU и HTTPMU изначально были представлены как Internet Draft, но срок его действия истек в 2001 году; с тех пор эти спецификации были интегрированы в фактические спецификации UPnP.

UPnP использует порт UDP 1900, и все используемые порты TCP получены из сообщений активности и ответа SSDP.

Адресация

Основой сети UPnP является IP-адресация. Каждое устройство должно реализовывать DHCP-клиент и искать DHCP-сервер при первом подключении устройства к сети. Если DHCP-сервер недоступен, устройство должно присвоить себе адрес. Процесс, с помощью которого устройство UPnP назначает себе адрес, известен в архитектуре устройства UPnP как AutoIP. В версии 1.0 архитектуры устройства UPnP AutoIP определяется в самой спецификации; в версии 1.1 архитектуры устройства UPnP, AutoIP ссылается на IETF RFC 3927. Если во время транзакции DHCP устройство получает доменное имя, например, через DNS-сервер или через него, устройство должно использовать это имя в последующих сетевых операциях; в противном случае устройство должно использовать свой IP-адрес.

Обнаружение

После того, как устройство установило IP-адрес, следующим шагом в сети UPnP является обнаружение. Протокол обнаружения UPnP известен как протокол обнаружения простых служб (SSDP). Когда устройство добавляется в сеть, SSDP позволяет этому устройству рекламировать свои услуги для контрольных точек в сети. Это достигается путем отправки сообщений об активности SSDP. Когда контрольная точка добавляется в сеть, SSDP позволяет этой контрольной точке активно искать интересующие устройства в сети или пассивно прослушивать сообщения SSDP об активности устройства. Основной обмен - это сообщение об обнаружении, содержащее некоторые важные сведения об устройстве или одной из его услуг, например, его тип, идентификатор и указатель (сетевое местоположение) на более подробную информацию.

Описание

После того, как контрольная точка обнаружила устройство, контрольная точка все еще очень мало знает об устройстве. Чтобы контрольная точка могла узнать больше об устройстве и его возможностях или взаимодействовать с устройством, контрольная точка должна получить описание устройства из местоположения (URL ), предоставленного устройством в сообщении об обнаружении. Описание устройства UPnP выражается в XML и включает специфичную для поставщика информацию о производителе, такую ​​как название модели и номер, серийный номер, название производителя, (презентационные) URL-адреса для конкретных поставщиков веб-сайтов. и т. д. Описание также включает список любых встроенных сервисов. Для каждой службы в документе «Описание устройства» перечислены URL-адреса для управления, событий и описания службы. Каждое описание службы включает список команд или действий, на которые служба отвечает, и параметры или аргументы для каждого действия; описание услуги также включает список переменных ; эти переменные моделируют состояние службы во время времени выполнения и описываются в терминах их типа данных, диапазона и характеристик событий.

Control

Получив описание устройства, точка управления может отправлять действия в службу устройства. Для этого контрольная точка отправляет подходящее контрольное сообщение на контрольный URL-адрес для службы (указанный в описании устройства). Управляющие сообщения также выражаются в XML с использованием Simple Object Access Protocol (SOAP). Подобно вызову функции , служба возвращает любые значения, относящиеся к действию, в ответ на управляющее сообщение. Эффекты действия, если они есть, моделируются изменениями в переменных, которые описывают состояние выполнения службы.

Уведомление о событии

Другой возможностью сети UPnP является уведомление о событии или событие. Протокол уведомления о событиях, определенный в архитектуре устройства UPnP, известен как общая архитектура уведомления о событиях (GENA). Описание UPnP для службы включает список действий, на которые служба отвечает, и список переменных, которые моделируют состояние службы во время выполнения. Служба публикует обновления при изменении этих переменных, и точка управления может подписаться на получение этой информации. Сервис публикует обновления, отправляя сообщения о событиях. Сообщения о событиях содержат имена одной или нескольких переменных состояния и текущее значение этих переменных. Эти сообщения также выражаются в XML. Специальное начальное сообщение о событии отправляется при первой подписке контрольной точки; это сообщение о событии содержит имена и значения для всех согласованных переменных и позволяет подписчику инициализировать свою модель состояния службы. Для поддержки сценариев с несколькими контрольными точками обработка событий разработана таким образом, чтобы все контрольные точки были одинаково информированы о последствиях любого действия. Таким образом, всем подписчикам отправляются все сообщения о событиях, подписчики получают сообщения о событиях для всех «согласованных» переменных, которые изменились, а сообщения о событиях отправляются независимо от того, почему переменная состояния изменилась (либо в ответ на запрошенное действие, либо потому, что состояние службы моделирование изменено).

Презентация

Последний шаг в сети UPnP - это представление. Если у устройства есть URL-адрес для представления, то контрольная точка может получить страницу по этому URL-адресу, загрузить страницу в веб-браузер и, в зависимости от возможностей страницы, позволить пользователю управлять устройства и / или просмотреть статус устройства. Степень выполнения каждого из них зависит от конкретных возможностей страницы презентации и устройства.

Стандарты UPnP AV

Архитектура UPnP AV - это аудио и видео расширение UPnP, поддерживающее различные устройства, такие как телевизоры, видеомагнитофоны, проигрыватели CD / DVD / музыкальные автоматы, приставки, стереосистемы системы, MP3-плееры, фотоаппараты, видеокамеры, электронные фоторамки (EPF) и персональные компьютеры. Архитектура UPnP AV позволяет устройствам поддерживать различные типы форматов развлекательного контента, включая MPEG2, MPEG4, JPEG, MP3, Windows Media Audio (WMA), растровые изображения (BMP) и форматы NTSC, PAL или ATSC. Поддерживаются несколько типов протоколов передачи, включая IEEE 1394, HTTP, RTP и TCP / IP.

12 июля 2006 года UPnP Forum объявил о выпуске версии 2 спецификаций UPnP для аудио и видео с новыми Классы MediaServer (MS) версии 2.0 и MediaRenderer (MR) версии 2.0. Эти улучшения создаются путем добавления возможностей к классам устройств MediaServer и MediaRenderer, что обеспечивает более высокий уровень взаимодействия между продуктами различных производителей. Некоторые из первых устройств, соответствующих этим стандартам, продавались Philips под торговой маркой Streamium.

С 2006 года были опубликованы версии 3 и 4 протоколов управления аудио и видео UPnP. В марте 2013 года была опубликована обновленная спецификация архитектуры uPnP AV, включающая обновленные протоколы управления устройствами.

На стандарты UPnP AV ссылались в спецификациях, опубликованных другими организациями, включая Digital Living Network Alliance Руководство по совместимости сетевых устройств, Международная электротехническая комиссия IEC 62481-1 и Лаборатории кабельного телевидения OpenCable Протокол домашней сети.

Компоненты UPnP AV

Медиа-сервер

A UPnP AV-медиа-сервер - это UPnP-сервер («главное» устройство), который предоставляет информацию медиатеки и передает медиаданные (например, аудио / видео / изображение / файлы) в UPnP. клиенты в сети. Это компьютерная система или аналогичное цифровое устройство, которое хранит цифровые мультимедиа, такие как фотографии, фильмы или музыку, и делится ими с другими устройствами.

Медиа-серверы UPnP AV предоставляют услугу клиентским устройствам UPnP AV, так называемым контрольным точкам, для просмотра медиаконтента сервера и запрашивают медиа-сервер для доставки файла в точку управления для воспроизведения.

Медиа-серверы UPnP доступны для большинства операционных систем и многих аппаратных платформ. Медиа-серверы UPnP AV можно разделить на программные или аппаратные. Программные медиа-серверы UPnP AV могут работать на ПК. Аппаратные медиа-серверы UPnP AV могут работать на любых устройствах NAS или любом конкретном оборудовании для доставки мультимедиа, таком как DVR. По состоянию на май 2008 года было больше программных медиа-серверов UPnP AV, чем аппаратных серверов.

Другие компоненты

  • UPnP MediaServer ControlPoint - который является UPnP-клиентом («подчиненным» устройством), который может автоматически обнаруживать UPnP-серверы в сети для просмотра и потоковой передачи мультимедиа / данных. файлы из них.
  • UPnP MediaRenderer DCP - это «подчиненное» устройство, которое может отображать (воспроизводить) контент.
  • UPnP RenderingControl DCP - управлять настройками MediaRenderer; громкость, яркость, RGB, резкость и др.
  • UPnP Remote User Interface (RUI) клиент / сервер - который отправляет / принимает команды управления между UPnP-клиентом и UPnP-сервером по сети (например, запись, расписание, воспроизведение, пауза, остановка и т. д.).
    • Web4CE (CEA 2014) для UPnP Remote UI - стандарт CEA-2014, разработанный комитетом R7 Home Network Association Ассоциации бытовой электроники. Web -based Protocol и Framework для удаленного пользовательского интерфейса в UPnP сетях и Internet (Web4CE). Этот стандарт позволяет домашнему сетевому устройству с поддержкой UPnP предоставлять свой интерфейс (параметры отображения и управления) в качестве веб-страницы для отображения на любом другом устройстве, подключенном к домашней сети. Это означает, что можно управлять устройством домашней сети с помощью любого метода связи на основе веб-браузера для устройств CE в домашней сети UPnP с использованием Ethernet. и специальная версия HTML под названием CE-HTML.
  • QoS (Quality of Service) - важная (но не обязательная) служебная функция для использования с UPnP AV. (Аудио и видео). QoS (качество обслуживания) относится к механизмам управления, которые могут предоставлять разный приоритет разным пользователям или потокам данных или гарантировать определенный уровень производительности для потока данных в соответствии с запросами от прикладной программы. Поскольку UPnP AV в основном предназначен для доставки потокового мультимедиа, которое часто почти в реальном времени или аудио / видеоданные в реальном времени, которые критически важно доставлять в течение определенного времени или потока прерывается. QoS (качество обслуживания) гарантии особенно важны, если пропускная способность сети ограничена, например в общедоступных сетях, таких как Интернет.
    • QoS (качество обслуживания) для UPnP состоит из Приемное устройство (клиентская / внешняя) и Исходное устройство (серверная / внутренняя) служебные функции. С классами, такими как; Класс трафика, который указывает тип трафика в потоке трафика (например, аудио или видео). Идентификатор трафика (TID), который определяет пакеты данных как принадлежащие к уникальному потоку трафика. Спецификация трафика (TSPEC), которая содержит набор параметров, определяющих характеристики потока трафика (например, эксплуатационные требования и планирование). Поток трафика (TS), который является однонаправленным поток данных, который начинается на исходном устройстве и заканчивается на одном или нескольких приемных устройствах.
  • Удаленный доступ - определяет методы для подключения наборов устройств UPnP, которые не находятся в одном домене многоадресной рассылки.

NAT traversal

Одно решение для NAT traversal, называемое протоколом шлюза Интернет (протокол IGD), реализуется через UPnP. Многие маршрутизаторы и брандмауэры представляют себя как устройства интернет-шлюза, позволяя любой локальной точке управления UPnP выполнять различные действия, включая получение внешнего IP-адреса устройства, перечисление существующих сопоставлений портов, а также добавление или удаление сопоставлений портов. Добавляя сопоставление портов, UPnP-контроллер позади IGD может разрешить обход IGD от внешнего адреса к внутреннему клиенту.

Проблемы с UPnP

аутентификацией

Протокол UPnP по умолчанию не реализует никакой аутентификации, поэтому реализации устройства UPnP должны реализовывать дополнительное устройство Служба защиты или внедрите Службу безопасности устройств. Также существует нестандартное решение под названием UPnP-UP (Universal Plug and Play - User Profile), которое предлагает расширение, позволяющее использовать механизмы аутентификации и авторизации пользователей для устройств и приложений UPnP. Во многих реализациях устройств UPnP отсутствуют механизмы аутентификации, и по умолчанию предполагается, что локальные системы и их пользователи полностью заслуживают доверия.

Когда механизмы аутентификации не реализованы, маршрутизаторы и межсетевые экраны протокол UPnP IGD уязвим для атак. Например, программы Adobe Flash, работающие вне изолированной программной среды браузера (например, для этого требуется определенная версия Adobe Flash с подтвержденными проблемами безопасности), способны генерировать определенный тип HTTP запрос, который позволяет маршрутизатору, реализующему протокол UPnP IGD, контролироваться вредоносным веб-сайтом, когда кто-то с маршрутизатором с поддержкой UPnP просто посещает этот веб-сайт. Это относится только к функции «пробивание дыр в межсетевом экране» в UPnP ; он не применяется, если IGD не поддерживает UPnP или UPnP отключен в IGD. Кроме того, не все маршрутизаторы могут иметь такие вещи, как настройки DNS-сервера, измененные UPnP, потому что большая часть спецификации (включая конфигурацию хоста LAN) является необязательной для маршрутизаторов с поддержкой UPnP. В результате некоторые устройства UPnP поставляются с отключенным по умолчанию UPnP в качестве меры безопасности.

Доступ из Интернета

В 2011 году исследователь Даниэль Гарсиа разработал инструмент, предназначенный для использования уязвимости в некоторых стеках устройств UPnP IGD, которые разрешают запросы UPnP из Интернета. Инструмент был опубликован на DEFCON 19 и позволяет отображать запросы на внешние IP-адреса от устройства и внутренние IP-адреса за NAT. Проблема широко распространена по всему миру, при сканировании одновременно обнаруживаются миллионы уязвимых устройств.

В январе 2013 года охранная компания Rapid7 в Бостоне сообщила о шестимесячной исследовательской программе. Команда просканировала сигналы от устройств с поддержкой UPnP, объявляющих об их доступности для подключения к Интернету. На их запросы ответили около 6900 сетевых продуктов от 1500 компаний с 81 миллионом IP-адресов. 80% устройств - домашние роутеры; другие включают принтеры, веб-камеры и камеры наблюдения. Используя протокол UPnP, можно получить доступ и / или управлять многими из этих устройств.

В феврале 2013 года форум UPnP ответил в пресс-релизе, порекомендовав более свежие версии используемых стеков UPnP и улучшив программу сертификации, включив в нее проверки, чтобы избежать подобных проблем в дальнейшем.

Отслеживание IGMP и надежность

UPnP часто является единственным значимым многоадресным приложением, используемым в цифровых домашних сетях; поэтому неправильная конфигурация многоадресной сети или другие недостатки могут проявляться как проблемы UPnP, а не как основные проблемы сети.

Если IGMP Snooping включен на коммутаторе или, чаще, на беспроводном маршрутизаторе / коммутаторе, он будет мешать обнаружению устройств UPnP / DLNA (SSDP), если он неправильно или не полностью настроен (например, без активный запросчик или прокси-сервер IGMP), что делает UPnP ненадежным.

Типичные наблюдаемые сценарии включают сервер или клиент (например, Smart TV), появляющийся после включения, а затем исчезающий через несколько минут (часто 30 по умолчанию) из-за истечения срока членства в группе IGMP.

Уязвимость обратного вызова

8 июня 2020 года было объявлено еще об одном недостатке конструкции протокола. Получивший название «CallStranger» своим открывателем, он позволяет злоумышленнику нарушить механизм подписки на события и выполнить различные атаки: усиление запросов для использования в DDoS; перечисление; и кража данных.

OCF опубликовала исправление для спецификации протокола в апреле 2020 года, но поскольку многие устройства, на которых работает UPnP, нелегко обновить, CallStranger, вероятно, останется угрозой еще долгое время. CallStranger вызвал призывы к конечным пользователям отказаться от UPnP из-за неоднократных сбоев в безопасности его дизайна и реализации.

Будущие разработки

UPnP продолжает активно развиваться. Осенью 2008 года UPnP Forum ратифицировал преемника UPnP 1.0 Архитектура устройства UPnP 1.1. Стандарт Devices Profile for Web Services (DPWS) был кандидатом на замену UPnP, но UPnP 1.1 был выбран форумом UPnP.

Стандарт UPnP Internet Gateway Device (IGD) имеет службу WANIPConnection, которая содержит конкурирующее решение, известное как NAT-PMP, которое представляет собой проект IETF, представленный Apple Inc. в 2005 году. Однако NAT-PMP ориентирован только на обход GNAT. Версия 2 IGD стандартизирована.

См. Также

Ссылки

Источники

  • Голден Г. Ричард: Обнаружение сервисов и устройств: протоколы и программирование, McGraw-Hill Professional, ISBN 0- 07-137959-2
  • Майкл Джеронимо, Джек Вист: Пример проектирования UPnP: Руководство разработчика программного обеспечения по универсальному Plug and Play, Intel Press, ISBN 0-9717861-1-9

Внешние ссылки

Последняя правка сделана 2021-06-20 13:29:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте