Noticia original:
http://nosigasleyendo.blogspot.com/2008/12/dnie-y-lector-acr38-bajo-linux.html
La configuración y uso del DNIe

bajo Linux

no es todavía algo sencillo. En
Guadalinex
se ha hecho especial esfuerzo para que tanto el DNIe

como los lectores soportados (
LTC31 y
Omnikey 3121) vengan configurados y todas sus dependencias estén instaladas de serie.
En el presente art

ículo se detalla la instalación de librerías y configuración desde cero para el uso del DNIe

desde Firefox

usando el lector ACR38 en sistemas Debian

:
Nota: Muchas de las siguientes instrucciones son extensibles para el uso de otros lectores de tarjetas
Guía rápida
Para el impaciente, para el que ya lo haya leído y necesite recordar, para el afortunado al que todo le funciona a la primera, etcétera, presento aquí la guía rápida:
$ sudo apt
-get install
pcscd pcsc-tools libccid libacr38u libacr38ucontrol0 mozilla
-opensc libnspr4-0d libnss3-1d libnss3-tools
$ wget
http://v5.guadalinex.org/guadalinex-lobo/pool/main/o/opensc-dnie/opensc-...
$ sudo dpkg -i opensc-dnie_1.4.0-5_i386.deb
$ modutil -add "Tarjeta Inteligente" -libfile /usr/lib/opensc-pkcs11
.so -dbdir ~/.mozilla
/firefox
/{profile}/
Donde
{profile} es el id de nuestro perfil por defecto en Firefox

(véase
~/.mozilla
/firefox
/profiles
.ini).
Sígase la última sección del art

ículo:
Certificado raíz DGP.
Actualización 2009
-11-18: La DGP ha lanzado una versión superior (1.4.6

) de opensc-dnie

disponible en su página web

. Se recomienda hacer uso de esta nueva versión, la cual se encuentra además disponible para varias arquitecturas y distribuciones.
El lector de tarjetas
Poner en funcionamiento el lector de tarjetas se basa en instalar las librerías y aplicaciones necesarias. Básicamente se trata de la instalación de tres componentes:
- PC/SC: Capa intermedia de acceso a tarjetas inteligentes
- CCID: Implementa manejador pcsc para lectores USB que cumplen con la especificación ccid
- Driver
ACR38: Librerías del lector para pcsc
Traducido a instrucciones de instalación, en sistemas Debian

