Universaalne isehäälestumine

Allikas: Vikipeedia

Universal Plug and Play (UPnP) või ka universaalne isehäälestumine on tehnoloogia, mis võimaldab võrku ühendatud seadmetel (näiteks arvutid, Wi-Fi-seadmed, nutikad kodumasinad) automaatselt tuvastada üksteise olemasolu selles võrgus ning seejärel vahetada omavahel käske ja andmeid.[1] UPnP lihtsustab lõppkasutaja jaoks oluliselt koduvõrku seadmete lisamist – kogu häälestusprotsess on automaatne ning seade on kohe kasutusvalmis. Peamiselt ongi see tehnoloogia mõeldud kasutamiseks väiksemates kohtvõrkudes.


Ajalugu[muuda | redigeeri lähteteksti]

Xbox – üks esimesi UPnP-seadmeid

UPnP standardi 1.0 andis välja 2000. aastal organisatsioon UPnP Forum.[2] Versioon 1.1 avaldati 2008. aastal – see lisas IPv6 toe ning tegi muid väiksemaid parandusi.[3] UPnP Forum moodustati 1999. aasta lõpul, 2013. aasta lõpu seisuga üle 1000 liikme kõikjalt maailmast – juhtivad ettevõtted arvutitehnika, printerite, võrgutehnoloogia, koduelektroonika jm vallas.[1] Foorum tegeleb aktiivselt UPnP-tehnoloogia edasi arendamisega. Seadmete sertifitseerimisega tegeleb foorumi liikmetest moodustatud UPnP Implementers Corporation (UIC).

UPnP on varasema Plug and Play tehnoloogia laiendus võrku ühendatud seadmetele. UPnP-ühilduv seade ühendub automaatselt võrguga, saab IP-aadressi, annab teistele seadmetele teada oma olemasolust ning pakutavatest teenustest, saab ise teavet teiste seadmete kohta. Samuti saab seadet võrgust eemaldada nii, et teised seadmed sellest aru saavad. Kui võrgus asuvad DHCP- ja/või DNS-serverid, kasutatakse nende teenuseid, aga nende olemasolu ei ole kohustuslik.[4]


UPnP põhimõtted [1][muuda | redigeeri lähteteksti]

Avalikud internetiprotokollid

UPnP-arhitektuuris kasutatakse: IP, TCP, UDP, HTTP, XML.

Sõltumatus seadmetest ja võrgutehnoloogiast

UPnP töötab kõigi tehnoloogiatega, mis toetavad Internetiprotokolli: Wi-Fi, Ethernet, Firewire jne.

Sõltumatus kasutatavast platvormist

UPnP ei piira operatsioonisüsteemi või programmeerimiskeele valikut.

Kontroll kasutajaliidese üle

UPnP võimaldab tootjal kujundada endale sobiv kasutajaliides ning lubada seda kasutada brauseri vahendusel.

Laiendatavus

Tootja saab lisaks UPnP-standardiga defineeritud teenustele lisada endapoolset lisafunktsionaalsust.


Näited rakendustest [1][muuda | redigeeri lähteteksti]

Digitaalne meelelahutus

Koduvõrgus saab muusikat, filme ja pilte kasutada suvalise sobiva seadmega hoolimata sellest, kus reaalselt andmed asuvad. Samuti hoolitseb UPnP selle eest, et mängukonsooliga Interneti vahendusel multiplayer mängu mängides oleksid sobivad pordid ruuteris avatud.

Nutikad (kodu)masinad

Võrguühendusega sensorid, külmkapid, küttesüsteemid jne suudavad edastada infot kesksesse kontrollsüsteemi (tavaliselt arvuti) ning ellu viia keskusest tulnud juhtsignaale.


UPnP-arhitektuur[muuda | redigeeri lähteteksti]

Järgnev kirjeldus käib versiooni 1.1 kohta[4], aga on üldjoontes sama ka versioon 1.0 jaoks.[5]

UPnP-arhitektuuris (UPnP Device Architecture, UDA) eristatakse kahte tüüpi seadmeid:

  • juhtimispunkt (ingl. control point) – seade, mis saadab juhitava(te)le seadme(te)le käske ja päringuid. Enamasti tarkvaraline (töötab arvutis).
  • juhitav seade (ka lihtsalt "seade") – täidab juhtimispunktilt tulnud päringuid. Enamasti riistvaraline.

Võrgus võib korraga olla mitu juhtimispunkti kui ka juhitavat seadet.

