Gemalto Cryptoflex na Linuxu

Ovaj podsetnik je pravljen za

Instalacija softvera

Paket OpenCT je verovatno već instaliran. Treba ga deinstalirati i instalirati OpenSC (OpenCT će biti ponovo instaliran kao dependency), i instalirati engine_pkcs11 modul za OpenSSL.

yum -y erase openct
yum -y install opensc engine_pkcs11 tinyca2 gdm-plugin-smartcard
openct-control init

Verovatno su već instalirani ccid (drajver za razne smart kartice), pcscd i coolkey.

Detekcija čitača i kartice

Utaknuti USB smart card reader. Možemo izlistati prepoznate čitače:

opensc-tool -l

Ako je pod rednim brojem 5 prijavljen GemPlus GemPC Twin čitač, možemo ubaciti karticu i proveriti njen tip:

opensc-tool -r 5 -n

Možemo rekurzivno izlistati sadržaj kartice (ako je potreban PIN, ne mora prikazati sve):

opensc-tool -r 5 -f

Za Cryptoflex kartice postoji i poseban program cryptoflex-tool.

Inicijalizacija kartice

OpenSC programi neće raditi sa karticom sve dok se ona ne inicijalizuje po PKCS#15 standardu. Osnovno kreiranje strukture fajlova postiže se komandom:

pkcs15-init -C

(tu će pitati za security officer PIN (koji nam ne treba) i transport key; ukoliko transport key nije menjan može se preuzeti default vrednost).

Sada je potrebno dodati PIN:

pkcs15-init --store-pin --id 01 --label "Branko Milosavljevic"

Dalje se može generisati par ključeva na kartici:

pkcs15-init --generate-key rsa/1024 --auth-id 01 --label "Branko Milosavljevic"

Potom se može izlistati sadržaj objekata na kartici. Tom prilikom treba zapamtiti i ID ključa (tipično 45):

pkcs15-tool -D

Kartica leži u nekom od virtuelnih slotova. Slotove možemo izlistati komandom:

pkcs11-tool -L

Za generisanje self-signed sertifikata koristićemo OpenSSL i modul engine_pkcs11. Obrati pažnju na slot u kome se nalazi kartica i ID ključa (u ovom primeru slot je 8, a ID ključa je 45).

$ openssl
OpenSSL> engine -t dynamic -pre SO_PATH:/usr/lib/openssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so
OpenSSL> req -engine pkcs11 -new -key slot_8-id_45 -keyform engine -x509 -out cert.pem -text
OpenSSL> quit

Umesto self-signed sertifikata, izostavljanjem opcije -x509 može se generisati CSR fajl koji se šalje CA-ju na potpisivanje.

Sada se generisani sertifikat može upisati na karticu:

pkcs15-init --store-certificate cert.pem --auth-id 01 --id 45 --format pem

Firefox

Thunderbird

Procedura je istovetna kao i za Firefox. Nakon što se registruje kartica i čitač, u Account Settings / Security može se izabrati sertifikat na kartici za potpisivanje i šifrovanje email poruka.

OpenOffice

Na Linuxu, OpenOffice deli definicije sertifikata sa Mozilla browserom (Firefox), tako da bi uz prethodno podešavanje ovih programa potpisivanje dokumenata već trebalo da radi i u OpenOfficeu.

Adobe Reader 9

Izabrati Document / Security Settings, registrovati novi PKCS#11 modul, izabrati fajl /usr/lib/pkcs11/opensc-pkcs11.so, proveriti da li se vidi sertifikat. Potpisivanje može da se radi na dokumentima nad kojima je potpisivanje dozvoljeno (često nije). Šta je dozvoljeno može se proveriti u Document / Security / Show Security properties.

Java

Java programi će koristiti OpenSC kao PKCS#11 provajder uz odgovarajući cfg fajl:

name = OpenSC
description = SunPKCS11 w/ OpenSC Smart card Framework
library = /usr/lib/pkcs11/opensc-pkcs11.so
attributes(*,CKO_PRIVATE_KEY,*) = {
CKA_TOKEN = true
CKA_PRIVATE = true
CKA_DECRYPT = true
CKA_SIGN = true
}

Login

Za login se koristi:

Uključivanje pam_pkcs11

Prvo je potrebno uključiti upotrebu pam_pkcs11 modula za autentifikaciju. To je najlakše uraditi pomoću grafičkih alata. Otvoriti System / Administration / Authentication, kartica Authentication, uključiti Enable Smart Card Support, kliknuti na Configure Smart Card, izabrati šta se dešava kada se kartica izvadi (ignore ili lock) i pozatvarati prozore. Nakon ovoga u fajlu /etc/pam.d/system-auth dodati su redovi:

auth        [success=1 default=ignore] pam_succeed_if.so service notin login:gdm:xdm:kdm:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid
auth        [success=done authinfo_unavail=ignore ignore=ignore default=die] pam_pkcs11.so

Konfiguracija pam_pkcs11

Drugo, potrebno je konfigurisati pam_pkcs11 modul u fajlu /etc/pam_pkcs11/pam_pkcs11.conf. Sledeće linije treba proveriti/izmeniti:

enable_ocsp = false;
use_pkcs11_module = opensc;
cert_policy = none;
use_mappers = cn, none;

U okviru definicije opensc modula treba dodati red:

nss_dir = /etc/pki/nssdb;

Prilikom konfigurisanja isplati se uključiti debug mod:

debug = true;

Instaliranje CA sertifikata

Kao mini aplikacija za rad CA može da posluži TinyCA2. Potrebno je inicijalizovati CA, i potom potpisati korisnički sertifikat (koji je generisan pomoću OpenSSL, samo bez opcije -x509).

Eksportovani CA sertifikat iz TinyCA2 može se importovati u NSS bazu:

certutil -A -n "Moj root CA" -t "CT,C,C" -a -i CAcert.pem -d /etc/pki/nssdb

Provera korisničkih sertifikata

Programom pkcs11_inspect može se proveriti da li se sertifikat na kartici ispravno validira.

$ pkcs11_inspect
PIN for token:
Printing data for mapper cn:
Branko Milosavljevic

Programom pklogin_finder proverava se da li će izabrani maperi (u našem slučaju cn maper) pravilno mapirati korisnika na sistemu na osnovu DN u sertifikatu. CN maper koristi CN polje iz DN-a u sertifikatu za pronalaženje korisnika.

$ pklogin_finder
PIN for token:
branko

Prijavljivanje na sistem

Ako je instaliran gdm-plugin-smartcard, na login ekranu će se pojaviti i stavka "smart card authentication", koja će omogućiti autentifikaciju pomoću kartice i PIN-a. Ukoliko su prethodne provere bile uspešne, i stvarno prijavljivanje na sistem bi trebalo da bude uspešno.

BrankoMilosavljevic/Cryptoflex (poslednja promena 2009-10-25 04:02:53, BrankoMilosavljevic)