:
$ sudo apt
-get install
pcscd pcsc-tools
libccid libacr38u libacr38ucontrol0 opensc
Nota: Si se desea utilizar este documento para la configuración/uso de otro lector distinto al ACR38 no es necesario la instalación de las librerías libacr38u y libacr38ucontrol0
Tras instalar las librerías, el demonio pcscd, se auto-arranca y al conectar el lector de tarjetas podremos observar en /var/log
/syslog
Dec 26 18:52:40 orion kernel
: [17246.325117] usb 2-1: new full speed
USB device using uhci_hcd and
address 4
Dec 26 18:52:40 orion kernel
: [17246.502167] usb 2-1: configuration
#1 chosen from 1 choice
Dec 26 18:52:40 orion pcscd: hotplug_libhal.c:342:HPAddDevice() Adding USB device: usb_device_72f_9000_noserial_if0
Dec 26 18:52:41 orion pcscd: readerfactory.c:1082:RFInitializeReader() Attempting startup of
ACS ACR38U 00 00 using /usr/lib/pcsc/drivers
/ACR38UDriver.bundle/Contents/Linux
/ACR38UDriver.so
Dec 26 18:52:41 orion pcscd: readerfactory.c:915:RFBindFunctions() Loading IFD Handler 2.0
Dec 26 18:52:41 orion pcscd: readerfactory.c:267:RFAddReader() Using the pcscd polling thread
Manejo de tarjetas
Los componentes importantes para tratar con las tarjetas inteligentes (smartcards) y especificamente el DNIe
son:
A lo que nos atañe, el DNIe
en sí es una tarjeta criptográfica que almacena dos certificados
(autenticación y firma
) y nos comunicamos con éste gracias al driver
para opensc disponible. (Más información t
écnica sobre el DNIe
en el Portal
Oficial sobre el DNIe
).
Instalamos opensc:
$ sudo apt
-get install
opensc
Y para instalar opensc-dnie
podemos o bien descargar el fichero .tar desde la zona de descarga del Portal
Oficial sobre el DNIe
(contiene un paquete binario) o descargarlo directamente desde los repositorios de Guadalinex
.
Nota: Es recomendable instalar las librerías opensc-ceres para dar también soporte a las tarjetas criptográficas de la FNMT
.
Tras haber realizado la instalación debe reiniciarse el demonio pcscd
$ sudo /etc/init.d/pcscd restart
Si conectamos el lector de tarjetas con el DNIe
insertado, podemos ejecutar pcsc_scan para leer cierta información sobre la tarjeta:
$ pcsc_scan
V 1.4.14 (c) 2001-2008, Ludovic Rousseau <http://nosigasleyendo.blogspot.com/2008/12/dnie-y-lector-acr38-bajo-linux.html6>
Compiled with PC/SC lite version
: 1.4.99
Scanning present readers
0: ACS ACR38U 00 00
Fri Dec 26 19:23:24 2008
Reader 0: ACS ACR38U 00 00
Card state: Card inserted,
ATR: 3B 7F 38 00 00 00 6A 44 4E 49 65 20 02 4C 34 01 13 03 90 00
ATR: 3B 7F 38 00 00 00 6A 44 4E 49 65 20 02 4C 34 01 13 03 90 00
+ TS = 3B --> Direct Convention
+ T0 = 7F, Y(1): 0111, K: 15 (historical bytes)
TA(1) = 38 --> Fi=744, Di
=12, 62 cycles/ETU (57600 bits/s at 3.57 MHz)
TB(1) = 00 --> VPP is not electrically connected
TC(1) = 00 --> Extra guard time
: 0
+ Historical bytes: 00 6A 44 4E 49 65 20 02 4C 34 01 13 03 90 00
Category indicator byte: 00 (compact TLV data
object)
Tag: 6
, len: A (pre-issuing data)
Data
: 44 4E 49 65 20 02 4C 34 01 13
Mandatory status indicator (3 last bytes)
LCS (life card cycle): 03 (Initialisation state)
SW: 9000 (Normal processing.)
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 7F 38 00 00 00 6A 44 4E 49 65 20 02 4C 34 01 13 03 90 00
3B 7F 38 00 00 00 6A 44 4E 49 65 [1,2]0 02 4C 34 01 13 03 90 00
DNI electronico (Spanish
electronic ID card)
http://nosigasleyendo.blogspot.com/2008/12/dnie-y-lector-acr38-bajo-linux.html7
Nótese como ha detectado que se trata de nuestro lector ACR38 y el DNIe
como smartcard.
Nota: He podido detectar que si OpenCT está instalado éste toma el control
del lector y no es posible leerlo con PC/SC. En ese caso desinstálese OpenCT y reiniciar el demonio pcscd.
Nota: Si se revelan problemas de permisos puede ser debido a que el usuario no pertenece al grupo del sistema scard.
Uso en Firefox
Necesitaremos instalar un par de librerías y llevar a cabo algunas configuraciones para conseguir utilizar el DNIe
desde Firefox
.
- Mozilla-OpenSC: Plugin
OpenSC para Mozilla
- Nss3 y Nspr4: Librerías de seguridad y lectura de certificados
de Netscape
En instrucciones se traduce como:
$ sudo apt
-get install
mozilla
-opensc libnspr4-0d libnss3-1d libnss3-tools
Instaladas las librerías procedemos a configurar Firefox
.
- Conectar el lector de tarjetas con el DNIe
insertado y abrir Firefox
.
- Escribir en la barra de direcciones about:plugins
Debe aparecer OpenSC Signer Plugin
- Click en Editar->Preferencias->Avanzado->Cifrado->Dispositivos de Seguridad
- Click en Cargar
- Nombre del módulo: Tarjeta Inteligente (por ejemplo)
- Archivo del módulo: /usr/lib/opensc-pkcs11
.so
Esta última operación podemos realizarla también por consola. Con Firefox
cerrado ejecutar:
$ modutil -add "Tarjeta Inteligente" -libfile /usr/lib/opensc-pkcs11
.so -dbdir ~/.mozilla
/firefox
/{profile}/
Donde {profile} es el id de nuestro perfil por defecto en Firefox
(véase ~/.mozilla
/firefox
/profiles
.ini).
Nota: Llevar a cabo estas operaciones con el lector conectado y el DNIe
insertado. Veremos parpadear el lector mientras se realizan.
Ahora sí, arrancamos Firefox con lector conectado y DNIe
insertado. Veremos el lector parpadear y Firefox
tardará un poco más en arrancar de lo habitual. Podemos ver los certificados de nuestro DNIe
accediendo a Editar->Preferencias->Avanzado->Cifrado->Ver Certificados->Sus Certificados
.
En este punto un di
álogo
nos pedirá que introduzcamos en PIN de nuestro DNIe
. Tenemos tres intentos para introducirlo antes de que se bloquee. Con el PIN introducido correctamente se nos muestran nuestros dos certificados
de autenticación y firma
.
Certificado raíz DGP
Llegados a este punto ya tendremos configurado nuestro Firefox para hacer uso del DNIe

. Ahora bien, de cara a autenticarnos/firmar en sites

de terceros, es imprescindible contar con el certificado raíz de la DGP instalado en Firefox

. El porqué de esta necesidad se revela comprendiendo el funcionamiento de la autenticación mediante certificados

digitales.
En otras palabras, para que un tercero confíe en que somos quien decimos ser, le presentamos nuestro certificado y referimos a la autoridad de certificación que avala que somos quien decimos ser. El tercero, a su vez, confía también en esta autoridad de certificación y por lo tanto acepta nuestra autenticación.
Pues bien, la autoridad de certificación con el DNIe

es la propia Dirección General de la Policía (DGP) y su certificado puede encontrarse en el
área de descargas de la web

del DNIe

.
- Descargamos el certificado
- Descomprimimos el .zip y obtenemos un fichero .crt
- Desde Firefox
, click en: Editar->Preferencias->Avanzado->Cifrado->Ver Certificados
->Autoridades
- Click en Importar, y buscamos el fichero .crt
- Marcamos las tres opciones
- Confiar en esta CA
para identificar sitios web
- Confiar en esta CA
para identificar usuarios de correo
- Confiar en esta CA
para identificar desarrolladores de software
Nota: Podemos aprovechar estos pasos también para instalar el certificado raíz de la FNMT

. El certificado está disponible en la
web
de ceres.
Nota: Nacho Álvarez tiene un interesante art

ículo sobre el
uso de DNIe
con el lector Omnikey 3121 donde además se detalla la instalación de JRE y el procedimiento oficial de comprobación de certificados

de autenticación del DNIe

.
Termina así este humilde tutorial

, espero que alguien pueda sacarle provecho.