Plug and Play universal - Universal Plug and Play

Universal Plug and Play ( UPnP ) este un set de protocoale de rețea care permit dispozitivelor conectate în rețea, precum computerele personale, imprimantele, gateway-urile de internet , punctele de acces Wi-Fi și dispozitivele mobile să descopere fără probleme prezența celuilalt în rețea și să stabilească servicii de rețea funcționale . UPnP este destinat în principal rețelelor rezidențiale fără dispozitive de clasă enterprise.

Protocoalele UPnP au fost promovate de Forumul UPnP, o inițiativă din industria computerelor pentru a permite conectivitate simplă și robustă la dispozitive independente și calculatoare personale de la mulți furnizori diferiți. Forumul a fost format din peste 800 de furnizori implicați în orice, de la electronice de larg consum până la calculul în rețea. Din 2016, toate eforturile UPnP au fost gestionate de Open Connectivity Foundation (OCF).

UPnP presupune că rețeaua rulează Internet Protocol (IP) și apoi utilizează HTTP , pe lângă IP, pentru a furniza descrierea dispozitivului / serviciului, acțiunile, transferul de date și notificarea evenimentelor . Cererile de căutare a dispozitivelor și reclamele sunt acceptate prin rularea HTTP pe partea de sus a UDP ( portul 1900) utilizând multicast (cunoscut sub numele de HTTPMU). Răspunsurile la cererile de căutare sunt, de asemenea, trimise prin UDP, dar în schimb sunt trimise utilizând unicast (cunoscut sub numele de HTTPU).

Conceptual, UPnP extinde plug and play - o tehnologie pentru atașarea dinamică a dispozitivelor direct la un computer - la rețea cu configurare zero pentru rețelele rezidențiale și fără fir SOHO . Dispozitivele UPnP sunt plug and play în care, atunci când sunt conectate la o rețea, stabilesc automat configurații de lucru cu alte dispozitive.

UPnP este considerat, în general, nepotrivit pentru implementarea în setări de afaceri din motive de economie, complexitate și consistență: fundația multicast îl face să vorbească, consumând prea multe resurse de rețea pe rețele cu o populație mare de dispozitive; controalele de acces simplificate nu corespund bine mediilor complexe; și nu oferă o sintaxă de configurație uniformă, cum ar fi mediile CLI ale Cisco IOS sau JUNOS.

Prezentare generală

Arhitectura UPnP permite conectarea de la dispozitiv la dispozitiv de electronice de larg consum , dispozitive mobile , computere personale și electrocasnice în rețea . Este un protocol de arhitectură deschisă distribuit, bazat pe standarde stabilite precum Internet Protocol Suite (TCP / IP), HTTP , XML și SOAP . Punctele de control UPnP (CP) sunt dispozitive care utilizează protocoale UPnP pentru a controla dispozitivele controlate UPnP (CD-uri).

Arhitectura UPnP acceptă rețea cu configurare zero. Un dispozitiv compatibil UPnP de la orice furnizor se poate alătura dinamic unei rețele, poate obține o adresă IP, își poate anunța numele, face publicitate sau transmite capacitățile sale la cerere și poate afla despre prezența și capacitățile altor dispozitive. Serverele Dynamic Host Configuration Protocol (DHCP) și serverele DNS ( Domain Name System ) sunt opționale și sunt utilizate numai dacă sunt disponibile în rețea. Dispozitivele se pot deconecta de la rețea automat fără a lăsa informații de stare .

UPnP a fost publicat ca un standard internațional de 73 de părți , ISO / IEC 29341, în decembrie 2008.

Alte caracteristici UPnP includ:

