Simple Service Discovery Protocol
Простой протокол обнаружения сервисов (англ. Simple Service Discovery Protocol, SSDP) — сетевой протокол, основанный на наборе протоколов Интернета, служащий для объявления и обнаружения сетевых сервисов. SSDP позволяет обнаруживать сервисы, не требуя специальных механизмов статической конфигурации или действий со стороны серверов, таких как DHCP или DNS. Данный протокол является основой протокола обнаружения Universal plug-and-play (UPnP) и предназначен для использования в домашних сетях и в малом бизнесе. Описание протокола SSDP, написанное компаниями Microsoft и Hewlett-Packard, подавалось в 1999 году в качестве черновика интернет-стандарта (Internet draft) в IETF. Предложение истекло в апреле 2000[1], но SSDP был включен в состав стека протоколов UPnP и реализация SSDP попала в стандарт UPnP.[2][3] SSDP описывает механизм, согласно которому сетевые клиенты могут обнаружить различные сетевые сервисы. Клиенты используют SSDP без предварительной конфигурации. SSDP поддерживает обнаружение при помощи мультикаста, уведомления от серверов и маршрутизацию. Данная служба включает обнаружение UPnP-устройств в домашней сети. Например, телевизор с поддержкой DLNA/UPNP находит медиасерверы в локальной сети с использованием этого протокола. Домашние маршрутизаторы обнаруживаются компьютерами, как правило, также с помощью SSDP (для отображении информации о маршрутизаторах и медиасерверах в «Сетевом окружении» эти устройства также должны поддерживать протокол HTTP, так как SSDP сообщает устройствам http-ссылку на страницу управления устройством). Транспортный протокол и адресацияПротокол SSDP представляет собой обмен текстовыми сообщениями с форматированием XML, он основан на HTTPU (от англ. HTTP over UDP — вариант HTTP, в котором для передачи сообщений используются датаграммы UDP). Сервисы анонсируют себя отправкой сообщений на выделенные мультикаст-адреса на порт UDP/1900. В сетях IPv4 используется мультикаст-адрес 239.255.255.250[4], а в IPv6 — ff02::c, ff05::c, … (формат адреса: ff0X::c, где X выбирается в зависимости от типа анонса)[5][6]:
В дополнение к этому разные реализации могут использовать специальный мультикастовый адрес источника, полученный от локального префикса маршрутизации IPv6, с групповым идентификатором C (десятичное число 12). В протоколе SSDP используется HTTP-метод NOTIFY для анонсирования появления или удаления сервисов (или информации о присутствии) для всех участников мультикаст-группы. Клиентское устройство, желающие узнать о появлении сервисов в сети, использует запрос с методом M-SEARCH, ответы на который присылаются отправителю запроса на его собственный адрес (unicast). В операционных системах семейства Windows для нормального функционирования «Службы обнаружения SSDP» никаких других служб не требуется. От работы этого сервиса зависит «Узел универсальных PnP-устройств» (англ. Universal Plug and Play Device Host). Реализации SSDP IPv6 от Microsoft (в Windows Media Player и в сервере) используют адреса типа «link-local». Для уведомлений о событиях и подписки используется порт 2869 (ранее также использовался порт 5000)[7]. Использование в DDoS-атакахВ 2014 неожиданно обнаружили, что SSDP использовался в DDoS-атаках типа «Атака отражения и усиления при помощи SSDP» (SSDP reflection attack with amplification). Многие устройства, в том числе бытовые маршрутизаторы, имели изъян в программном обеспечении UPnP, который позволял атакующему направлять ответы с порта 1900 на произвольный адрес в сети Интернет. В случае использования ботнета из многих тысяч подобных устройств атакующий мог создать большой поток пакетов, достаточных для занятия пропускной полосы и насыщения каналов передачи данных атакуемой площадки, что приводит к отказу в обслуживании для обычных пользователей[8][9][10]. См. такжеСсылки
Примечания
|