Galaksija Nova 4-2022

Previše oblačno

Računarstvo u oblaku (cloud) više nije budućnost - već danas je "sve" u oblaku, počev od dokumenata koje pišemo, preko fotografija koje pravimo pa do komunikacije sa "pametnim" uređajima kojima smo napunili naše domove. Sa jedne strane veoma zgodno, sa druge prilično opasno...

Dejan Ristanović

Termin cloud computing (u savremenom smislu) je prvi put pomenut 9. avgusta 2006. godine kada je Eric Schmidt, (tadašnji) direktor kompanije Google, na jednoj stručnoj konferenciji rekao: "Sada se pojavljuje nov model koji predstavlja veliku priliku. Po tom konceptu servisi za obradu podataka se nalaze na udaljenim serverima. To zovemo računarstvo u oblaku – sve bi dakle bilo negde, u oblaku". Kada se radi o podacima, sličan koncept se koristio i ranije. Recimo, ako nešto pišem dok sam na putu, pre povratka pošaljem fajlove samom sebi elektronskom poštom, pa oni stoje na serveru mog Internet provajdera. Na taj način sam, ako bi notebook bio ukraden ili oštećen, barem sačuvao ono što sam uradio. Kasnije sam sličan postupak koristio svakodnevno, da bih napravio brz backup onoga što radim, ili da bih pisanje teksta započetog na poslu nastavio kod kuće. Mnogo lakše nego snimati na USB stick. Veoma mi se dopalo kada je 2007. godine osnovan Dropbox i odmah sam počeo da ga koristim – fajlovi na kojima radim sada su mi bili automatski dostupni na svim uređajima koje koristim.

Ubrzo oblak nije čuvao samo podatke. Brzo su se razvijali sistemi koji iznajmljuju virtuelne servere, a zatim i kompletne servise. Microsoft Azure i Amazon Web Services (AWS) su postali čitave imperije u kojima možete iznajmiti računar, prostor za skladištenje informacija, bazu podataka, bilo kakvu obradu podataka, veštačku inteligenciju... Ljudi su uživali u tome što ne moraju da kupuju hardver i održavaju softver na njemu; umesto ogromnih inicijalnih ulaganja u kupovinu opreme i softvera, plaća se samo mesečna pretplata. Bonus je skalabilnost: ako vam je u nekom trenutku potrebno više servera da obrađuju vaše podatke, jednostavno ih zakupite, pa ih oslobodite kad vam više nisu potrebni.

Ubrzo su stvari sagledane i sa druge strane – oblak je, zapravo, sinonim za tuđi kompjuter. Dakle, podaci u oblaku su podaci na nečijem kompjuteru, i taj "neko" po prirodi stvari ima pun pristup vašim podacima. Danas se kao opšte mesto uzima da cloud provajderi rutinski skeniraju fajlove tražeći "otisak" (hash) piratovane muzike, filmova, dečje pornografije... Sumnjivi fajlovi se uklanjaju, a u nekim slučajevima i prijavljuju nadležnim organima. Korisnici zato razmišljaju o enkripciji podataka i drugim sigurnosnim merama.

Kako do pametnog uređaja?

Razvoj pametnih uređaja (Internet stvari, Internet of Things, IoT) je oblaku dodao nove funkcije. Jedna od osnovnih prednosti IoT-a je mogućnost da daljinski kontrolišete svoje uređaje. Nalazite se, recimo, na poslu ali možete da pogledate šta se dešava kod kuće, da upalite ili ugasite neka svetla, aktivirate grejanje ili klima uređaj kako biste zatekli prijatnu temperaturu u stanu, otključate gostu vrata... Da bi sve to funkcionisalo potreban je način da spolja uspostavite vezu sa uređajem koji se nalazi u vašem domu.

Zvuči jednostavno – pa, na Internetu ste, a na Internetu je i taj uređaj, zar ne? Nažalost, nije jednostavno: karakteristika uređaja na Internetu je javna IP adresa, 32-bitni broj nalik na 77.105.0.5 koji jedinstveno identifikuje uređaj na čitavom Internetu. Problem je u tome što 32-bitnih brojeva ima negde oko 4.3 milijarde (232) a priključenih uređaja mnogo, mnogo više. Zato se primenjuju trikovi, među kojima je najznačajniji takozvana translacija adresa (NAT). Čitava vaša kuća dobija samo jednu javnu IP adresu, a kućni uređaji dobijaju privatne adrese koje važe samo u vašoj kući. Na ulazu u kuću je ruter koji ste dobili od Internet provajdera ili ste ga sami kupili, i on se brine da saobraćaj usmeri prema odgovarajućem uređaju. To znači da vaš televizor može da pristupa Internetu, ali se spolja ne može direktno pristupiti vašem televizoru. Uređaji su time zaštićeni od nasumičnih napada raznih hakera (kažemo da ruter ima i ulogu "vatrenog zida", firewall, koji štiti mrežu), ali je kontrola uređaja iza "vatrenog zida" komplikovana.