Independența mass-media și a dispozitivului
Tehnologia UPnP poate rula pe mai multe suporturi care acceptă IP, inclusiv Ethernet , FireWire , IR ( IrDA ), cablarea de acasă ( G.hn ) și RF ( Bluetooth , Wi-Fi ). Nu este necesară asistență specială pentru driverul de dispozitiv ; în schimb sunt utilizate protocoale de rețea comune.
Control interfață utilizator (UI)
Opțional , arhitectura UPnP permite dispozitivelor să prezinte o interfață de utilizator printr-un browser web (consultați prezentarea de mai jos).
Independența sistemului de operare și a limbajului de programare
Orice sistem de operare și orice limbaj de programare pot fi utilizate pentru a construi produse UPnP. Stack-urile UPnP sunt disponibile pentru majoritatea platformelor și sistemelor de operare, atât sub formă închisă, cât și sub formă de sursă deschisă.
Extensibilitate
Fiecare produs UPnP poate avea servicii specifice dispozitivelor stratificate pe partea superioară a arhitecturii de bază. Pe lângă combinarea serviciilor definite de UPnP Forum în diferite moduri, furnizorii își pot defini propriile tipuri de dispozitive și servicii și pot extinde dispozitive și servicii standard cu acțiuni definite de furnizor, variabile de stare, elemente ale structurii de date și valori variabile.

Protocol

UPnP utilizează tehnologii comune de internet . Presupune că rețeaua trebuie să ruleze Internet Protocol (IP) și apoi să folosească HTTP , SOAP și XML în plus față de IP, pentru a oferi descrierea dispozitivului / serviciului, acțiuni, transfer de date și evenimente. Cererile de căutare a dispozitivelor și reclamele sunt acceptate prin rularea HTTP pe partea de sus a UDP folosind multicast (cunoscut sub numele de HTTPMU). Răspunsurile la cererile de căutare sunt, de asemenea, trimise prin UDP , dar în schimb sunt trimise utilizând unicast (cunoscut sub numele de HTTPU). UPnP folosește UDP datorită cheltuielilor sale inferioare, care nu necesită confirmarea datelor primite și retransmiterea pachetelor corupte. HTTPU și HTTPMU au fost inițial trimise ca Internet Draft, dar au expirat în 2001; aceste specificații au fost integrate de atunci în specificațiile reale UPnP.

UPnP utilizează portul UDP 1900 și toate porturile TCP utilizate sunt derivate din mesajele SSDP active și de răspuns.

Adresare

Fundația pentru rețeaua UPnP este adresarea IP. Fiecare dispozitiv trebuie să implementeze un client DHCP și să caute un server DHCP atunci când dispozitivul este conectat pentru prima dată la rețea. Dacă nu este disponibil niciun server DHCP, dispozitivul trebuie să-și atribuie o adresă. Procesul prin care un dispozitiv UPnP își atribuie o adresă este cunoscut în arhitectura dispozitivului UPnP ca AutoIP . În UPnP Device Architecture Versiunea 1.0, AutoIP este definit în specificația însăși; în UPnP Device Architecture Versiunea 1.1, AutoIP face referință la IETF RFC 3927. Dacă în timpul tranzacției DHCP, dispozitivul obține un nume de domeniu, de exemplu, printr-un server DNS sau prin redirecționare DNS , dispozitivul ar trebui să utilizeze acest nume în operațiunile de rețea ulterioare; în caz contrar, dispozitivul ar trebui să-și folosească adresa IP.

Descoperire

Odată ce un dispozitiv a stabilit o adresă IP, următorul pas în rețeaua UPnP este descoperirea. Protocolul de descoperire UPnP este cunoscut sub numele de Simple Service Discovery Protocol (SSDP). Atunci când un dispozitiv este adăugat la rețea, SSDP permite dispozitivului respectiv să-și promoveze serviciile pentru a controla punctele din rețea. Acest lucru se realizează prin trimiterea de mesaje SSDP vii. Atunci când un punct de control este adăugat la rețea, SSDP permite acel punct de control să caute activ dispozitivele de interes din rețea sau să asculte pasiv mesajele SSDP active ale dispozitivelor. Schimbul fundamental este un mesaj de descoperire care conține câteva informații esențiale despre dispozitiv sau unul dintre serviciile sale, de exemplu, tipul său, identificatorul și un pointer (locația rețelei) către informații mai detaliate.

Descriere

