Universal Plug and Play

Universal Plug and Play (UPnP) je sada síťových protokolů vyhlašovaných UPnP Forem. Cílem UPnP je umožnit jednoduché připojení periferních součástí počítače a zjednodušit zavádění sítí v domácnostech (sdílení dat, komunikace a zábava) i podnicích. UPnP toho dosahuje definováním a publikováním řídicích protokolů UPnP zařízení postavených na otevřených, na Internetu založených komunikačních standardech.

Termín UPnP je odvozen od plug-and-play, což je technologie pro automatickou konfiguraci hardwarových zařízení připojených k počítači.

Přehled

UPnP architektura[1] umožňuje peer-to-peer spojení počítačů, síťových zařízení a zařízení pro bezdrátovou komunikaci. Jedná se o distribuovanou otevřenou technologii založenou na standardech jako jsou TCP/IP, UDP, HTTP a XML.

UPnP architektura podporuje automatickou konfiguraci sítě. Zařízení kompatibilní s UPnP od libovolného výrobce se může dynamicky připojit k síti, obdržet IP adresu, na vyžádání oznámit své schopnosti a dozvědět se schopnosti ostatních zařízení v síti. DHCP a DNS servery jsou volitelné a jsou použity jen když jsou dostupné v síti. Zařízení mohou opustit síť automaticky bez zanechání nežádoucích stavových informací.

Další vlastnosti UPnP:

Nezávislosti sdělovacích prostředků a zařízení
UPnP technologie dokáže fungovat na mnoha mediích, která podporují IP (např. Ethernet, FireWire, IrDA, komunikace přes elektrické vedení, Bluetooth, Wi-Fi). Není potřeba žádný speciální ovladač zařízení, jsou používány společné protokoly.
Ovládání uživatelským rozhraním
UPnP architektura umožňuje ovládání zařízení přes uživatelské rozhraní a interaktivní použití přes webový prohlížeč
Nezávislost na operačním systému a programovacím jazyku
K vytvoření UPnP produktu může být použit každý operační systém a každý programovací jazyk. UPnP nespecifikuje ani nepřikazuje vzhled API aplikací běžících v ovládacích místech, výrobci OS mohou vytvořit API které jejich zákazníci potřebují.
Programové ovládání
UPnP také umožňuje konvenční programové řízení aplikace.
Rozšiřitelnost
Každý UPnP produkt může mít služby specifické pro zařízení nad rámec základní architektury.

Protokol

Adresování

Základem UPnP sítí je IP adresování. Každé zařízení musí mít DHCP klienta a hledat DHCP server když se poprvé připojí do sítě. Pokud není DHCP server dostupný, tak si musí jednotka zařízení přiřadit adresu sama. Pokud během DHCP transakce obdrží jednotka jméno (např. přes DNS), může toto jméno používat v komunikaci v podsíti.

Zjišťování (Discovery)

První krok po obdržení IP adresy je zjišťování ostatních zařízení na síti. Po připojení zařízení do sítě mu UPnP Discovery protokol umožní ohlásit své služby kontrolním bodům na síti. Podobně, pokud je přidán kontrolní bod, Discovery protokol mu umožní hledat na síti požadovaná zařízení. Základní prvek je v obou případech zpráva Discovery, obsahující několik základních specifik o daném zařízení či jeho službách, například jeho typ, identifikátor a ukazatel na detailnější informace. UPnP Discovery protokol je založen na SSDP (Simple Service Discovery Protocol) navrženém firmami Microsoft a Hewlett-Packard.

Popis (Description)

Dalším krokem UPnP je Popis. Poté, co kontrolní bod v předchozím kroku objeví zařízení, stále o něm nemá dostatek informací (o zařízení a jeho službách). Musí tedy získat popis zařízení z URL poskytnutého v Discovery zprávě. Popis zařízení je v UPnP poskytován ve formě XML a zahrnuje výrobní údaje jako například jméno a označení zařízení, sériové číslo, název výrobce a URL na jeho webové stránky, apod. Popis také zahrnuje seznam integrovaných zařízení a služeb, URL pro jejich ovládání. Ke každé službě je také poskytnut seznam příkazů či akcí na které služba reaguje, jejich parametry a proměnné, které určují stav služby.

