Universaalne isehäälestumine

Universaalne isehäälestumine (Universal Plug and Play; UPnP) 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. 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

UPnP standardi 1.0 andis välja 2000. aastal organisatsioon UPnP Forum. Versioon 1.1 avaldati 2008. aastal – sellega lisati IPv6 tugi ja tehti muid väiksemaid parandusi. 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. Foorum tegeleb aktiivselt UPnP-tehnoloogia edasi arendamisega. Seadmete sertifitseerimisega tegeleb foorumi liikmetest moodustatud UPnP Implementers Corporation (UIC).
UPnP on varasema isehäälestumistehnoloogia 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.

Adresseerimine

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

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).

Juhtimine

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

Seadme kirjelduses on kirjas 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 ja väärtusi.

Esitlus

Kui seadme kirjelduses oli toodud URL kirjelduse jaoks, siis saab juhtimispunkt sellel aadressil asuva lehe kuvada brauseris ning sõltuvalt lehel kirjeldatud funktsioonidest lubada ka 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, missuguseid funktsioone ta lubab kasutada.

Seadmejuhtimisprotokollid

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

Probleemid

UPnP spetsifikatsioon  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 kasutama UPnP Forumi kirjeldatud teenust Device Security Service.
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.
2013. aasta jaanuaris avaldas Bostonis asuv ettevõte Rapid7 pool aastat kestnud uuringu tulemused. 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 väljastpoolt kohtvõrku) tulevatele UPnP-teadetele avatud. Samuti leiti muid väiksemaid ja suuremaid probleeme, mis kujutavad seadmete omanikele suurt turvariski.