După ce un punct de control a descoperit un dispozitiv, punctul de control încă știe foarte puțin despre dispozitiv. Pentru ca punctul de control să afle mai multe despre dispozitiv și capacitățile acestuia sau să interacționeze cu dispozitivul, punctul de control trebuie să recupereze descrierea dispozitivului din locația ( URL ) furnizată de dispozitiv în mesajul de descoperire. Descrierea dispozitivului UPnP este exprimată în XML și include informații specifice producătorului, precum numele și numărul modelului, numărul de serie , numele producătorului, adresele URL (de prezentare) către site-urile web specifice furnizorului, etc. Descrierea include, de asemenea, o listă a oricăror Servicii. Pentru fiecare serviciu, documentul Descriere dispozitiv listează adresele URL pentru control, evenimente și descrierea serviciului. Fiecare descriere a serviciului include o listă a comenzilor sau acțiunilor la care serviciul răspunde și parametrii sau argumentele pentru fiecare acțiune; descrierea pentru un serviciu include și o listă de variabile ; aceste variabile modelează starea serviciului în timpul rulării și sunt descrise în termeni de tipul de date, intervalul și caracteristicile evenimentului.

Control

După ce a recuperat o descriere a dispozitivului, punctul de control poate trimite acțiuni către serviciul unui dispozitiv. Pentru a face acest lucru, un punct de control trimite un mesaj de control adecvat către adresa URL de control pentru serviciu (furnizat în descrierea dispozitivului). Mesajele de control sunt, de asemenea, exprimate în XML folosind Protocolul de acces la obiecte simple (SOAP). La fel ca apelurile funcționale , serviciul returnează orice valoare specifică acțiunii ca răspuns la mesajul de control. Efectele acțiunii, dacă există, sunt modelate de modificări ale variabilelor care descriu starea de rulare a serviciului.

Notificare eveniment

O altă capacitate a rețelei UPnP este notificarea evenimentului sau evenimentarea . Protocolul de notificare a evenimentelor definit în Arhitectura dispozitivului UPnP este cunoscut sub numele de General Event Notification Architecture (GENA). O descriere UPnP pentru un serviciu include o listă de acțiuni la care serviciul răspunde și o listă de variabile care modelează starea serviciului în timpul rulării. Serviciul publică actualizări atunci când aceste variabile se schimbă, iar un punct de control se poate abona pentru a primi aceste informații. Serviciul publică actualizări prin trimiterea de mesaje de eveniment. Mesajele de eveniment conțin numele uneia sau mai multor variabile de stare și valoarea curentă a acelor variabile. Aceste mesaje sunt exprimate și în XML. Un mesaj special de eveniment inițial este trimis atunci când un punct de control se abonează pentru prima dată; acest mesaj de eveniment conține numele și valorile pentru toate variabilele evenimentate și permite abonatului să-și inițializeze modelul de stare a serviciului. Pentru a susține scenarii cu mai multe puncte de control, evenimentarea este concepută pentru a menține în mod egal toate punctele de control despre efectele oricărei acțiuni. Prin urmare, tuturor abonaților li se trimit toate mesajele de eveniment, abonații primesc mesaje de eveniment pentru toate variabilele „evenimentate” care s-au modificat, iar mesajele de eveniment sunt trimise indiferent de ce s-a modificat variabila de stare (fie ca răspuns la o acțiune solicitată, fie pentru că statul este serviciul se schimbă modelarea).

Prezentare

Ultimul pas în rețeaua UPnP este prezentarea. Dacă un dispozitiv are o adresă URL pentru prezentare, atunci punctul de control poate prelua o pagină din această adresă URL, poate încărca pagina într-un browser web și, în funcție de capacitățile paginii, permite unui utilizator să controleze dispozitivul și / sau să vizualizeze dispozitivul stare. Gradul în care fiecare dintre acestea poate fi realizat depinde de capacitățile specifice ale paginii și dispozitivului de prezentare.

Standardele UPnP AV