Stvar se obično rešava tako što pametni uređaj uspostavlja vezu sa serverom negde u cloud-u i ta je veza neprekidno otvorena. Kada želim da kontrolišem uređaj, uspostavljam drugu vezu sa tim istim serverom u cloud-u i zadajem komandu. Pošto server ustanovi da imam pravo da izvršim tu operaciju, on će onom prvom, stalno otvorenom linijom narediti uređaju da uradi ono što je traženo. Na sličan način se dve konekcije mogu povezati tako da se spolja gleda kroz kućnu kameru ili razgovara sa ukućanima preko sistema za video konferencije.

Zvuči kao dobro rešenje, ali se brzo uočava problem – sve zavisi od servera koji se ne nalazi u našim rukama. Servera koji radi "tamo negde na Internetu".

Zašto nema tople vode?

Problema sam postao svestan još pre desetak godina, pokušavajući da "opametim" svoj bojler. Kada sam opremao stan, hteo sam da izbegnem instalaciju više bojlera i da centralizujem grejanje vode (ko zna, možda jednom bude mogla da se koristi i sunčeva energija...) Problem sa jedinstvenim bojlerom je u tome što, kad u nekoj udaljenoj prostoriji odvrnete slavinu, morate prilično čekati da "dođe topla voda". Možda ste već čuli za jedno od pitanja koja Microsoft, Google i druge softverske firme postavljaju programerima na konkursima: kako se postiže da, čim otvorite slavinu, voda bude topla? Programeri su imali raznih ideja, ali realno rešenje je da se umesto jedne cevi za toplu vodu do svake slavine dovode dve cevi, pa kroz njih stalno cirkuliše topla voda. Dakle, pumpa pokreće vodu koja ide kroz bojler, pa do svake od slavina i najzad se vraća do bojlera.

Nevolja je u tome što se voda koja cirkuliše neminovno i hladi, što znači da je grejete 24 sata dnevno da biste ponekad, kad otvorite slavinu, imali toplu vodu. Lepo funkcioniše, ali troši puno struje. Zato sam tražio način da u raznim periodima dana vodu u bojleru grejem do raznih temperatura, i najzad sam kupio uređaj koji bi to trebalo da obezbedi, Aquanta Smart Water Heater Controller. Nije to bila jednostavna, a ni dobra kupovina – trebalo ga je nabavljati u Americi i donositi ovamo, pa onda primetiti da je on namenjen monofaznim bojlerima (u SAD domovima izgleda niko ne koristi trofaznu struju), praviti odgovarajuću trofaznu sklopku i najzad shvatiti da Aquanta pali i gasi bojler u skladu s nekom svojom mambo-džambo veštačkom inteligencijom koja prati navike korisnika i "zna" kada će mu biti potrebna topla voda. Ako se veštačka inteligencija isključi, može se zadati samo jedna temperatura koja važi čitavog dana; kakva je onda prednost u odnosu na običan termostat?

"Tačka na i", koja je poslala Aquanta kontroler u kantu za đubre, bila je žalba ukućana da je jedne večeri voda u sudoperi previše hladna. Siđem ja u podrum, bojler ne radi, a Aquanta kontroler miga zeleno što znači da nema vezu s centralom. Pošto mu centrala nije rekla da greje vodu, kontroler je ugasio bojler. Najzad se ispostavilo da se Aquanta server u Americi zaglupeo i nije radio čitave noći. Srećom, bojler je mogao da se uključi i ručno, ali sam izgubio poverenje u čitav koncept po kom ja nemam toplu vodu zato što deset hiljada kilometara odavde neki server ne radi. Naročito kada sam pretrpeo kritike da bi se svi tuširali hladnom vodom ukoliko ja nisam kod kuće. Odgovor da za sve postoji rezervna varijanta, da baš zato u podrumu ima pet-šest prekidača, uglavnom sa po tri položaja (jedan ima šest položaja), da je to zapravo jednostavno i da čak postoji kratko uputstvo na kućnom deljenom OneNote-u nije ostavio poseban utisak.

Sve na izvol'te

Drugi problem sa cloud principom IoT-a jeste privatnost. Recimo, nosimo pametni sat koji snima gomilu naših telesnih parametara. Garmin-ovi pametni satovi uopšte neće da rade ako nisu povezani na connect aplikaciju, koja sve podatke koje prikupi automatski šalje na Garmin servere. A među tim podacima su vremena kad spavamo i kvalitet našeg sna, puls, koliko smo kalorija sagoreli, GPS lokacije svih naših aktivnosti i mnogo što šta drugo. Čak i ako pretpostavimo da Garmin ima najbolje namere i da ne zloupotrebljava te podatke, šta ako neko provali na njihove servere, kao što se desilo pre nekoliko meseci kada je sva Garmin oprema danima bila neupotrebljiva posle hakerskog napada? Realno nema potrebe da svi ti podaci stoje u cloud-u, pošto pametni telefon sa kojim je sat i onako povezan ima sasvim dovoljno memorije i procesorske snage da lokalno uskladišti i obrađuje sve podatke.