Ovládání (Control)

Po obdržení popisu zařízení může kontrolní bod komunikovat se službami daného zařízení. Komunikace probíhá přes kontrolní zprávy, posílané na URL služby (poskytnuté v popisu). Zprávy jsou ve formě XML a používají SOAP (Simple Object Access Protocol). Po obdržení kontrolní zprávy služba vrací specifické hodnoty, případné účinky akce jsou vyjádřeny změnami stavových proměnných.

Upozornění o události (Event notification)

Popis služby zahrnuje seznam akcí na které služba reaguje a seznam proměnných které charakterizují stav služby. Služba zveřejňuje aktualizace pokud dojde ke změně některé z těchto proměnných a kontrolní bod může odebírat tyto aktualizované informace. Aktualizace probíhá posláním zprávy o události. Zpráva o události obsahuje název jedné nebo více stavových proměnných a jejich aktualizované hodnoty. Tyto zprávy jsou vyjádřeny v XML a jsou formátovány pomocí GENA (General Event Notification Architecture). Při prvním přihlášení kontrolního bodu je odeslána speciální inicializační zpráva, obsahující jména a hodnoty všech proměnných, sloužící k inicializaci stavu služby na straně kontrolního bodu. Pro podporu více kontrolních bodů je zasíláni zpráv navrženo tak, aby měl každý kontrolní bod stejný přehled o všech změnách. Každý z odběratelů zpráv dostává všechny zprávy o událostech a jsou mu zaslány zprávy o všech proměnných které se změnily.

Prezentace (Presentation)

Finálním krokem v UPnP je prezentace. Pokud má zařízení URL k prezentaci, může kontrolní bod získat stránku z této URL, zobrazit ji v prohlížeči a případně umožnit uživateli ovládat zařízeni, či zjistit jeho stav. Stupeň této prezentace závisí na možnostech daného zařízení a jeho prezentační stránky.

UPnP AV standard

UPnP AV je zkratka pro UPnP Audio a Video a je zahrnuta do skupiny UPnP standardů spravovaných DLNA (Digital Living Network Alliance), fórem výrobců a prodejců, kteří pracují v domácím zábavním průmyslu a nabízejí značku "DLNA CERTIFIED (Certifikováno DLNA) pro výrobky které dodržují doporučení pro interakci síťových zařízení vydané DLNA.

Členové DLNA fóra „sdílejí vizi spolupracující domácí sítě osobních počítačů, spotřební elektroniky a mobilních zařízení, vytvářející prostředí pro bezproblémové sdílení digitálních médií a služeb“. Zaměření DLNA spočívá ve vytvoření základu v podobě návodů a direktiv pro vývoj, založených na otevřených standardech. Dne 12. července 2006 oznámilo UPnP Fórum vydání zdokonalených AV specifikací, které představovala 2. verze UPnP AV specifikací.[2] Tato verze představila nové třídy MediaServer a MediaRender ve verzi 2.0, jejichž zdokonalení umožňovalo širší možnosti interakce mezi MediaServery a MediaRenderery od rozdílných výrobců.

UPnP AV komponenty

  • UPnP MediaServer DCP – UPnP server (zařízení typu master), který sdílí/přehrává data (audio/video/obrázky/soubory) UPnP klientům na síti.
  • UPnP MediaServer ControlPoint – UPnP klient (zařízení typu slave), který umí automaticky detekovat UPnP servery na síti a přehrát/stáhnout mediální/datové soubory umístěné na nalezených serverech.
  • UPnP MediaRenderer DCP – zařízení typu slave, sloužící k prezentaci obsahu UPnP serverů.
  • UPnP RenderingControl DCP – ovládá nastavení MediaRendereru (hlasitost, nastavení obrazu a další).
  • UPnP Remote User Interface (RUI) klient/server – posílá/přijímá příkazy mezi UPnP klientem a UPnP serverem (např. přehrát, zastavit, nahrávat a jiné).