Arhitectura UPnP AV este o extensie audio și video a UPnP, care acceptă o varietate de dispozitive, cum ar fi televizoare, VCR-uri, CD / DVD playere / tonomate, cutii set, sisteme stereo, playere MP3, camere de fotografiat, camere video, rame electronice de imagine ( EPF-uri) și computerele personale. Arhitectura UPnP AV permite dispozitivelor să accepte diferite tipuri de formate pentru conținutul de divertisment, inclusiv MPEG2, MPEG4, JPEG, MP3, Windows Media Audio (WMA), bitmaps (BMP) și formate NTSC, PAL sau ATSC. Sunt acceptate mai multe tipuri de protocoale de transfer, inclusiv IEEE 1394, HTTP, RTP și TCP / IP.

La data de 12 iulie 2006, Forumul UPnP a anunțat lansarea versiunii 2 a specificațiilor UPnP audio și video, cu noi Mediaserver (MS) versiunea 2.0 și MediaRenderer (MR) versiunea 2.0 clase. Aceste îmbunătățiri sunt create prin adăugarea de capabilități la clasele de dispozitive MediaServer și MediaRenderer, permițând un nivel mai ridicat de interoperabilitate între produsele fabricate de diferiți producători. Unele dintre primele dispozitive care respectă aceste standarde au fost comercializate de Philips sub numele de marcă Streamium .

Din 2006, au fost publicate versiunile 3 și 4 ale protocoalelor de control al dispozitivelor audio și video UPnP. În martie 2013, a fost publicată o specificație actualizată a arhitecturii uPnP AV, care încorporează protocoalele de control ale dispozitivului actualizate.

Standardele UPnP AV au fost menționate în specificațiile publicate de alte organizații, inclusiv Ghidul de interoperabilitate a dispozitivelor în rețea, Digital Living Network Alliance , International Electrotechnical Commission IEC 62481-1 și Cable Television Laboratories OpenCable Home Networking Protocol.

Componente AV UPnP

Server media

A Serverul media UPnP AV este serverul UPnP (dispozitiv „master”) care furnizează informații despre bibliotecă media și transmite date media (cum ar fi audio / video / imagine / fișiere) către clienții UPnP din rețea. Este un sistem informatic sau un aparat digital similar care stochează suporturi digitale, cum ar fi fotografii, filme sau muzică și le partajează cu alte dispozitive.

Serverele media UPnP AV oferă un serviciu dispozitivelor client UPnP AV, așa-numitele puncte de control , pentru navigarea conținutului media al serverului și solicită serverului media să livreze un fișier la punctul de control pentru redare.

Serverele media UPnP sunt disponibile pentru majoritatea sistemelor de operare și pentru multe platforme hardware. Serverele media UPnP AV pot fi clasificate fie pe bază de software, fie pe bază de hardware. Serverele media UPnP AV bazate pe software pot fi rulate pe un computer . Serverele media UPnP AV bazate pe hardware pot rula pe orice dispozitiv NAS sau orice hardware specific pentru livrarea de materiale media, cum ar fi un DVR . Din mai 2008, existau mai multe servere media UPnP AV bazate pe software decât servere bazate pe hardware.

