Pravi primer uočavanja problema i predloga konstruktivnog rešavanja u državnoj upravi.
Često nam se, u poslu, a i u privatnom životu dešava da, prilikom pristupa nekom iole osetljivijem web sadržaju, nekoj web-aplikaciji recimo, budemo ne-baš-prijatno iznenađeni:
– aplikacija zahteva posebna, naročita podešavanja našeg računara
– aplikacija zahteva staru verziju softvera/sa novom verzijom ne radi
– aplikacija od nas traži da prihvatimo nepotpisan sertifikat
Sada, postaviću neka očigledna pitanja, i pokušaću da dam odgovor na njih, jednostavnim jezikom.
Da li je moguće napraviti web aplikaciju koja ne zahteva dodatna podešavanja?
Neke web aplikacije koje svakodnevno koristimo su Facebook i Gmail; dotične aplikacije, iako su neverovatno komplikovane, barataju veoma osetljivim, a pritom i veoma bitnim podacima – nikada nisu zahtevale nikakva dodatna podešavanja da bi bile funkcionalne; ono što svaka od njih podrazumeva je da imate najnoviju verziju softvera iz koga pokušavate pristupiti aplikaciji (dakle, najnoviji browser/pregledač, najnoviju Javu) a antivirus se podrazumeva da nećete privremeno gasiti, a nadam se – ni stalno.
Šta je ustvari HTTPS, SSL, i zašto je bitan “zeleni katančić”?
Svaka komunikacija, ukoliko nije šifrovana, je slobodna za čitanje svakome ko se nalazi na putu toka informacija. Ja lično (mada je to nedovoljno tačno) “sistem asimetričnog javnog i privatnog ključa” ustvari svojim klijentima objašnjavam kao jednostavno: ključ i bravu. Bravu može da vidi svako, javno je dostupna, svako može da joj priđe, i da oproba svoj ključ; samo pravi ključ otključava bravu, i zato je privatni ključ bitno pravilno čuvati. SSL omogućava da se komunikacija između vašeg računara i udaljenog servera kome pristupate zaključa na takav način da je istu moguće otključati samo i isključivo pravim ključem; pogrešan ključ dovodi do toga da je kompletna komunikacija potpuno nečitka i nejasna (primer: “beograd011” bi više ličilo na “83e6f836e071d092e4f516ad3a63aecb”). Onoga trenutka kada se vaš računar i udaljeni server dogovore oko načina šifrovanja komunikacije, vaša kompletna komunikacija sa dotičnim serverom postaje (naravno, ako je server dobro podešen) potpuno nečitka svakome ko se nalazi na putu.
Da li je moguće, i po kojoj ceni, napraviti aplikaciju, ili web mesto, koje od korisnika neće zahtevati prihvatanje nepotpisanih sertifikata?
SSL sertifikati, ili opet onaj mali zeleni katančić levo od adrese web prezentacije/aplikacije, su nekada davno (SSL vuče korene još iz davne 1993-će) koštali značajno; otvorenim tržištem, zdravom konkurencijom, uvođenjem jednostavnijih procedura za izdavanje sertifikata, došlo je do značajnog pada cena istih, do tačke da nekoliko sertifikacionih tela sertifikate najnižeg ranga (takozvane “domenski potvrđene” (domain validated)) daje – za džabe. Primer je izraelski startap StartCom LTD ( https://startssl.com ), koji uz objašnjenje da im je sistem potpuno automatizovan, i da je “ljudska ruka” nepotrebna – DV sertifikate daje besplatno, sa trajanjem od godinu dana, nakon čega je iste potrebno, takođe besplatno, obnoviti; plaćeni sertifikati nude daleko više opcija, a kod pomenutog startapa najskuplji sertifikat košta 199USD, i traje dve godine. Besplatni sertifikati potpisuju samo jednu web adresu (tipa www.google.com) a plaćeni neograničen broj web adresa (dakle 1.google.com, 2.google.com, www.nije-google.com, www.google.net itd)
– primer korektno podešenog servera aplikacije; ovo je naime server aplikacije za čuvanje dokumentacije naše firme ( a i naših klijenata) na udaljenom serveru, služeći istovremeno i kao bekap i kao sinhronizacija dokumenata na više računara; softver je potpuno besplatan – Apache 2.4, Debian OS, OwnCloud aplikacija, i besplatan sertifikat firme StartCom LTD. Na srpskom – programi su koštali DŽ.
Da li to znači da je jedan sertifikat dovoljan, za sve državne organe jedne države?
Nikako. Praksa je pokazala da, iako se privatni ključevi čuvaju veoma sigurno, ipak je krajnjom nepažnjom, nedovoljnim nadzorom, ili pak zlom namerom – moguće izgubiti (ili još gore – dozvoliti pristup!) privatan ključ. Tada je neophodno što pre uraditi poništenje sertifikata (revokaciju; gorepomenuti startap upravo i naplaćuje “poništavanje” ključeva, jer to ustvari zahteva “angažovanje ljudi”), i na server instalirati nov sertifikat, tojest nov ključ sa novom bravom.
Sad: zamislite da su vam u životu sve brave iste – a vi izgubili ključ…
Da li je potpisan sertifikat sam po sebi dovoljan/rešenje?
Nažalost, ne. Samo prisustvo sertifikata govori o dobroj nameri, ali – ažuran softver je ipak neophodan za punu sigurnost; naime, starije (10 god) verzije softvera su koristile niži kvalitet šifara, jer u to vreme računari nisu bili dovoljno brzi da bi “slomili” (a ni da bi dovoljno brzo koristili “dugaačku”) šifru; budući da se brzina računara u poslednjih deset godina povećala za nekoliko mesta ispred zareza, potrebne su komplikovanije šifre unutar softvera (setite se: mala i velika slova, brojevi, znakovi, minimum 8 karaktera… mala i velika slova, brojevi, znakovi, minimum 8 karaktera…). Nekada je računarska šifra bila sigurna ako je bila sastavljena od 64 znaka; danas se komunikacija između računara smatra zastarelom ukoliko je šifra “kratka” svega 1024 znaka; 2048 je minimum, a 4096 poželjno.
Kvalitetan sertifikat će osim potpisa i koristiti snažne algoritme (“dugačke šifre”) – kako bi bilo što teže (ili praktično nemoguće) neovlašćeno otključati komunikaciju.
– primer servera Poreske uprave; problem za problemom…
Da li je pametno prihvatati zaobilazak “This Connection is Untrusted”/”Your connection is not private” upozorenja, pisana velikim crvenim slovima?
Uglavnom ne, uglavnom nikako, i uglavnom nikada! Potpisani sertifikati su znak da “neko tamo bitan” (CA – certificate authority) garantuje ne samo da će komunikacija biti šifrovana – već i da je server sa koga preuzimate podatke/aplikaciju – zaista taj za koji se i predstavlja; pokušajte da zamislite količinu štete koju biste pretrpeli kada biste lažnom sajtu poklonili vaše korisničko ime i lozinku za e-banking…
…ni nemojte; banke u svetu listom zahtevaju sertifikate koji podatke šifruju na najsigurnije moguće načine. U Srbiji – ipak malo ređe.
– primer servera za elektronsko bankarstvo – banke, ili barem kompanije koje za njih izrađuju softver, ipak obraćaju pažnju na kvalitet podešenosti servera sa sertifikatima.
Ali, nama/meni traže/zahtevaju da…
Ovaj članak upravo i ima za nameru da neke od tih problema pokrene ka rešavanju.
Da li je problem lako rešiv?
U suštini: da; veoma često je potrebno samo platiti nisku cenu (a pritom, za većinu stvari su i besplatni sertifikati sasvim zadovoljavajući; mada, slažem se da država ne sme da funkcioniše na besplatnim sertifikatima), takođe veoma često će i firma koja izdaje sertifikate rado pomoći da se isti instalira i podesi, da bi radio pravilno, i da bi dobio visoku ocenu sigurnosti, od strane stručnih lica i softvera/aplikacija urosposobljenih za proveru.
Provere putem web aplikacija, najčešće na sajtovima firmi koje izdaju sertifikate – su najčešće potpuno besplatne; njima i jeste u cilju da vas, kao korisnika, njihov sertifikat što bolje štiti i služi.
Da li je problem lako rešiv i za komplikovane aplikacije, kao što su recimo sajt Poreske uprave / sajt centralnog registra CROSO?
Možda jeste problem domaće Poreske uprave / CROSO što koriste zastareo softver kao osnovu funkcionisanja, ali – to ne znači da je problem nerešiv; naime, mogao bi se rešiti jednostavnim, besplatnim softverom (reverse-proxy, apache2 ili nginx) koji bi se nalazio između trenutnog servera aplikacije, i samog računara korisnika; komunikacija između dodatne aplikacije i trenutnog servera bi ionako bila u lokalu, pa ne bi ni bilo potrebe za šifrovanjem – a do krajnjeg korisnika bi stizala kompletno šifrovana komunikacija.funkcionisanja
Takođe; jednostavnom nadogradnjom na najnoviji IIS, i kvalitetnim podešavanjem istog – bi se postigao efekat.
– primer portala CROSO; u startu bolje podešen od servera Poreske – ali sa kardinalnim problemima.
Da li je baš toliko komplikovano napraviti aplikaciju koja ne zahteva „stare“ verzije različitih programa – čuveno „ne radi sa najnovijom Javom/ne instalirajte Chrome verziju 45 i noviji“
Istini za volju – i jeste i nije.
Prvo: problem je često na nekim veoma čudnim mestima, kao što su – ugovorne obaveze, i međuljudski odnosi; naime, prilikom izrade neke aplikacije čiji rad i funkcionalnost zavise od neke druge aplikacije (kao što Java aplikacije zavise od Java virtuelne mašine) – neophodno je, uz ugovorno definisanje izrade same aplikacije – ugovoriti i nadogradnje, kao i održavanje kompatibilnosti sa nadolazećim verzijama aplikacija od kojih zavisi funkcionisanje; zamislite to kao proizvodnju automobila i obezbeđivanje rezervnih delova i servisa.
Recimo: svaka nova verzija Jave ( i ne samo Jave – već svakog softvera; tu spada i Windows Update) nosi u sebi zakrpe; dakle, sam softver je imao pojedine probleme u radu, propuste u sigurnosti – i u novoj verziji su barem ti, poznati problemi, otklonjeni; odlaganjem, ili namernim preskakanjem ažuriranja softvera na najnoviju verziju – svesno se „rupa“ ostavlja „nezakrpljenom“; vrlo često se i neke funkcije menjaju ili brišu, jer je utvrđeno da postoji bolji-brži-lakši način za realizaciju takvih zahteva – i o tome programeri bivaju obavešteni barem 6 meseci unapred (neretko i po više od godinu) – kako bi aplikacija bila prilagođena novijoj verziji softvera od koga zavisi.
Poređenja radi, (za knjigovođe čuveni) NPAPI, unutar Google Chrome browsera – je bio najavljen za „brisanje“ još u oktobru 2013-te – da bi od aprila 2015 bio podešen tako da „ručno“ mora da se „natera“ da radi, i konačno u septembru 2015 potpuno bio izbačen iz programa Google Chrome; naime, pomenuta „verzija 45 ili novija“ – uopšte nema tu zastarelu funkcionalnost, koja je bila aktuelna tokom ’90-tih.
Sada: da li je dve godine bio dovoljan period da Poreska ispravi svoju verziju Java aplikacije – je pitanje koje rado postavljamo državnim organima, i jedan od ciljeva ovog teksta.
– primer koji dokazuje da aplikacija APR-a funkcioniše sa servera koji nisu „ažurirani“ još od doba .YU domena – primetiti poslednji red, gde piše server: gate1tmg.apr.sr.gov.yu – YU. domeni su ugašeni (prestali da postoje!) davne 2009-te.
Da li ovako, trenutnim stanjem, i trenutnim rešenjima, postoji opasnost po sigurnost?
Realan scenario: presretanje komunikacije na pola puta (man-in-the-middle), izmenjena Java aplikacija, koja se servira sa sajta identičnog sajtu e-porezi, koji inače zahteva “otvaranje širom svih prozora i vrata na računaru” da bi nesmetano radio – može dovesti do toga da Vaša poreska prijava bude presretnuta, i ili izmenjena, ili uopšte da ne bude predata… ili otkaz svim radnicima, putem CROSO portala.
O elektronskom bankarstvu da ne pričamo – mada je tu situacija kudikamo bolja, čak i u Srbiji. Naše banke greše na drugim IT mestima….
Da li je kriva “država”?
I da i ne; realnost je takva da smo svi mi odgovorni za sigurnost svojih podataka; ukoliko ne zahtevamo promenu – promena se neće ni desiti; takođe, kao što se iz priloženih slika ekrana vidi – ni domaće sertifikaciono telo (lično ih smatram kvalitetnijim, i dajem prednost) nije otporno na probleme. A pritom su akreditovani i sertifikovani za izdavanje sigurnosnih sertifikata.
Druga stvar je što je, recimo, softver eporezi, na sajtu Poreske uprave – napisan tako da može da se aktivira samo na Windows operativnom sistemu; naime, već više od dve godine pojedini ljudi objašnjavaju piscima Java aplikacije na sajtu poreske da je potrebno ubaciti svega 2 kratka reda teksta u sam programski kod aplikacije – kako bi ista proradila i na Linux, i na Apple računarima; za sada, odgovora nema; takođe, aplikacija za nove zdravstvene knjižice, „proizvedena“ pri samom kraju 2015-te – za Linux operativne sisteme dolazi samo u 32-bitnom obliku; dakle, za računare koji se ne proizvode od 2005-te, a softver za iste se ne piše od 2012-te.
Nadam se samo da će pomenuta „država“ imati sluha za ove probleme.
– primer servera Pošte – koja je, ironično, zvanično sertifikaciono telo.
Da li je moguće korisnika “primorati” na sigurnost?
Ukratko – da! Komunikacioni protokol razvijen baš u tu svrhu postoji, i naziva se HSTS (HTTP Strict Transport Security) – i prevedeno na jednostavan srpski jezik, čini da se korisniku NE DOZVOLJAVA prihvatanje, a samim tim ni pristup, web aplikacijama koje nemaju ispravan sertifikat; jednostavno, nema “kućice” koja može da se štiklira.
– primetite da nema opcije „I understand the risks“ – tojest, izlaza nema; „it is not possible to add exception“ – znači da ne možete pasti u iskušenje da nekome „poklonite“ svoju lozinku.
Ali: pa nije valjda toliki problem podesiti mozilu-hrom/ meni radi kad isključim antivirus…
Umesto kratkog odgovora – par ličnih obzervacija; naime, lično sam član fb grupe knjigovođa – dakle, profesionalaca koji u svom radu svakodnevno pristupaju portalima državnih uprava; među bezmalo 5000 ljudi, jedno od najčešćih pitanja je “pomoć, ne radi mi portal/sertifikaat taj-i-taj” – svedok sam da se svi odgovori mogu formulisati u jedan jedini:
– Vašem računaru ugasite svaku moguću zaštitu koju ima – i sve će proraditi.
Nažalost: koliko takva rešenja donosila trenutno “krpljenje” problema – u suštini su ništa više nego “flaster”; navikavanjem korisnika da se problem rešava sa “ipak, i pored upozorenja, želim da nastavim” – navikavamo sebe i korisnike na kompletno ukidanje sigurnosti; naime, naviknemo li jkorisnika da svaki put kada aplikacija izjaavi “hej, ovde nešto nije kako treba” je potrebno odgovoriti sa “znam, ovde ništa nije kako treba” – sigurnost podataka nećemo imati ni na vidiku.
Ali, ko će mene baš…
Umesto odgovora – lično iskustvo; u jednom kafiću Beogradu, zatražio sam šifru od wifi-ja; sutradan me je na aplikaciji Gmail dočekalo predivno obaveštenje, crvena štrafta po sred ekrana sa natpisom, koji u slobodnom prevodu glasi: „neko je sa IP adrese te-i-te u toliko-i-toliko pokušao da pristupi Vašem Gmail nalogu, ukucavši pravu šifru, ali bez pogađanja šifre sledećeg koraka“ (2-step auth) – dakle, da nisam koristio ono-da-pošalje-porukicu-sa-šest-cifara (Google Authenticator) – mogao bih da se pozdravim sa Gmail nalogom – koji mi je jedan od admin kontakata za sve domene koje posedujem…
… ukratko: neko dovoljno mlad i zaludan je jednom popio kafu u kafiću preko puta svog stana, saznao šifru za wifi, pokrenuo Kali linux na svom računaru, kupio wifi USB karticu od 1450 dinara – i počeo u dva klika da danonoćno prikuplja sve moguće šifre, svih mogućih posetilaca kafića (kod mene lično mislim da je problem bio u aplikaciji koja se „kači“ na Google Drive – koja verovatno nije proveravala identitet sertifikata).
Neretko: mejl serveri domaćih hosting provajdera, uopšte ne propisuju kao „obavezno“ šifriranje komunikacije; shodno tome, elektronsku poštu koja nije zaštićena TLS – može da pročita svako; a naam se da se zna šta znači izraz „poslovna tajna“.
– primer podešenosti mejl servera – koji koristi državna uprava; nije loše, ali može mnogo bolje.
Umesto epiloga:
Stara kompjuteraška poslovica kaže: administratori se dele u dve grupe – oni koji plaču, i oni koji su imali bekap; neka ovaj tekst bude podsticaj državnim organima da problematiku IT sektora počnu da rešavaju – nadamo se, pre nego dođe do ozbiljnijih problema.
– za kraj: primer kako državna agencija MOŽE da primeni sve moguće tehničke mere i standarde zaštite.
Autor teksta je direktor privrednog društva Tim011 Solutions d.o.o, koje pruža usluge knjigovodstva, računovodstva, web hostinga i održavanja računarskih mreža; trudi se da u poslovanje – pogotovo u sferi knjigovodstva – uvede inovacije i iskustva iz IT, a da pritom IT sektoru olakša komunikaciju sa knjigovođom; hostingom se bavi više od 5 godina, računarima preko 20, a lemilicu drži u ruci od 1986 – sa sve manje opekotina, kako vreme protiče…
Autor: Aleksandar Segedi