NAT traversal

Jedno z řešení pro NAT traversal, nazvané IGD (Internet Gateway Device) Protokol, je implementováno přes UPnP. Mnoho routerů a firewallů se používá jako Internetové brány, umožňující jakémukoliv lokálnímu UPnP zařízení provádět množství akcí, zahrnující získání externí IP adresy zařízení, zjištění existujícího namapování portů a namapovat či odebrat port. Namapováním portu může UPnP zařízení za Internetovou bránou vytvořit tunel v bráně a umožnit externí adrese spojení s interním klientem.

Problémy s UPnP

Nedostatečná autentizace

UPnP protokol neimplementuje žádnou autentizaci, takže UPnP zařízení musí implementovat jejich vlastní autentizační mechanismy, nebo implementovat Device Security Service. Hodně UPnP zařízení však postrádá autentizační mechanismy a standardně předpokládá, že lokální systémy a jejich uživatelé jsou plně důvěryhodní. Routery a firewally na kterých běží UPnP IGD protokol, jsou napadnutelné, protože kostra IGD implementace opomíjí standardní autentizační metodu. Například programy vytvořené v Adobe Flash jsou schopné generování specifických HTTP dotazů. Router s implementací UPnP IGD protokolu pak může být pomocí těchto dotazů kontrolován škodlivými stránkami, stačí, aby uživatel s routerem, na kterém je povoleno UPnP, tyto stránky pouze navštívil. Kód vložený do Flashového objektu na stránce pak může bez vědomí uživatele provést následující akce:

  • přesměrování interních služeb (portů) na internetovou stranu routeru (např. vystavení počítače za Firewallem akcím z Internetu, například útokům)
  • přesměrování webového administračního rozhraní zařízení (např. routeru) na internetovou stranu routeru
  • přesměrování na jakýkoliv server na Internetu, umožňující útočníkovi napadnout daný server bez odhalení útočníkovy IP adresy
  • změnit nastavení DNS, umožňující oklamání oběti (např. místo stránky internetové banky je oběti zobrazena podvodná stránka)
  • změnit přihlašovací údaje k routeru/firewallu
  • změnit nastavení PPP
  • změnit IP adresu pro webové rozhraní zařízení
  • změnit nastavení Wi-Fi

Tyto problémy se vztahují pouze k UPnP vlastnosti Firewall-hole-punching. Nevztahují se k routerům nepodporujícím UPnP, či k routerům s vypnutou podporou UPnP. Také ne všechny routery mají věci jako nastavení DNS řešeno přes UPnP, protože implementace mnoha vlastností specifikace pro routery s podporou UPnP je volitelná.

Ostatní problémy

  • UPnP používá nestandardní HTTPU (HTTP využívající UDP místo TCP) a HTTPMU, popsané pouze v návrhu I-D (Internet-Draft), který vypršel v roce 2001
  • navzdory komplexním bezpečnostním protokolům UPnP postrádá autentizační protokol, proto má mnoho UPnP zařízení implicitně UPnP vypnuto jako formu bezpečnostního opatření

Vývoj do budoucna

Kandidátem na nástupce UPnP je DPWS (Devices Profile for Web Services), který řeší mnoho problémů UPnP. Klient DPWS je například součástí Windows Vista. Další alternativou je návrh NAT-PMP předložený firmou Apple v roce 2005.

UPnP 1.1 bylo na podzim roku 2008 ratifikováno UPnP fórem jako nástupce UPnP 1.0.

Reference

V tomto článku byl použit překlad textu z článku Universal_Plug_and_Play na anglické Wikipedii.

  1. Archivovaná kopie. www.upnp.org [online]. [cit. 2008-10-31]. Dostupné v archivu pořízeném dne 2007-09-28. 
  2. http://www.upnp.org/news/documents/AV2_PR20060712.pdf UPnP AV v2

Externí odkazy