Alte componente

  • UPnP MediaServer ControlPoint - care este clientul UPnP (un dispozitiv „sclav”) care poate detecta automat serverele UPnP din rețea pentru a naviga și transmite fișiere media / date din acestea.
  • UPnP MediaRenderer DCP - care este un dispozitiv „sclav” care poate reda (reda) conținut.
  • UPnP RenderingControl DCP - controlează setările MediaRenderer; volum, luminozitate, RGB, claritate și multe altele.
  • Client / server UPnP Remote User Interface (RUI) - care trimite / primește comenzi de control între clientul UPnP și serverul UPnP prin rețea (cum ar fi înregistrare, programare, redare, pauză, oprire etc.).
    • Web4CE (CEA 2014) pentru UPnP Remote UI - standardul CEA-2014 proiectat de Comitetul Asociației Electronice R7 Home Network Committee . Protocol și cadru bazat pe web pentru interfața utilizatorului la distanță în rețelele UPnP și Internet (Web4CE). Acest standard permite unui dispozitiv de rețea de domiciliu compatibil UPnP să furnizeze interfața sa (opțiuni de afișare și control) ca pagină web pentru afișare pe orice alt dispozitiv conectat la rețeaua de domiciliu. Asta înseamnă că se poate controla un dispozitiv de rețea la domiciliu prin orice metodă de comunicații bazată pe browserul web pentru dispozitivele CE de pe o rețea de domiciliu UPnP folosind ethernet și o versiune specială de HTML numită CE-HTML .
  • QoS (calitatea serviciului) - este o funcție importantă (dar nu obligatorie) de serviciu pentru utilizarea cu UPnP AV (audio și video). QoS (calitatea serviciului) se referă la mecanismele de control care pot oferi priorități diferite utilizatorilor sau fluxurilor de date diferite sau pot garanta un anumit nivel de performanță unui flux de date în conformitate cu cererile din programul de aplicație. Întrucât UPnP AV este în mare parte să furnizeze fluxuri media care sunt adesea aproape în timp real sau în timp real de date audio / video, ceea ce este esențial să fie livrat într-un anumit timp sau fluxul este întrerupt. Garanțiile QoS sunt deosebit de importante dacă capacitatea rețelei este limitată, de exemplu rețelele publice, cum ar fi internetul .
    • QoS pentru UPnP constă din funcțiile de servicii Dispozitiv Sink (partea client / front-end) și Dispozitivul sursă (partea server / back-end). Cu clase precum; Clasa de trafic care indică tipul de trafic din fluxul de trafic (de exemplu, audio sau video). Identificator de trafic (TID) care identifică pachetele de date ca aparținând unui flux de trafic unic. Specificația traficului (TSPEC) care conține un set de parametri care definesc caracteristicile fluxului de trafic (de exemplu, cerința de operare și programarea). Flux de trafic (TS), care este un flux unidirecțional de date care provine de la un dispozitiv sursă și se termină la unul sau mai multe dispozitive de scufundare.
  • Acces la distanță - definește metodele de conectare a seturilor de dispozitive UPnP care nu se află în același domeniu multicast.

Traversarea NAT

O soluție pentru traversarea NAT , numită Internet Gateway Device Protocol (Protocol IGD), este implementată prin UPnP. Multe routere și firewall-uri se expun ca dispozitive de gateway de internet, permițând oricărui punct de control UPnP local să efectueze o varietate de acțiuni, inclusiv recuperarea adresei IP externe a dispozitivului, enumerarea mapărilor de port existente și adăugarea sau eliminarea mapărilor de porturi. Prin adăugarea unei mapări de porturi, un controler UPnP din spatele IGD poate permite traversarea IGD de la o adresă externă către un client intern.

Probleme cu UPnP

Autentificare

Protocolul UPnP, implicit, nu implementează nicio autentificare , astfel încât implementările dispozitivului UPnP trebuie să implementeze serviciul suplimentar de protecție a dispozitivului sau să implementeze serviciul de securitate a dispozitivului . Există, de asemenea, o soluție non-standard numită UPnP-UP (Universal Plug and Play - User Profile) care propune o extensie pentru a permite autentificarea utilizatorului și mecanismele de autorizare pentru dispozitivele și aplicațiile UPnP. Multe implementări de dispozitive UPnP nu au mecanisme de autentificare și implicit presupun că sistemele locale și utilizatorii lor sunt complet de încredere.

Când mecanismele de autentificare nu sunt implementate, routerele și firewall-urile care rulează protocolul UPnP IGD sunt vulnerabile la atac. De exemplu, programele Adobe Flash care rulează în afara sandbox-ului browserului (de exemplu, necesită o versiune specifică a Adobe Flash cu probleme de securitate recunoscute) sunt capabile să genereze un anumit tip de cerere HTTP care permite unui router care implementează protocolul UPnP IGD să fie controlat de un site web rău intenționat atunci când cineva cu un router compatibil UPnP vizitează pur și simplu acel site web. Acest lucru se aplică numai caracteristicii „firewall-hole-perforing” a UPnP ; nu se aplică atunci când IGD nu acceptă UPnP sau UPnP a fost dezactivat pe IGD. De asemenea, nu toate routerele pot avea lucruri precum setările serverului DNS modificate de UPnP deoarece o mare parte din specificații (inclusiv Configurarea gazdelor LAN) este opțională pentru routerele activate UPnP. Ca urmare, unele dispozitive UPnP sunt livrate cu UPnP dezactivat în mod implicit ca măsură de securitate.

