Potpuna nesposobnost: "Fina i APIS napravili su više štete državnom IT-u nego rat"
Ilustracija: Google Street View
"MEĐU informatičarima (onima koji zarađuju izvan proračuna, naravno) već dulje vrijeme kruži konstatacija koja se uzima kao očigledna da su više štete državnom IT-u napravili Fina i APIS nego rat", piše bloger Ivan Voras koji se u to i sam uvjerio. Uz dopuštenje prenosimo tekst s njegova bloga.
Imao sam tu sreću da sam sve do sada izbjegavao baviti se bilo čim što ima veze s fiskalizacijom, cijelo vrijeme imajući na umu da me to vjerojatno kad-tad čeka, kao neki figurativni crni oblak na horizontu ili svjetlo u tunelu koje znači nadolazeći vlak. Do sada sam otkrio sljedeće "zanimljivosti", za koje ću pokušati objasniti zašto točno su loše, što je pošlo krivo i kako bi izgledala bolja alternativa.
Ovaj post ću updateati kako otkrivam nove stvari o kojima želim njurgati.
#1: Za preuzimanje Demo certifikata je potreban Internet Explorer 9
Prije oko tjedan dana sam zatražio demo certifikat. Prije 2 dana mi je stigla obavijest da mi je on izdan i što trebam napraviti da ga preuzmem. U mailu velikim, boldanim slovima piše "Obvezno koristite Internet Explorer", sa nekih 10-tak uskličnika. Ne znam da li svim Fininim nesretnim korisnicima stiže isti broj uskličnika ili sam zaslužio posebnu pažnju (budimo realni, puno ljudi zna da ne koristim često Windowse), ali nije bitno. Znao sam da trebam očekivati obvezu korištenja IE-a pa sam pokrenuo Windowse i IE i postupao prema uputama (druga rečenica kaže "Molim da se držite procedure iz Attachmenta" sa samo 3 uskličnika).
Uistinu, držao sam se uputa, upisao referentni broj i autorizacijski kod i - nije radilo. Poruka je bila "invalid entry". Brže bolje poslao reply na dobiveni mail i dobio telefonski poziv u kojem me je (doduše ljubazni) sugovornik pitao da li slučajno možda koristim IE koji je noviji od devetke. Jasno, koristio sam novi IE zato što mi je po defaultu i vjerojatno bez pitanja Windows Update automatski instalirao novu verziju. Workaround za ovo je bio: probajte uključiti "Compatibility mode" ili pravi IE9 uz nervoznu izjavu "pa znate, Fina ipak nije tako napredna, treba vam stariji Explorer".
Bravo. Znači netko je isprogramirao stvari tako da s ActiveX-om ili nekim platformno-ovisnim JavaScriptom stvari rade samo u specifičnom okruženju stare verzije Internet Explorera.
Ok, sljedeći pokušaj s IE11 (spomenuta "zadnja" verzija instalirana po defaultu) u compatibility modeu - sad se odjednom prikazuju dodatna polja u formi! Nažalost, ni ovaj pokušaj nije radio - nakon popunjavanja dodatnih polja prema uputama, sljedeća greška je "security protocol failure", a potpuno isto se web demo CA-a ponaša i s "pravim" IE9 kojeg sam iskopao na nekom desetom računalu. Ovdje su stvari za sada stale - iz Fine mi nisu odgovorili na 2 maila koje sam poslao s ovim problemom (i namjeravam slati 1 mail dnevno dok se to ne riješi).
Realno, vrlo je vjerojatno da nitko osobno iz Fine nije sudjelovao u programiranju ovog iznimno lošeg komada koda nego su kupili vanjsko rješenje - što je ok (jer vlada negativna selekcija: informatičari i programeri koji znaju raditi nađu daleko bolje plaćene poslove izvan državnog sektora) - no problem je što Fina i pripadajući joj konzultanti nisu znali napisati natječaj za ovu platformu koji bi uključio rečenicu kao što je
"Proizvod mora biti izgrađen koristeći važeće standarde HTML-a te raditi na barem 3 najčešće korištena preglednika Weba rangirana prema istraživanju StatCounter Global Stats". Ta jedna jedina rečenica bi riješila 90% problema.
#2: Pri prvom preuzimanju "soft" certifikata za fiskalizaciju se postavlja password koji se ne može promijeniti
Veći problem od navedenog je što se, barem u teoriji, nikada ne smije dopustiti da se privatni ključevi za elektroničke potpise nalaze igdje drugdje osim u posjedu njihovog izravnog korisnika, zato što svatko u posjedu privatnog ključa može u potpunosti "simulirati" odnosno krivotvoriti elektroničke potpise od spomenute osobe. Ako država ima u posjedu privatni ključ od certifikata na vašoj osobnoj iskaznici (na primjer), netko u državi (poslovično korumpirana osoba) se može s tim ključem predstavljati kao vi, a da ne postoji način da se to dokaže. Među ostalim, ovo otvara vrata izbornim prevarama.
Međutim, stanje user-friendlinessa elektroničkih potpisa i povezanih postupaka i infrastrukture je toliko loše da je doista jednostavnije i efikasnije raditi prečace nego educirati sve korisnike kriptičnim procedurama kao što je stvaranje ključa. To je žalosno, ali istinito (i vjerojatno čeka neki cool start-up da riješi problem, hint, hint).
U ovom slučaju znači da Fina stvara "privatne" ključeve i certifikate i onda ih distribuira korisnicima. U teoriji, Fina ne bi smjela zadržavati ove ključeve kod sebe da se spriječi opisani scenarij lažnog predstavljanja, ali ponovno u praksi se to radi.
"Soft" certifikat za fiskalizaciju je onaj koji se koristi u softveru za fiskalizaciju koji ne koristi karticu odnosno USB stick za autorizaciju odnosno potpisivanje računa. Znači da ne bi stalno upisivali PIN za otključavanje certifikata na sticku ili kartici, koristi se zaseban certifikat koji (zajedno sa svojim "privatnim" ključem) postoji kao datoteka, file na disku.
Fina srećom omogućava preuzimanje takvog certifikata kao normalnu stvar, ali prvi put kad se preuzima certifikat se od korisnika zahtjeva da upiše password kojim se on zaštićuje. Preuzeti certifikat je onda enkriptiran s ovim passwordom, a sva buduća preuzimanja certifikata preuzimaju baš ovaj, tako zaštićeni certifikat.
Problem je u tome, kao što sam naišao u praksi a sudeći po forumima nisam jedini, ako ovaj password postane nedostupan - npr. zaboravi se, ili zaposlenik koji ga je znao umre (dogodi se…).
Debilna situacija sada je da se Fina pravi kao da se password certifikata ne može promijeniti (kao, ne zna se original podataka prije nego što su enkriptirani pa se ne može dekriptirati i ponovno enkriptirati novim passwordom), ali istovremeno postoji savršeno lako dostupna opcija da Fina "reaktivira" certifikat - što bi trebalo ponovno omogućiti da se na njega postavi password i omogući preuzimanje - uz plaćanje.
Znači sasvim je jasno da Fina ima duplikate privatnih ključeva kod sebe, ali da se trude praviti kao da ih nemaju.
Iskreno, to ne mora biti nužno loše jer aludira na to da postoje interne procedure koje ne dozvoljavaju baš svakom pristup tim kopijama, ali u Hrvatskoj, teško da će to ikog spriječiti da radi što god namjeri, pa bi možda bilo efikasnije da se prekine to pretvaranje.
Inače, kod ovog problema još čekam da strana koja je izgubila pristup svom passwordu s FINA-om dogovori reaktivaciju, vidjet ću kako će to ići.