Uso de tarjetas PKI en GNU/Linux (basado en ubuntu)

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

El documento original se encuentra en google docs.

Que es una tarjeta PKI

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:

  • la del dni electrónico
  • las expedidas por izenpe
  • la de la nueva tarjeta del servicio de sanidad vasco (ONA) (que es de izenpe)

Instalación del lector de tarjetas

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.

Analizar la información que almacena la tarjeta

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

Como hacer funcionar la tarjeta en Firefox

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).

Entrar en un sitio web haciendo uso de la tarjeta

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!

Como firmar documentos de openoffice

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:

Problemas

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)

Cómo hacer funcionar la tarjeta en Thunderbird

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)

 
Subir
howto/tarjetas-pki.txt · Última modificación: 21/10/2009 22:17 por kresp0