Documento traducido/adaptado de:
ONA Txartela Ubuntu Linuxen nola instalatu eta erabili
Egilea: Juanan Pereira
Posta-elektronikoa: juanan.pereira@ehu.es
Bertsioak:
1.0 (Lehenengo bertsioa) - 2008.01.20
Lizentzia: CC-by-nc-sa
Entendemos por tarjeta PKI una tarjeta electrónica que incluye en su interior una llave digital firmada por un ente certificador. Es una manera de asegurar nuestra identidad.
En el estado hay varias tarjetas PKI:
Vamos a suponer que ya tenemos una tarjeta PKI y un lector. Para los ejemplos se ha usado una tarjeta ONA y el lector integrado en un Dell LAtitude D820 y también a sido probado con un lector USB de la marca GEMPLUS.
Lo primero es instalar un par de herramientas que nos permitirán acceder a la tarjeta desde consola-
sudo apt-get install pcscd pcscd-tools pcsc-tools
Tras instalar estas herramientas, procederemos a reiniciar el equipo.
El primer paso es comprobar si el lector está funcionando en GNU/Linux. Para ello usaremos pcsc_scan
sudo pcsc_scan PC/SC device scanner V 1.4.9 (c) 2001-2006, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.4.2 Scanning present readers 0: O2 Micro Oz776 00 00 Wed Jan 16 12:01:53 2008 Reader 0: O2 Micro Oz776 00 00 Card state: Card removed,
Interesa fijarse en que a detectado un lector, y que ha detectado que la tarjeta NO esta insertada. Si la insertamos:
Wed Jan 16 12:02:12 2008
Reader 0: O2 Micro Oz776 00 00
Card state: Card inserted,
ATR: 3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1
ATR: 3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1
+ TS = 3B --> Direct Convention
+ T0 = B7, Y(1): 1011, K: 7 (historical bytes)
TA(1) = 94 --> Fi=512, Di=8, 64 cycles/ETU (55800 bits/s at 3.57 MHz)
TB(1) = 00 --> VPP is not electrically connected
TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1
-----
TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1
-----
TA(3) = FE --> IFSC: 254
TB(3) = 65 --> Block Waiting Integer: 6 - Character Waiting Integer: 5
+ Historical bytes: 53 50 4B 32 33 90 00
Category indicator byte: 53 (proprietary format)
+ TCK = D1 (correct checksum)
Possibly identified card (using /usr/share/pcsc/smartcard_list
.txt):
3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1
Giesecke & Devrient Starcos 2.3
Deutsche Bank WebSign (RSA-Card)
A detectado una “posible” tarjeta como las del deutsche bank.
Una vez que sabemos que funciona el lector vamos a investigar que hay dentro de la tarjeta. Vamos a instalar una nueva herramienta:
sudo apt-get install opensc
Ahora usaremos pkcs15-tool para sacar algo de información:
pkcs15-tool --dump #Muestra toda la información
pkcs15-tool --list-certificates #muestra los certificados que hay en la tarjeta
pkcs11-tool -L #Muestra los campus usados por la entidad certificadora, así como quien es esta.honetan, IZENPE)
Este comando nos mostrará algo similar a:
Available slots: Slot 0 O2 Micro Oz776 00 00 token label: IZENPE-TSE token manuf: A.E.T. Europe B.V. token model: PKCS #15 SCard token flags: rng, login required, PIN initialized, token initialized serial num : 81911814001xxxxx Slot 1 (empty) Slot 2 (empty) Slot 3 (empty) Slot 4 (empty) Slot 5 (empty) Slot 6 (empty) Slot 7 (empty)
pkcs11-tool -M #Lista los algoritmos de cifrado disponibles
Supported mechanisms: SHA-1, digest SHA256, digest SHA384, digest SHA512, digest MD5, digest RIPEMD160, digest RSA-PKCS, sign, verify, unwrap, decrypt SHA1-RSA-PKCS, sign, verify MD5-RSA-PKCS, sign, verify RIPEMD160-RSA-PKCS, sign, verify RSA-PKCS-KEY-PAIR-GEN, keypairgen
pkcs11-tool -O -l #Muestra la información de la llave publica y privada y del certificado (nos pedirá el PIN) Please enter User PIN: Private Key Object; RSA label: JUAN ANTONIO PEREIRA VARELA ID: 697a656e706xxexxxxxx Usage: decrypt, sign, unwrap Certificate Object, type = X.509 cert label: JUAN ANTONIO PEREIRA VARELA ID: 697a656e706xxxxxxxxx Public Key Object; RSA 1024 bits label: JUAN ANTONIO PEREIRA VARELA ID: 697a656e706xxxxxxxxx Usage: encrypt, verify
Como vemos hay una clave privada que nos permite descifrar, firmar. Una publica que nos permite cifrar y comprobar ( leer mas sobre criptografía asimétrica) y un certificado del tipo X.509
Primero necesitamos tener instalada la libreria opensc
# apt-get install libopensc2
Después arrancamos firefox y vamos al menú Editar>preferencias. En la barra superior elegimos Avanzado (el ultimo icono). Debajod el campo certificados hacemos click en el botón Dispositivos de Seguridad
Saldra una nueva ventana. En la parte derecha hacemos click en el botón Cargar
Aparecerá un dialogo. En el campo bombre introducimos lo que queramos (DNI, Tarjeta PKI,…). En el campo “Archivo del modulo” debemos introducir /usr/lib/opensc-pkcs11.so
Aceptamos. Nos pedirá confirmación (tras unos segundos de espera).
Para probarlo podemos por ejemplo pedir nuestra vida labroral a través de la web de la seguridad social https://w2.seg-social.es/fs/indexframes.html. Esta web nos mostrá un error si no tenemos un certificado válido.
Si entramos con un certificado valido sucederá que firefox nos pedirá el PIN de la tarjeta. Después si tenemos mas de un certificado u no ha sido capaz de autoseleccionar el más adecuado nos pedrirá que selecionemos uno. Y no debería dejar entrar!
4) Nola sinatu OpenOfficen egindako dokumentu bat
Writer aplikazioa (OpenOffice.org) ireki eta dokumentu berri bat sortu eta gorde. Orain sinadura digitalez apainduko dugu gure lan bikaina
Nola?
a) Firefox ireki eta
Editatu/Hobespenak/Aurreratua/Segurtasun Gailuak aukeratu. Hor, ONA Txartela (IZENPE) hautatu eta eskubiko aldean, “Hasi Saioa” botoia sakatu. PIN zenbakia eskatuko digu Firefoxek. Hornitu eta gero, zure ziurtagiria agerian izango duzu, OpenOfficentzako erabilgarria.
b) OpenOffice-n egindako dokumentua irekita dugularik, Fitxategia / Txertatu sinadura digitala hautatu. PIN zenbakia eskatuko digu berriz ere OpenOfficek.
c) Izenpeko ziurtagiria hautatu (bat baino gehiago izanez gero)
d) Listo! Sinadura digitala hor dago. Hortik aurrera zure dokumentuak ezin du aldaketarik jaso (jasotzekotan, sinadura digitala galduko luke)
2008ko Urtarrilaren 20an oraindik ez dut sinadura digitala OOo-en guztiz integratzea lortu. Izan ere, sinadura digitala txertatzen da OpenOfficen egindako dokumentuan, baina ziurtagiria ezin duela balidatu dio OOo-k. IZENPE! Laguntzeko prest?
Ziurtagiri katea ez da guztiz zuzena (zer dago gaizki?)
5) CRL-ak Guztiz segurua izateko, ziurtagiri digitalez sinatutako dokumentu bat jasotzerakoan, ziurtagiri hori ez dutela baliogabetu jakin behar dugu (jatorrizko erabiltzaileak/sinatzaileak ziurtagiria galduz gero, Izenpek ziurtagiriak ezeztatzeko eskeintzen duen zerbitzua erabili dezake) Firefoxek CRL-ak kudeatu ditzake (ezeztatu diren ziurtagirien serie zenbakiak gordetzen dituzten zerrendak dira CRLak (Certificates Revocation List)) Izenpek bere CRL propioa dauka baita ere, noski. Horretarako, Firefoxen, ireki ezazu hurrengo leihoa:
Editatu/Hobespenak/Aurreratua/Enkriptazioa/Baliogabetze Zerrendak/
Eta hor zaudelarik, “Inportatu” botoian sakatu eta hurrengo URLa txertatu:
http://crl.izenpe.com/cgi-bin/crl
Ondoren, CRLak eguneratzeko arauak zehazteko aukera izango duzu. Dagoen bezala utz ezazu eta honako leihoa ikusiko duzu:
7) Arazoak?
Ziurtagiria OpenOffice-n ikusterakoan honako hau bistaratzen bada: ziurtagiri digitalak balioztatzeko behar den ziurtagiri katea apurtuta dagoela esan nahi du. Hau da, dagokion ziurtagiri katea instalatu behar duzula. Horretarako, izenpe.com webgunera jo, eta ezker aldera, “Ziurtagirien deskarga” ikonoan sakatu. Honako popup leihoa irekiko da:
Hortik bi ziurtagiri digital jaitsi eta instalatu behar dituzu, hala nola, goiko aldekoa, erroan dagoena (Izenperen CA) eta “Herritar eta Erakundeen CA (onartuak)” .
Jaitsi eta gero, horrela instalatu bi ziurtagiri horiek: “Editatu/Hobespenak/Ziurtagiriak ikusi / Autoritateak / Inportatu”
Honako leihoa agertuko zaizu:
Gaitu hiru aukera horiek (Fidatu AZ honetaz edozer gauza egiteko)
Para poder firmar nuestros correos con el DNI-e tendremos que configurar Thunderbird, para ello nos situamos en el menú Editar –> Preferencias, una vez ahí, nos vamos a 'Avanzadas', pinchamos en 'Dispositivos de seguridad'
Una vez ahí, pulsamos en 'Cargar'
Se le asigna un nombre al nuevo modulo (DNI-e, Firma, …) En el campo “Archivo del modulo” debemos introducir /usr/lib/opensc-pkcs11.so
Si todo ha ido bien se nos pedirá que confirmemos el nuevo modulo que hemos añadido
Thunderbird nos informa que ya tenemos disponible el DNI
Llegados a este punto, Thunderbird ya reconoce el DNI
Ahora tenemos que asociar un certificado digital a nuestra cuenta de correo para poder realizar el firmado de correos. Nos situamos en el menú Editar –> Configuración de las cuentas. Una vez ahí, pinchamos en 'Seguridad'. Como se puede ver en la parte derecha, podemos asociar un certificado para realizar la firma de correos, pinchamos en 'Seleccionar'
Dado que el DNI-E pide el PIN para poder acceder a los certificados digitales, nos solicita que introduzcamos el susodicho PIN.
Si el PIN es correcto, veremos los dos certificados digitales que hay en el DNI-E, uno para Firma y otro para autenticación. Seleccionamos el de firma.
Ahora Thunderbird nos informa que podemos también asociar un certificado para recibir correos electrónicos cifrados, pero el DNI no tiene certificados digitales validos para cifrado, así que pulsamos en 'Cancelar' (de lo contrario aparecerá un mensaje de error)
Con todos los pasos anteriores ya dados, podemos enviar nuestro primer correo electrónico que lleve una firma digital en Thunderbird. Para ello nos vamos a 'Redactar' (como si fuéramos a escribir un mail normal y corriente)
Para activar el firmado digital del correo, hemos de ir al candado de 'Seguridad' y entre las opciones que aparecen: 'Firmar digitalmente este mensaje'
Una vez le demos a enviar, se nos pedirá el PIN del Dni para realizar la firma del correo.
Y, con esto, ya hemos enviado un mail firmado digitalmente con Thunderbird.
(Fuente: http://www.securitybydefault.com/2008/12/thunderbird-dni-e.html)