UPnP osadeks on adresseerimine, avastamine, kirjeldus, juhtimine, sündmuste teavitus (ingl. eventing) ja esitus. Avastamine (discovery) kasutab andmete transpordiks UDP-protokolli. Ülejäänud osad kasutavad HTTP-protokolli. Seadme ühendamisel võrku peab esmalt toimuma järjekorras: adresseerimine, avastamine ja kirjeldus. Seejärel võivad ülejäänud osad (juhtimine, sündmuste teavitus ning esitlus) juba aset leida paralleelselt ning üksteisest sõltumatult.

Adresseerimine[muuda | redigeeri lähteteksti]

UPnP toimimise eelduseks on, et iga seade ja juhtimispunkt saab endale IP-aadressi. Mõlemal peab olema DHCP klientrakendus ning võrku ühendades peavad nad esmalt otsima DHCP-serverit. Kui võrgus on DHCP-server olemas, peavad seadmed kasutama serveri määratud IP-aadressi. Kui DHCP-server puudub, peab iga seade endale ise määrama IP-aadressi, kasutades selleks Auto IP protsessi. Kui seadmele määrati DHCP-tehingu käigus domeeninimi, siis peaks seade kasutama järgnevates operatsioonides seda nime.

Avastamine[muuda | redigeeri lähteteksti]

Juhitava seadme lisamisel võrku annab ta oma võimalikest teenustest teada kõikidele juhtimispunktidele. Analoogselt, kui juhtimispunkt lisatakse võrku, siis saab ta otsida võrgust teda huvitavat teenust pakkuvaid seadmeid. Selles faasis vahetatavad teated on lühikesed, sisaldades ainult seadme või teenuse peamist infot (liik, nimi, URL täpsema kirjelduse asukohale). UPnP kasutatav avastamisprotokoll on SSDP (Simple Service Discovery Protocol).

Kirjeldus[muuda | redigeeri lähteteksti]

Peale seda, kui eelmise punkti käigus on juhtimispunkt teada saanud juhitava seadme olemasolust võrgus, on tal vaja selle seadme võimaluste kohta rohkem informatsiooni. Selle info saab juhtimispunkt seadme poolt avastamise teates kirjeldatud URL-ilt. Seadme kirjeldus on XML-vormingus dokument, mis on jagatud kaheks loogiliseks osaks: seadme kirjeldus (füüsiliste ja loogiliste konteinerite kirjeldus) ja iga pakutava teenuse jaoks teenuse kirjeldus (missugust võimekust seade võimaldab kasutada).
Seadme kirjeldus sisaldab täpset tootja ning mudeli infot, aga lisaks ka seadme pakutavate teenuste nimekirja ning iga teenuse jaoks: teenuse liik, teenuse nimi, URL teenuse kirjelduse jaoks, URL juhtimise jaoks, URL sündmuste teavituse jaoks, URL esitluse jaoks.
Teenuse kirjeldus sisaldab käskude nimekirja, millele teenus reageerib, ning parameetreid iga käsu tarbeks. Samuti teenuse seisundimuutujate nimekirja. Seisundimuutujate väärtused mingil ajahetkel kirjeldavad teenuse seisundit sellel ajahetkel.

Juhtimine[muuda | redigeeri lähteteksti]

Kui juhtimispunkt on saanud informatsiooni seadme ning selle pakutavate teenuste kohta, on tal võimalik neid teenuseid välja kutsuda ning teenustele juhtimiskäske saata – samuti saada tagasisidet käsu täitmise kohta. Seadme juhtimiseks peab juhtimispunkt saatma sobival kujul teate seadme kirjelduses (eelmine punkt) toodud URL-il. Sarnaselt saab juhtimispunkt küsida seadmelt seisundimuutujate hetkeväärtusi. Teated peavad olema vormistatud XML-dokumendina kasutades SOAP- (Simple Object Access Protocol) protokolli.

Sündmuste teavitus[muuda | redigeeri lähteteksti]

Seadme kirjelduses oli ära toodud teenused, mida seade pakub ning teenuste hetkeseisu kirjeldavad seisundimuutujad. Kui mõne muutuja väärtus muutub (näiteks juhtimiskäsu täitmise tulemusena), siis teavitab seade sellest automaatselt kõiki juhtimispunkte, mis on tellinud temalt vastava info. Tellimiseks peab juhtimispunkt eelnevalt saatma tellimisteate, samuti peab ta tellimust vajadusel uuendama (seade informeeris eelnevalt, kui kaua tellimus kestab). Kõikidele tellijatele saadetakse info kõikide seisundimuutujate muutuse kohta (s.t ei saa tellida ainult mõne muutuja kohta infot). Muutuste infot edastavad teated sisaldavad uue väärtuse saanud muutujate nimesid ning väärtusi.

