Midlver za ličnu kartu na GNU/Linuxu, naokolo brže
Naslov je obmanjujući. Nemam midlver koji mogu da pokrenem na GNU/Linuxu, ali znam način kako da zvaničan PKCS#11 modul za Windows učinim dostupnim na GNU/Linuxu.
Ideja je da na Windows računar (server, virtuelna mašina, kutija u ćošku) instaliramo zvaničan midlver preuzet sa sajta MUP CA, uz koji dolazi i PKCS#11 modul. Čitač kartice treba da bude priključen na Windows računar. Ako to nije lokalna virtuelna mašina koja ima pristup USB priključku računara, može se koristiti neka mrežna redirekcija USB priključka. Cilj je da dobijemo lokalno prikopčan čitač koji deluje kao da je zakačen na Windows računar.
Glavnu podršku pruža pkcs11-proxy.
Iz ovog paketa, na Windows računaru obezbedimo pkcs11-daemon koji omogućava komunikaciju sa zvaničnim modulom mrežnim putem.
Na GNU/Linux računaru postavimo pkcs11-proxy PKCS#11 modul koji sve zahteve kroz mrežu isporučuje pkcs11-daemon procesu na Windowsu, a putem njega zvaničnom midlveru. Zvaničan midlver komunicira sa čitačem koji deluje kao da je zakačen na Windows računar iako je zapravo zakačen lokalno na GNU/Linux računar.
Vredi istaći da pkcs11-daemon ne obezbeđuje sigurnost veze. Ako mreža nije bezbedna, protokol se može provući kroz SSH tunel.
Priredio sam kompilirani paket za Windows pkcs-daemon.zip. Izdanje 32bit, mingw gcc kompilator, Git stablo od 5. aprila ove godine.
Pretpostavljajući da je IP adresa Windows računara 192.168.122.26, kuckamo:
set PKCS11_DAEMON_SOCKET tcp://192.168.122.26:4242 pkcs11-daemon.exe "C:\Program Files\MUP RS\Republic of Serbia ID Card Middleware\rsidp11_x86.dll"
Na GNU/Linux računaru iz izvornog koda prevedemo pkcs11-proxy.so i postavimo promenljivu okruženja PKCS11_PROXY_SOCKET na istu vrednost kao prethodnu promenljivu na Windowsu.
Programima sada treba ponuditi pkcs11-proxy.so kao PKCS#11 modul. Na primer:
$ export PKCS11_PROXY_SOCKET="tcp://192.168.122.26:4242" $ pkcs11-tool --module ./libpkcs11-proxy.so -L Available Available slots: Slot 0 (0x0): Gemplus USB Smart Card Reader 0 token label: RS ID Card token manuf: NetSeT d.o.o. token model: RS ID Card token flags: readonly, login required, PIN initialized, token initialized, user PIN count low, user PIN locked serial num :
Program pkcs11-tool je deo opensc paketa. Ili isto to u Firefoxu na GNU/Linuxu nakon učitavanja novog sigurnosnog uređaja (Podešavanja > Napredno > Sigurnosni uređaji):
Da bi učitavanje bilo uspešno, Firefox mora biti pokrenut iz školjke u kojoj je postavljena promenljiva (najlakše ubaciti promenljivu u samu sesiju). Na portalu eUprava klikom na prijava sertifikatom Firefox NSS pita za unos PIN koda. Prethodno treba omogućiti Ponovno ssl dogovaranje (security.ssl.allow_unrestricted_renego u about:config). Kartica mi je blokirana, ranijim neodgovarajućim unosom PIN koda pri programiranju, pa dalje ne mogu da isprobam :) Neka to posluži i kao upozorenje drugima, nema garancije.
3 komentara
25 jun 2012 Goran
Aleksandre,
Sigurno da jeste moguće, ali mislim da ti je za logovanje na Windows ako on nije član aktivnog direktorijuma potreban i neki dodatan softver. Ne vidim zašto bi morao da koristiš ličnu kartu za ovo. Bilo koja druga pametna kartica sa parom ključeva i samoizdatim sertifikatom će ti vršiti posao, a ključevi su u tom slučaju sigurno samo kod tebe.
13 okt 2011 Ivan Janković
Poslednjih meseci sam se malo bavio ovom tematikom, pa me je oduševolo ovo što si uradio sa ličnom kartom. FreeSteel lepo radi, ali je elektronski potpis tek prava stvar. Da vidim koliko mogu da pomognem, da napravimo pravu Linux implementacuju midlver-a. Koristio sam http://www.rohitab.com/apimonitor
i uspeo da uhvatim pozive PCSC funkcija sa parametrima za CELIK i Saobraćajnu(mogu negde da ih okačim ako su potrebne). Pokrenuo sam pkcs11-testing uz rsidp11_x86.dll. Kada izlistam mahanizme lepo odgovori. Api pokazuje da zadaje VERIFY comand kartici i ona odgovara da je preostalo 3 pokušaja. Sada bih trebao da idem u MUP da mi izdaju sertifikat, pa da probam nešto ozbiljnije. Ja sam iz Mladenovca pa neznam da li to radi Mladenovac ili Ljermontova. A, i onaj papir sa šifrom sam odavno izgibio, to beše rešava zahtev za deblokadu?
Radujem se budućoj saradnji, Ivan
17 dec 2011 Aleksandar Jeremic
Hteo sam postaviti jedno pitanje na koje ne mogu da nadjem odgovor guglovanjem... A nisam rad da dajem 10-20e da bi isprobavao. Da li je mogu ce koristiti biometrijsku LK (sa chipom) za logovanje na windows umesto user/pass kombinacije, i da li se moze koristiti za autentikaciju prilikom koriscenja BitLockera (win7 alatka za enkripciju diskova i fajlova) Unapred zahvalan