Drugi uređaji još manje imaju potrebe za oblakom, a opet su bez njega neupotrebljivi. Recimo, ako moj Xiaomi Mi Robot Vacuum usisivač zvani Zuzzy nije povezan sa oblakom, on može da koristi samo podrazumevani režim čišćenja sa "srednjom" jačinom; bilo kakvo podešavanje zahteva da ga povežem sa oblakom. Slično je i sa veš mašinom koja zahteva vezu sa cloud-om da bi se bilo koji parametar rada promenio. Još nemam neki klima uređaj opremljen Wi-Fi interfejsom, ali čujem da su i oni neupotrebljivi bez oblaka.

Zašto bih bilo kome dozvolio da kontroliše moj usisivač, mašinu za veš ili klima uređaj? A o kamerama, nadzornim sistemima i alarmu da i ne govorim – ne pada mi na pamet da proizvođaču kamere dopustim uvid u ono što se dešava među moja četiri zida. Ko zna kome oni prodaju podatke i ko zna da li su ti podaci bezbedni.

Postoji li alternativa?

Alternativa je direktna kontrola IoT uređaja kroz lokalnu mrežu. Kada sam bacio pomenuti Aquanta kontroler za bojler, u saradnji sa kolegom Borisom Stanojevićem upustio sam se u samostalnu gradnju ovakvog uređaja. Izabrali smo Arduino Mega koji će meriti temperaturu vode i kontrolisati relej, i Raspberry Pi 3 koji komunicira sa korisnikom i kontroliše sam Arduino. Prateći softver smo pisali u jeziku C++. Bilo je dosta posla, ali je vredelo – kontroler već nekoliko godina uspešno radi.

Kako upravljam kontrolerom, pa samim tim i bojlerom? Na Raspberry Pi sam instalirao Web server koji ispisuje stranu za unos parametara. Ako je interna adresa kontrolera u mojoj kućnoj mreži, recimo, 192.168.50.20, dovoljni je da sa bilo kog računara, telefona ili tableta usmerim Firefox na tu adresu i podesim parametre. Dobro, to funkcioniše kada su računar, telefon ili tablet u kućnoj mreži – šta ako hoću da proveravam ili kontrolišem bojler kada nisam kod kuće?

Tu na scenu stupa tehnologija zvana virtuelna privatna mreža, VPN. Ona omogućava da se "prokopa tunel kroz Internet", da se sa kroz taj tunel sa bilo koje tačke u svetu uključimo u kućnu mrežu i radimo kao da smo u njoj. Komunikacija je zaštićena snažnim kriptografskim algoritmima, a pri uspostavljanju veze vrši se autorizacija lozinkom ili ključem kako bi se sprečilo da nezvani gosti obiju bravu na (virtuelnim) vratima.

VPN tehnologija se razvija već decenijama i poslednjih godina je značajno napredovala pre svega što se tiče jednostavnosti instalacije i bezbednosti. U početku sam koristio PPTP protokol, koji je omogućavao da se brzo i lako uključim u kućnu mrežu, obavim ono što mi je potrebno i onda deaktiviram tunel. Vreme je pokazalo da je PPTP protokol prilično nesiguran, pa je trebalo potražiti nešto bolje. Pre dve godine realizovan je WireGuard protokol koji je već deo kernela Linux-a i može se konfigurisati na kućnim ruterima kao što je MikroTik. Malo sam se pomučio oko podešavanja, ali kada je sve proradilo, telefon uvek radi kao da sam kod kuće i mogu da pristupim svim pametnim uređajima (pa i bojleru) ma gde se nalazio, a bez ikakve procedure prijavljivanja ili kasnijeg prekida veze.

VPN, dakle, može potpuno da ukine potrebu za udaljenim serverom, a čak ni VPN neće biti potreban kada sa postojećeg IPv4 protokola pređemo na IPv6, što se već godinama očekuje. Tada će umesto današnjih 4 milijarde IP adresa biti raspoloživo 2128 odnosno 3×1038 adresa, verovatno više nego što će nam ikada zatrebati – svakom molekulu na Zemlji bi mogla da se dodeli adresa, i još bi ostalo mnogo slobodnog adresnog prostora. Na taj način će svaki IoT uređaj moći da bude direktno dostupan na Internetu, pa će i direktno komandovanje biti trivijalno. Što ne znači da će se ta ideja dopasti proizvođačima IoT opreme, kojima sadašnji sistem donosi više novca – umesto da nam jednokratno prodaju uređaj i softver, oni nam naplaćuju mesečne pretplate i još raspolažu prikupljenim podacima prema svom nahođenju. Može li pritisak korisnika to da promeni? Vreme će pokazati – bitno je da korisnici razumeju prednosti računarstva u oblaku ali i njegove mane, kako bi izabrali varijantu koja im najviše odgovara.