Esitlus[muuda | redigeeri lähteteksti]

Kui seadme kirjelduses oli toodud URL kirjelduse jaoks, siis saab juhtimispunkt sellel aadressil asuva lehe kuvada brauseris ning sõltuvalt lehel kirjeldatud funktsionaalsusest ka lubada kasutajal seadet juhtida selle lehe kaudu. Mingeid standardeid ega reegleid siinkohal sellele lehele ei ole (peale selle, et peab kasutama HTML-i), seega on see tootja suva, missugust funktsionaalsust ta lubab kasutada.


Protokollipinu[muuda | redigeeri lähteteksti]

UPnP protokollipinu (ingl. Protocol stack)
Avastamine Kirjeldus Juhtimine Sündmuste teavitus Esitlus
UPnP-seadme valmistaja poolne spetsifikatsioon
UPnP Forum poolne spetsifikatsioon
UPnP-arhitektuuri spetsifikatsioon [4]
SSDP HTTP SOAP GENA HTTP
HTTP
UDP TCP
IP


Seadmejuhtimisprotokollid[muuda | redigeeri lähteteksti]

Eri liiki seadmete jaoks on välja töötatud ka täpsemad standardid, mida tootjad võivad oma seadmetes kasutada.[6] Kaetud on audio/video esitus, koduautomaatika, ruuterid, printerid, kaugjuhtimine, skannerid, sensorid ja telefonid.


Probleemid[muuda | redigeeri lähteteksti]

UPnP spetsifikatsioon [4] ise ei sisalda autentimise protseduuri (igal võrku lisatud seadmel on õigus saata teateid teistele ning paluda neilt mingi juhtimiskäsu täitmist). Seega peavad seadmete valmistajad ise implementeerima autentimise reeglid või siis kasutama UPnP Forumi poolt kirjeldatud teenust Device Security Service.[7] Kahjuks tootjad tihtipeale aga ei ole rakendanud mingisugust autentimisprotokolli ning seadmed eeldavad, et ülejäänud samas võrgus asuvad seadmed on täiesti usaldusväärsed.[8] [9]

2013. aasta jaanuaris avaldas Bostonis asuv ettevõte Rapid7 pool aastat kestnud uuringu tulemused.[10] Nad skannisid üle maailma arvutivõrkudes asuvaid UPnP-võimalusega seadmeid (peamiselt siiski ruutereid) ning tuvastasid nendes seadmetes turvavigu (UPnP-ga seotud). Ligi 2% (81 miljonit seadet, 6900 mudelit) kõikidest seadmetest oli internetist (s.t siis väljaspoolt kohtvõrku) tulevatele UPnP-teadetele avatud. Samuti leiti mitmeid muid väiksemaid ja suuremaid probleeme, mis kujutavad seadmete omanikele suurt turvariski.[8]


Vaata ka[muuda | redigeeri lähteteksti]

XML
NAT


Viited[muuda | redigeeri lähteteksti]

  1. 1,0 1,1 1,2 1,3 What is UPnP?. UPnP Forum. Tsiteeritud: 2013-12-10.
  2. Presentation: UPnP Forum Public Overview 2011. Tsiteeritud: 2013-12-11.
  3. UPnP Architecture Documents. Tsiteeritud: 2013-12-11.
  4. 4,0 4,1 4,2 4,3 UPnP Device Architecture version 1.1. Tsiteeritud: 2013-12-10.
  5. UPnP Device Architecture version 1.0. Tsiteeritud: 2013-12-10.
  6. Standards: Device Control Protocols. Tsiteeritud: 2013-12-11.
  7. Device Security and Security Console V 1.0. Tsiteeritud: 2013-12-11.
  8. 8,0 8,1 Whitepaper: Security Flaws in Universal Plug and Play: Unplug, Don't Play. Tsiteeritud: 2013-12-11.
  9. Shorewall and UPnP. Tsiteeritud: 2013-12-11.
  10. Blog: Security Flaws in Universal Plug and Play: Unplug, Don't Play. Tsiteeritud: 2013-12-11.


Välislingid[muuda | redigeeri lähteteksti]

UPnP sertiftseeritud seadmete nimekiri
Security Now 389: Unplug UPnP
Ruuteri turvalise test (kas UPnP lahti välisvõrgule)
http://www.dlna.org/