Acces de pe Internet

În 2011, cercetătorul Daniel Garcia a dezvoltat un instrument conceput pentru a exploata un defect în unele stive de dispozitive UPnP IGD care permit solicitările UPnP de pe Internet. Instrumentul a fost făcut public la DEFCON 19 și permite portmapping cereri către adrese IP externe de pe dispozitiv și adrese IP interne din spatele NAT. Problema este răspândită pe scară largă în întreaga lume, cu scanări care arată milioane de dispozitive vulnerabile la un moment dat.

În ianuarie 2013, compania de securitate Rapid7 din Boston a raportat un program de cercetare de șase luni. O echipă a scanat semnalele de pe dispozitivele compatibile UPnP care anunță disponibilitatea lor pentru conexiunea la internet. Aproximativ 6900 de produse conștiente de rețea de la 1500 de companii la 81 de milioane de adrese IP au răspuns la solicitările lor. 80% dintre dispozitive sunt routere de acasă; altele includ imprimante, camere web și camere de supraveghere. Folosind protocolul UPnP, multe dintre aceste dispozitive pot fi accesate și / sau manipulate.

În februarie 2013, forumul UPnP a răspuns într-un comunicat de presă recomandând versiuni mai recente ale stivelor UPnP utilizate și îmbunătățind programul de certificare pentru a include verificări pentru a evita astfel de probleme.

Snooping și fiabilitate IGMP

UPnP este adesea singura aplicație multicast semnificativă utilizată în rețelele digitale de acasă; prin urmare, configurarea greșită a rețelei multicast sau alte deficiențe pot apărea ca probleme UPnP, mai degrabă decât probleme de rețea subiacente.

Dacă snooping-ul IGMP este activat pe un switch sau mai frecvent un router / switch wireless, acesta va interfera cu descoperirea dispozitivului UPnP / DLNA (SSDP) dacă este configurat incorect sau incomplet (de exemplu, fără un interogator activ sau proxy IGMP), făcând UPnP să pară nesigur. .

Scenariile tipice observate includ un server sau un client (de exemplu, televizorul inteligent) care apare după pornire și apoi dispare după câteva minute (adesea 30 prin configurație implicită) din cauza expirării apartenenței la grupul IGMP.

Vulnerabilitate de apel invers

La 8 iunie 2020 a fost anunțat încă un defect de proiectare a protocolului. Denumit „CallStranger” de către descoperitorul său, acesta permite unui atacator să subverseze mecanismul de abonament la evenimente și să execute o varietate de atacuri: amplificarea cererilor de utilizare în DDoS; enumerare; și exfiltrarea datelor.

OCF a publicat o corecție la specificațiile protocolului în aprilie 2020, dar din moment ce multe dispozitive care rulează UPnP nu sunt ușor de actualizat, este posibil ca CallStranger să rămână o amenințare pentru mult timp. CallStranger a alimentat apelurile pentru ca utilizatorii finali să abandoneze UPnP din cauza eșecurilor repetate în securitatea proiectării și implementării sale.

Evoluții viitoare

În toamna anului 2008, Forumul UPnP a ratificat succesorul UPnP 1.0 Device Architecture UPnP 1.1. Aparate Profilul pentru Web Services standard (DPWS) a fost un candidat succesor la UPnP, dar UPnP 1.1 a fost selectat de către Forumul UPnP. Versiunea 2 a IGD este standardizată.

Standardul UPnP Internet Gateway Device (IGD) are un serviciu WANIPConnection, care oferă funcționalități similare protocolului IETF standard de control al portului . Specificația NAT-PMP conține o listă a problemelor cu IGDP care au determinat crearea NAT-PMP și a succesorului său PCP.

Vezi si

Referințe

Surse

  • Golden G. Richard: descoperirea de servicii și dispozitive: protocoale și programare , McGraw-Hill Professional, ISBN  0-07-137959-2
  • Michael Jeronimo, Jack Weast: UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play , Intel Press, ISBN  0-9717861-1-9

linkuri externe