Folosirea certificatelor în Linux

Creat de cios, Ianuarie 21, 2011, 08:55:09 PM

« precedentul - următorul »

cios

Utilizarea certificatelor (cele hard) este foarte largă, nu doar pentru semnare de documente: de la logarea în sistem sau în unele aplicații, la navigarea web sau trimiterea de mail. Și este o practică veche sub Linux. Problema o reprezintă aici nu lucrurile standard ci, ca de obicei, implementările particulare ale unor producători. Multe din cititoarele, smartcardurile sau USB-Token-urile produse sunt recunoscute automat în Linux și manageriate de daemonul pcsc.

Pentru celelalte însă sunt necesare drivere de la producători. Este cazul și al tokenurilor pe care se distribuie acum certificatele calificate de către firmele autorizate în România. Dacă vreți să folosiți un astfel de dispozitiv sub Linux, insistați la achiziționare să vi se pună la dispoziție și drivere specifice. Cel puțin deocamdată, pe viitor fiind șanse să fie cuprinse și acestea în lista proiectului OpenSC (bine-ar pica și puțină participare românească...).

Experiența personală a avut loc cu două tipuri de dispozitive de tip smartcard USB token: Oberthur ID One Cosmo 64 și Aladdin eToken 64 Pro. Cu primul n-am avut succes, deocamdată. Cu toate că producătorul se laudă în unele prezentări că pune la dispoziție drivere și un soft de management – AWP (Authentic Web Pack) – disponibil pentru toate sistemele de operare importante (Windows, Mac, Linux), n-am reușit să ajung în posesia versiunii de Linux, cea care ne interesa. Din păcate nu sunt prinse driverele, pentru acest model,  nici în OpenSC sau CCID (care sunt incluse în majoritatea distribuțiilor actuale de Linux). Din acest punct de vedere, la fel se petrec lucrurile și cu celălalt model, de la Aladdin. La acesta însă se găsește pachetul complet de instalare de la producător: eToken PKI Client.

Instalarea și folosirea lui nu ridică probleme unui utilizator obișnuit de Linux. Pachetul conține și documentația necesară, care e și suficientă. Pe distribuțiile mai noi (am făcut probe pe ultilele versiuni de Fedora) totul se poate reduce la câteva clicuri, dacă nu ești un nostalgic al terminalului sau un maniac al controlului propriului sistem. Se instalează un serviciu propriu și un executabil cu interfață grafică (eToken) pentru administrare.

Installer-ul pune la locul lor toate librăriile necesare. Esențial pentru comunicarea cu dispozitivul hardware este acel shared object (.so), echivalentul dll-ului pentru Windows, în cazul nostru (Aladdin eTocken și Fedora/RedHat) fiind vorba de libeTPkcs11.so, localizat în /usr/lib sau /usr/lib64, în funcție de versiunea 32 sau 64 biți. Important: pentru compatibilitate, Firefox sau Thunderbird trebuie să fie pe aceeași versiune cu .so-ul – nu funcționează Firefox pe 64 biți cu .so-ul pe 32, sau invers.

O primă probă de funcționalitate a driverului se poate face tocmai întruna din aceste aplicații, Firefox sau Thunderbird. Modalitatea este descrisă complet în documentația venită în pachet sau pe paginile distribuitorilor. Din momentul în care se Load-ează corect modulul – în  Thunderbird / Edit / Preferences / Advanced / Certificates / Security Devices / Load, alegând locația potrivită pentru so (/usr/lib/libeTPkcs11.so sau /usr/lib64/libeTPkcs11.so) și ați putut intra în Log In (din aceeași pagină, cu parola tokenului) – o să apară certificatul nou în Thunderbird / Edit / Preferences / Advanced / Certificates / Views Certificates / Your Certificates . Din  Thunderbird îl și puteți folosi la semnat mesaje trimise.

Folosirea tokenului, sau în general a certificatelor depozitate pe smartcard – PKCS#11 -, în alte aplicații poate fi diferită față de cea din produsele Mozilla (Firefox și Thunderbird). Unele dintre acestea, gen Open Office, se folosesc automat de modulele încărcate în Mozilla (prioritar de cele din  Thunderbird). Altele, gen Adobe Acrobat Reader, permit din propriile setări încărcarea .so-ului, direct din lib-ul sistemului de operare.

Aplicații specifice pot folosi API-urile limbajului de programare în care sunt scrise. Pentru Java există pachete standard ce se ocupă de smartcard și PKCS#11 incluse în JRE (Java Runtime Environment), mașina virtuală ce îndeobște se instalează default pe majoritatea sistemelor de operare. Aplicațiile scrise în Java au avantajul, pe lângă faptul că sunt portabile – rulează la fel pe orice mașină/sistem de operare -, utilizării unor standarde de performanță și securitate.
  •