Skip to content

Instantly share code, notes, and snippets.

@grakic
Last active May 15, 2023 08:29
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grakic/32af1e15ec626cae1e5e17e3c146c486 to your computer and use it in GitHub Desktop.
Save grakic/32af1e15ec626cae1e5e17e3c146c486 to your computer and use it in GitHub Desktop.
ePorezi na GNU/Linuxu

ePorezi na GNU/Linuxu

Zvanična klijentska aplikacija Poreske uprave se može preuzeti sa njihove stranice.

U pitanju je Java aplikacija koja dolazi sa posebno priređenom distribucijom Oracle Java radnog okruženja. Aplikacija podržava samo Microsoft Windows operativni sistem i sertifikatima u Personals skladištu pristupa kroz Microsoft CryptoAPI koji poziva operacije na pametnoj kartici ili tokenu posredstvom midlvera.

Sertifikaciono telo Pošte korisnicima nudi SafeSign midlver, osim u verziji za Windows i u verziji za GNU/Linux i macOS operativne sisteme. Midlver isporučuje prateću aplikaciju za upravljanje karticom/tokenom i PKCS#11 biblioteku. Programi poput jSignPDF, Evolution ili LibreOffice mogu da učitaju ovu biblioteku i omoguće korisniku elektronsko potpisivanje dokumenata.

Elektronsko potpisivanje se koristi i na portalu ePorezi Poreske uprave, posredstvom pomenute klijentske aplikacije.

Da bi klijentsku aplikaciju mogli da koristimo na GNU/Linuxu moramo da je naučimo da kartici/tokenu umesto kroz Microsoft CryptoAPI pristupa kroz SafeSign PKCS#11 modul. Minimalno (nezvanično) prerađena verzija ePorezi 1.0 tako da umesto MS CAPI koristi PKCS#11 sa odgovarajućim putanjama midlvera prema podrazumevanoj instalaciji na GNU/Linuxu se može preuzeti u obliku DEB paketa sa:

http://goranrakic.com/tmp/ePorezi_1.1.deb

Prepravljena verzija nije podržana od strane Poreske uprave. Napravljena je isključivo u najboljoj nameri, sa željom da se i korisnicima GNU/Linuxa omogući pristup portalu. Izmene menjaju samo deo aplikacije koji je okrenut ka kartici, bez izmena u delu koji je okrenut ka portalu. Za pristup kartici izmenjena aplikacija koristi isključivo postojeće PKCS#11 biblioteke i ne bi trebalo da dovede do oštećenja ili neočekivanog blokiranja kartice (kartica će biti blokirana u slučaju da korisnik više puta unese pogrešan PIN kod, što je podrazumevano ponašanje). Ipak napisano ne predstavlja garanciju i ovu nepodržanu i prepravljenu verziju koristite isključivo na svoju odgovornost.

Paket se instalira u /opt/ePorezi i dodaje prečicu za pokretanje i ujedno se registruje da se pokrene preko linka eporezi:// kakvi se koriste na portalu ePorezi (engl. url handler).

Neophodan preduslov je da imate karticu ili token sa sertifikatom koji izdaje Sertifikaciono telo Pošte, podešen čitač kartica i instaliran SafeSign midlver. PKCS#11 datoteka midlvera treba da se nalazi na putanji /usr/lib/libaetpkss.so.3.

Ukoliko ne koristite Javu iz standardnih paketa distribucije, već na primer Oracle instalaciju Jave, morate da podesite putanju do libpcscdlite datoteke prema uputstvu iz odeljka "Mogući problemi #1" sa ovog linka u protivnom aplikacija će prijaviti da ne vidi vaš čitač/token.

Klijentska aplikacija je minimalno izmenjena, samo koliko je bilo neophodno za učitavanje PKCS#11 modula. U slučaju greški aplikacija će "zakucati" ili "pući", i jedino u log zapisu ili eventualnom ispisu u terminalu možete da naslutite šta je problem. Ovakvo prepravljanje gotove aplikacije kada izvorni kod nije dostupan nije jednostavno i postoje ograničene mogućnosti za dodavanje nove funkcionalnosti. Verovatno bi bilo lakše i praktičnije napraviti novu alternativnu aplikaciju, koja bi mogla da izgleda i ovako.

Osim Sertifikacionog tela Pošte, PKCS#11 midlvere za Linux moguće da poseduju još Halcom (Nexus Personal) i PKS (NetSet CardEdge, koji moguće da radi i sa novim ličnim kartama). Starija verzija 32-bitnog NetSet CardEdge modula se može pribaviti u distribuciji KZO čitač aplikacije za Linux sa sajta RFZO ali pri radu sa novom ličnom kartom tu verziju, ni noviju koja „puca“ nakon unosa PIN-a, nisam uspeo da pokrenem.

@dragoslavnikolic
Copy link

Dešava se da prozor neće da se zatvori posle potpisane i poslate prijave, kao i da se aplikacija ne pokrene kada se inicira potpisivanje sa sajta PU.

@grakic
Copy link
Author

grakic commented Aug 30, 2017

Predlog rešenja koje ne zahteva izmenu njihove aplikacije? Neki watchdog u skripti za pokretanje?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment