APR NexU i bitnost Windowsa
Klijentska aplikacija NexU-APR nije ogovarajuće podešena za korisnike 64bitne verzije Windowsa, kada se koristi PKCS#11 kao metod pristupa tokenu, a posebno problem imaju korisnici sertifikata sertifikacionog tela Halcom čak i kada instaliraju novu verziju Nexus Personal midlvera.
Kod 32bitnog Windowsa svi programi i komponente su 32bitni pa ne dolazi do zabune. Međutim kod 64bitnog Windowsa moguće je pokretati i 32bitne i 64bitne programe pa je potrebno tačno upariti Javu, klijentsku aplikaciju i PKCS#11 modul.
NexU-APR aplikacija dolazi sa sopstvenom instalacijom Jave. Zato instalacioni paket ima čak 80 megabajta, ali je zgodno što će makar Java biti ispravno podešena. Ova verzija Jave je 32bitna, pa bez obzira imate li 64bitni ili 32bitni Windows kada instalirate i pokrenete NexU-APR aplikaciju koristićete 32bitnu Javu. To će nam kasnije biti značajno.
Instalacija midlvera
Instalacije midlvera uglavnom dolaze u različitoj varijanti za 32bitni i 64bitni Windows (AET SafeSign za korisnike Pošte, TrustEdgeID za PKS/MUP/Vojsku, te RSIDCardMW za stare lične karte). Ukoliko koristite 64bitni Windows potrebno je da instalirate 64bitnu verziju instalacije midlvera.
Nexus Personal za Halcom sertifikate u sebi sadrži obe verzije, dok IDPrime za korisnike sertifikacionog tela E-Smart ima deo koji zavisi od „bitnosti“ sistema, i zajedničku instalaciju za PKCS#11 modul.
TrustEdgeID dolazi u dve verzije, postoji stara verzija koja ima odvojenu instalaciju za PKS i MUP, te nova verzija (dostupna sa sajtova sertifikacionog tela PKS i Vojske) koja podržava rad sa karticama i tokenima sva tri tela. Instalacija nove zajedničke verzije uklanja odvojene instalacije.
PKCS#11 moduli
Sve pomenute 64bitne instalacije midlvera kada se instaliraju u sebi sadrže i 32bitnu i 64bitnu verziju PKCS#11 modula. U pitanju je .dll datoteka koja se nakon instalacije nalazi negde na računaru. Ovaj modul se najčešće naslanja na Windows i midlver sa kojim korisnik interaguje preko nekog pomoćnog programa (npr. Token Manager, Token Administrator,…).
Drugi programi (Mozilla Firefox ili u ovom slučaju NexU-APR) mogu da učitaju PKCS#11 modul i tako koriste pametnu karticu ili token za kriptografske operacije. Na taj način programi mogu da podrže različite uređaje, pod uslovom da uređaj poseduje ispravan PKCS#11 modul koji korisnik može da učita u program.
Alternativa PKCS#11 modulima je da programi koriste uslugu Windows operativnog sistema (u NexU-APR aplikaciji ovo je opcija „Microsoft skladište ključeva“) kada se zaobilazi PKCS#11 modul i tokenima pristupa kroz Microsoft CryptoAPI (skraćeno MS-CAPI).
Sa oba je moguće postići sličan rezultat, a izbor uglavnom zavisi od mogućnosti tehnologije kojom se pravi aplikacija. Midlveri za tokene i kartice koje koriste domaća sertifikaciona tela podržavaju oba interfejsa, iako bi teorijski mogao da postoji token koji ima samo PKCS#11 ili samo MS-CAPI podršku. Pristupom kroz PKCS#11 veći akcenat se stavlja na uređaj koji sadrži objekte (ključevi, sertifikati) i nudi operacije. Pristupom kroz MS-CAPI dobija se lista instaliranih sertifikata u Personal skladištu, bez obzira u kom uređaju se nalaze, a operacije sprovodi operativni sistem preko registrovanog midlvera.
Programi koji učitavaju PKCS#11 module mogu da rade i na drugim operativnim sistemima (pod uslovom da je i odgovarajući PKCS#11 modul dostupan za taj sistem), dok je MS-CAPI interfejs dostupan samo na Windowsu.
Midlver može da ima različiti kvalitet implementacije ova dva interfejsa, pa tako neki token može da radi pouzdano kada mu se pristupa kroz MS-CAPI, a da izaziva rušenje aplikacije kada korisnik pokuša da koristi PKCS#11 modul. Ili može da ne vidi ili prikazuje ranije uočene sertifikate kroz MS-CAPI, a da sasvim ispravno radi kroz PKCS#11 interfejs.
Kada se koristi MS-CAPI u kombinaciji sa pametnim karticama i tokenima Windows automatski poziva midlver prema ATR vrednosti, dok u slučaju PKCS#11 interfejsa taj deo mora da odradi aplikacija ili da prepusti korisniku da ručno izabere modul.
Izbor PKCS#11 modula u NexU-APR aplikaciji
Kako se NexU-APR pokreće 32bitnom Javom bez obzira da li koristite 32bitni ili 64bitni Windows, potrebno je da se u aplikaciji odabere 32bitni PKCS#11 modul.
Kada koristite 32bitni Windows situacija je jasna - sve je 32bitno i problema nema. Ali ako imate 64bitni Windows, potrebno je da prvo instalirate 64bitnu instalaciju midlvera, ali zatim da u NexU-APR aplikaciji odaberete putanju za 32bitni PKCS#11 modul! Ako bi u tom slučaju pokušali da u NexU-APR aplikaciji odaberete 64bitni modul prikazaće se greška:
Opis greške nije tačan. Greška se javlja jer biblioteka ne odgovara Javi (koja je 32bitna), a ne zato što ne odgovara sistemu.
Putanja do 32bitnog PKCS#11 modula može da se razlikuje na 32bitnom i na 64bitnom sistemu. Zato evropski projekat DSS
NexU na kome je zasnovana APR-ova aplikacija omogućava programerima da u konfiguraciji aplikacije navedu jednu
putanju do 32bitnog PKCS#11 modula na 32bitnom i drugu do istog modula na 64bitnom Windowsu. Kada se ispravno podesi,
olakšava se korisnicima jer se automatski bira prava putanja. Međutim programeri koji su priredili
APR-ovu aplikaciju su ovo izgleda pogrešno razumeli i u drugom slučaju naveli putanje do 64bitnih modula što dovodi do gore
prikazane greške. APR NexU aplikacija inicijalno učitava prvi PKCS#11 modul na koji naiđe, uopšte ne proveravajući
bitnost Jave i operativnog sistema. U konfiguraciji 64bitne putanje su navedene prve, pa ih aplikacija inicijalno nudi
kada postoje nakon instalacije 64bitnog midlvera. Programeri 64bitne putanje nije trebalo da navode u konfiguraciji pošto nikako ne mogu da rade sa 32bitnom Javom. Ispravno rešenje bi bilo prepoznati bitnost samog Windowsa *), a zatim učitati putanju do 32bitnog PKCS#11 modula pošto znamo da aplikacija dolazi sa svojom 32bitnom Javom.
Igrom slučaja, izuzev kod Halcoma, kod svih su putanje do 32bitnog modula iste i na 32bitnom i na 64bitnom Windowsu.
Korisnici Halcom sertifikata moraju da izmene putanju, pošto se tu putanje razlikuju i nije moguće da se na 64bitnom Windowsu samo izabere ponuđena 32bitna putanja.
Greška prilikom potpisivanja dokumenta: java.security.InvalidKeyException: Private keys must be instance of RSAPrivate(Crt)Key or have PKCS#8 encodingRеšenje je da u prvom koraku birate drugu opciju, Microsoft skladište ključeva umesto opcije za direktan pristup tokenu.
Tačne putanje do 32bitnog PKCS#11 modula za midlvere tokena sertifikacionih tela u Srbiji su date u tabeli.
Naziv midlvera | 32bitni modul na 32bitnom Windowsu |
32bitni modul na 64bitnom Windowsu |
---|---|---|
AET SafeSign (Pošta) | C:\Windows\System32\aetpkss1.dll | (koristi se ista putanja, vidi napomenu) |
Nexus Personal (Halcom) | C:\Program Files\Personal\bin\personal.dll | C:\Program Files (x86)\Personal\bin\personal.dll |
RSID Card MW (MUP, lične karte pre 18.8.2014) | C:\Program Files\MUP RS\Republic of Serbia ID Card Middleware\rsidp11_x86.dll | |
MUP TrustEdgeID | C:\Program Files\NetSeT\TrustEdgeID\netsetpkcs11_x86.dll | |
PKS TrustEdgeID (stari) | C:\Program Files\NetSeT\TrustEdgeID PKS\netsetpkcs11_x86.dll | |
TrustEdgeID (novi zajednički za PKS/MUP/VS) | C:\Program Files\TrustEdgeID\netsetpkcs11_x86.dll | |
IDPrime (E-Smart) | C:\ESSQCA\pkcs11\IDPrimePKCS11.dll |
Izvor: Putanje pkcs#11 midlvera sertifikacionih tela u Srbiji
Kako da izmenite putanje u NexU-APR?
Da izmenite podešavanja, na primer za MUP, izaberite u listi Sertifikaciono telo MUP Republike Srbije pa kliknite na Detaljna podešavanja. Zatim odaberite TrustEdgeID - 64bit kako bi popravili tu putanju, pa kliknite na Izmeni. U prozorčetu koje će se otvoriti kliknite na dugme Odaberi, a potom u polje na dnu kopirajte putanju iz tabele.
Potvrdite klikom na Open ili Otvori i zatim kliknite na Prihvati.
Postoji i donekle jednostavan način da trajno ispravite sve putanje odjednom.
Preuzmite ovu ZIP arhivu i otvorite je. U njoj se nalazi XML datoteka sa podešavanjima koja ćemo ubaciti u NexU aplikaciju. Ukoliko je aplikacija pokrenuta, najpre zatvorite NexU desnim klikom na ikonicu pored sata, pa iz menija izaberite Izlaz i sačekajte da ikonica nestane.
Sada treba da otvorimo fasciklu (folder) sa podešavanjima NexU aplikacije i to tako što na tastaturi istovremeno pritisnete Win taster i taster R, ili iz Start menija odaberite opciju Run/Pokreni. Kopirajte %userprofile%\.NexUApr u polje za unos i kliknite Ok, odnosno U redu.
Ukoliko uradite tako, otvoriće se fascikla sa NexU podešavanjima.
Prevucite XML datoteku iz ZIP arhive u fasciklu sa podešavanjima NexU aplikacije, menjajući postojeću. Pokrenite ponovo NexU aplikaciju i sve putanje će biti ispravne, a među putanjama za Sertifikaciono telo MUP-a dobićete i dodatnu opciju sa putanjom za novi TrustEdgeID midlver.
Novi TrustEdgeID midlver
Novi zajednički TrustEdgeID midlver podržava nove lične karte (od 18.8.2014), kartice i tokene Privredne komore Srbije i sertifikacionog tela Vojske Srbije. Dostupan je za preuzimanje sa sajtova PKS i Vojske, a njegova instalacija će obrisati prethodne odvojene instalacije za MUP i PKS, pa postojeće putanje u NexU aplikaciji neće raditi.
Pri pravljenju liste dostupnih sertifikata NexU-APR aplikacija prihvata samo one sertifikate koji odgovaraju izabranom sertifikacionom telu, dok će ostali sertifikati biti prikazani sa crvenim kružićem kao nevalidni.
To znači da ukoliko koristite zajednički midlver u NexU-APR aplikaciji morate da dodate i opciju sa putanjom do zajedničkog modula prema tabeli iznad, unutar ponuđenih putanja za Sertifikaciono telo MUP Republike Srbije.
Ove putanje već postoje među ponuđenima za PKS pa tu neće biti problema.
Aplikacija NexU-APR nema podršku za sertifikate koje izdaje sertifikaciono telo Vojske Srbije kada se koristi PKCS#11 kao metod pristupa tokenu. Moguće da podrška postoji kada se koristi Windows skladište sertifikata. Do sada nikada nisam video dokument potpisan takvim sertifikatom i ne znam kome su sertifikati dodeljeni niti koliko ih je izdato.
Oznaka slota
Kod PKCS#11 modula oznaka slota zavisno od implementacije modula može da označava redni broj čitača kartica ili tokena, ili redni broj kontejnera unutar jednog tokena ili kartice.
Ukoliko koristite više čitača kartica na računaru, ili ste nekada imali drugi čitač, ili koristite tokene (što je zapravo čitač kartica i kartica spojeno u jednom uređaju) najverovatnije ćete morati da podešavate i slot. Nažalost, mislim da nema lakog načina da saznate pravu vrednost već morate da isprobavate.
Isprobajte uvek najpre slot 0.
Ako se prikaže ova greška, a sigurni ste da ste izabrali pravo sertifikaciono telo i vidite sertifikate u pratećoj aplikaciji (Token Administrator, Token Manager, Nexus Personal...) znači da aplikacija traži sertifikate na pogrešnom mestu, pa povećajte slot za 1 i pokušajte ponovo. |
Ako se prikaže ovakva greška, znači da smo preterali sve slotove (obratite pažnju na deo poruke „but token only has ... slots“), pa smanjite slot za 1 i pokušajte ponovo. |
Zavisno od redosleda korišćenja tokena i kartica oznaka slota može da se promeni. Ne mora da znači da token koji je ranije radio sa slot 1, sada neće zahtevati slot 0 i obrnuto.
Biću zahvalan ako u komentaru napišite efikasniji način da se odredi prava vrednost slota, posebno ako imate programersko iskustvo u radu sa PKCS#11 modulima.
Srećno u potpisivanju!
13 komentara
22 feb 2017 Zoran
Svaka čast na objašnjenju. Dodao bih da Halcom traži dodatna podešavanja Mozilla Firefox za rad sa njihovim sertifikatom, a objašnjenje možete pronaći na njihovom sajtu http://www.halcom.rs/rs/podrska/?action=showEntry&data=1198
Mislim da je APR, uprkos dobroj nameri, napravio veliku pometnju jer nisu sve knjigovođe vične softverskom podešavanju računara, tako da ovakva objašnjenja mnogo pomažu, kako njima, tako i nama koji im pomažemo u radu. Hvala.
22 feb 2017 Saša
Svaka čast Gorane! Hvala veliko na ovom članku. Veoma informativan i koristan članak koji mi je puno pomogao!
23 feb 2017 Vojislav
Putanja koja je data ''C:\Program Files\NetSeT\TrustEdgeID\netsetpkcs11_x86.dll'' i koristi se prilikom instaliranja MUP RS aplikacije može da bude problem ukoliko prilikom instalacije odaberete ''D'' particiju. Ukoliko se to desi, moraćete opet kao što je gore navedeno da sami ručno izmenite putanju sa ''C'' particije na ''D'' particiju pa bi onda ona bila ''D:\Program Files\NetSeT\TrustEdgeID\netsetpkcs11_x86.dll''. Slobodno kopirati putanju ali bez znakova navoda.
23 feb 2017 Goran Rakić
Hvala Zorane.
Sva sertifikaciona tela traže da dodatno konfigurišete PKCS#11 modul u Firefoxu. Međutim to se koristi samo ako sajt implementira prijavu klijentskim sertifikatom. Od domaćih servisa tu opciju nudi jedino portal eUprava. Moja preporuka je da osim ako ne koristite baš tu mogućnost (prijava sertifikatom na portalu eUprava) preskočite taj korak instalacije. Firefox će se brže pokretati i neće štuckati zavisno od toga da li je ubačena kartica ili ne.
23 feb 2017 NEMANJA
Gorane majstore, hvala ti puno, namucio sam se bas, ovo sam nikad ne bih provalio, a pomoc dobiti od PKS ili nekog drugog je nemoguce.
24 feb 2017 Branko
Pozdrav Gorane,
Probao sam da koristim aplikaciju na 64-bit Windows7 platformi. Pri startovanju se dobija dijalog "Insert Smart Card", gde u detaljima stoji da je Smart Kartica prepoznata ali ne odgovara zahtevanoj operaciji ili nedostaje drajver ili su istekli sertifikati. Svaki put sam obavesten porukom da windows nije u mogucnosti da instalira drajver za datu smart karticu( RS licna karta ). Drajver je preuzet sa sajta MUP-a i kartica se ocitava normalno unutar CELIK+ aplikacije, medjutim NexU-Apr uvek izbacuje poruku koju sam naveo, pri cemu je citac kartice normalno prepoznat, a za samu karticu stoji Republic of Serbia ID.
Svaka pomoc je dobrodosla.
Branko
24 feb 2017 Nenad
Gorane, Hvala puno. Zaista si nam pomogaoa. Sramota za APR da ovako nesto previde i otezaju svima a da se niko ne obavesti.
24 feb 2017 Zlaja
Svaka čast na svemu ovome, ne smem ni da kažem koliko ljudi ima problema zato što nisu usaglasili sva sertifikaciona tela da rade kako treba i što jednostavnije jer knjigovođe nisu programeri.
25 feb 2017 ivan.ng
Hvala Gorane na detaljnom pojasnjenju!
27 feb 2017 Goran
Imenjače, da nisam ovo pronašao nikad ne bih rešio problem. Ovi iz APR-a nisu normalni, da li su oni išta testirali, uputstva katastrofa. Vrteo sam se satima sa 64-bit Firefoxom, ne vidi da je pokrenut NexU-APR pa nema ni potpisivanja. Znao sam da je problem kod njih, idioti, a vreme za predaju FI ističe. Koliko sati i nerava će biti utrošeno, mnogi sigurno neće naći rešenje. HVALA TI!!!
28 feb 2017 Vojkan
Hvala vam što ste izdvojili vreme da napišete ovaj post. Dobro bi došla i neka kraća verzija i verzija ovog posta.
Konkretno meni pre nekoliko dana nije radila aplikacija (Greška: "Nije pronađena klijentska aplikacija za potpisivanje NexU APR. Pokrenite je." čak i kada je program NexU-APR pokrenut) i onda posle nekih 15 minuta isprobavanja raznih opcija u podešavanju brauzera, isljučivanju anti-virusa i slično, nekako je proradila bez da sam shvatio zašto.
Danas, se već duže vreme igram sa ovim i stalno ista greška (Greška: "Nije pronađena klijentska aplikacija za potpisivanje NexU APR. Pokrenite je."). Koristim Firefox na 64bitnom Windows-u 7 i poštin sertifikat. Instalirana je i ažurirana poslednja verzija 32-bitne jave.
Sve u svemu, mislim da su ljudi iz instituta Mihajlo Pupin veoma loše odradili ovu aplikaciju.
28 feb 2017 Dule
Ja sam evo izgubio ceo dan oko 64-bitnog windowsa, ali evo sada i na 32 bitnoj verziji Firefox ne vidi da je pokrenut NexU-APR ma sta god da radim, pa nikako nista ne mogu da potpisem. Ima li neki predlog?
5 mar 2017 Goran Rakić
@Dule, @Vojkan: Dešava se da NexU aplikacija ne instalira ispravno svoj sertifikat u Firefox što dovodi do toga da aplikacija ne može da bude pronađena iako je pokrenuta i radi iz drugih browsera. Sertifikat kao izuzetak možete da dodate i ručno tako što nakon pokretanja NexU aplikacije u Firefoxu otvorite sajt:
https://localhost:9889/favicon.ico
Prikazaće vam se upozorenje da veza nije bezbedna ("Your connection is not secure") zato što Firefox ne zna za sertifikat i misli da vas neko navodi da posetite lažni sajt. Kliknite na dugme [Advanced] sa desne strane, pa zatim [Add Exception] u polju koje će iskočiti. U prozoru kliknite [Confirm Security Excepton] dugme da potvrdite izuzetak.
Ako ste ispravno odradili videćete ikonicu NexU aplikacije umesto upozorenja. Sada možete da otvorite stranicu za potpisivanje i NexU aplikacija će biti pronađena.
@Vojkan: NexU aplikacija dolazi sa svojom Javom tako da nije bitno koja verzija je instalirana na sistemu. Pogledajte uvek pored sata i potražite ikonicu aplikacije moguće da je aplikacija već pokrenuta i da zato povremeno dobijate prvu grešku. Morate prvo da zatvorite aplikaciju da bi je pokrenuli ponovo.