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, targad kodumasinad) automaatselt tuvastada teineteise olemasolu selles võrgus ning seejärel vahetada omavahel käsklusi ja andmeid.[1] UPnP lihtsustab lõppkasutaja jaoks oluliselt koduvõrku seadmete lisamist - kogu häälestamise protsess on automaatne ning seade on kohe valmis kasutamiseks. 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.a. organisatsioon UPnP Forum.[2] Versioon 1.1 avaldati 2008.a. - see lisas toetuse IPv6'e ning tegi muid väiksemaid parandusi.[3] UPnP Forum moodustati 1999.a. lõpul, 2013.a 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 interneti protokollid

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

Sõltumatus seadmetest ning 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 standardi poolt 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 ruuteris sobivad pordid avatud oleksid.

Targad (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 käsklusi ning päringuid juhitava(te)le seadme(te)le. Enamasti tarkvaraline (jookseb 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) ning esitlus. Avastamine (discovery) kasutab andmete transpordiks UDP protokolli. Ülejäänud osad kasutavad HTTP protokolli. Seadme ühendamisel võrku peab esmalt toimuma järjekorras: adresseerimine, avastamine ning 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 klient ning võrku ühendades peavad nad esmalt otsima DHCP serverit. Kui võrgus on DHCP server olemas, peavad seadmed kasutama serveri poolt 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 sõnumid on lühikesed, sisaldades ainult seadme või teenuse peamist infot (liik, nimi, URL täpsema kirjelduse asukohale). UPnP poolt kasutatav avastamise protokoll 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 sõnumis kirjeldatud URL'lt. Seadme kirjeldus on XML formaadis 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 poolt 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 poolt 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 sõnumi seadme kirjelduses (eelmine punkt) toodud URL'le. Sarnaselt saab juhtimispunkt küsida seadmelt seisundimuutujate hetkeväärtusi. Sõnumid 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 tellimissõnumi, 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 sõnumid 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


Seadme juhtimise protokollid[muuda | redigeeri lähteteksti]

Erinevat liiki seadmete jaoks on välja töötatud ka täpsemad standardid, mida tootjad võivad oma seadmetes kasutada.[6] Kaetud on audio/video esitlus, kodu automaatika, ruuterid, printerid, kaugjuhtimine, skännerid, sensorid ja telefonid.


Probleemid[muuda | redigeeri lähteteksti]

UPnP spetsifikatsioon [4] ise ei sisalda autentimise protseduuri (igal võrku lisatud seadmel on õigus saata sõnumeid 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 autentimise protokolli ning seadmed eeldavad, et ülejäänud samas võrgus asuvad seadmed on täiesti usaldusväärsed.[8] [9]

2013.a. jaanuaris avaldas Bostonis asuv ettevõte Rapid7 pool aastat kestnud uurimuse tulemused.[10] Nad skanneerisid üle maailma arvutivõrkudes asuvaid UPnP võimekusega seadmeid (peamiselt siiski ruutereid) ning tuvastasid nende seadmetes asuvaid turvavigu (UPnP'ga seotud). Ligi 2% (81 miljonit seadet, 6900 erinevat mudelit) kõikidest seadmetest olid avatud internetist (s.t. siis väljaspoolt kohtvõrku) tulevatele UPnP sõnumitele. Samuti leiti mitmeid muid väiksemaid ja suuremaid probleeme, mis kujutavad suurt turvariski seadmete omanikele.[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/