Hacer funcionar el DNIe (Spanish electronic ID card) en Fedora 23

Hoy me ha llegado el aviso de que me iba a caducar el certificado de la FNMT, y en el proceso de renovación me obligaban a autenticarme con el DNIe, por lo que he tenido que repasar todo este tema.

La última vez que lo usé, tuve que compilar a mano los módulos de OpenDNIe y hacer unos cuantos malabares. Por fortuna, parece que la integración del proyecto con opensc ha dado sus frutos y no he tenido que usar ningún tipo de magia negra esta vez.

Estos son los pasos que he seguido para hacerlo funcionar en Fedora 23.

Primero, instalo los paquetes necesarios:

dnf install pcsc-lite pcsc-lite-ccid pcsc-tools coolkey opensc

Habilito el demonio de las smart cards:

systemctl enable pcscd.service
systemctl start pcscd.service

Con el comando pcsc_scan se pueden monitorizar los eventos del lector de tarjetas, y ver si al pinchar nuestro DNIe, lo reconoce correctamente. Por ejemplo, en mi caso:

# pcsc_scan
PC/SC device scanner
V 1.4.23 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.13
Using reader plug'n play mechanism
Scanning present readers...
0: MSI StarReader SMART [Smart Card Reader Interface] (20070818000000000) 00 00

Wed Dec 16 20:55:41 2015
Reader 0: MSI StarReader SMART [Smart Card Reader Interface] (20070818000000000) 00 00
Card state: Card removed,

Wed Dec 16 20:55:47 2015
Reader 0: MSI StarReader SMART [Smart Card Reader Interface] (20070818000000000) 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
64516 bits/s at 4 MHz, fMax for Fi = 8 MHz => 129032 bits/s
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://www.dnielectronico.es

Perfecto, lo reconoce a la primera. Ahora configuramos Firefox. Primero configuramos el soporte PKCS11 para acceder a nuestro lector de tarjetas:

En Preferencias -> Certificados -> Dispositivos de seguridad

Le damos a Cargar, e introducimos:

Nombre del módulo: DNIe
Archivo del módulo: /usr/lib64/opensc-pkcs11.so

Ahora instalamos las autoridades de certificación necesarias. Tendremos que descargarlas, descomprimirlas e importarlas en Firefox en el apartado de Autoridades.

De la FNMT, las 2 CA raíz, y al menos la AC FNMT Usuarios:

https://www.sede.fnmt.gob.es/descargas/certificados-raiz-de-la-fnmt

Del DNI electrónico, las 3 CA subordinadas (elegir la versión sha256):

http://www.dnielectronico.es/PortalDNIe/PRF1_Cons02.action?pag=REF_078

Por último, instalaros el complemento signTextJS, ya que en muchos sitios, entre otros el de la FNMT, usan esta API deprecada.

Y… ya está. Yo con estos pasos he podido sacarme el certificado de la FNMT. Aseguraos de que elegís correctamente el certificado que usáis del DNIe, ya que hay 2, uno para autenticación y otro para firmar.

Espero que os sirva.

Advertisements

8 thoughts on “Hacer funcionar el DNIe (Spanish electronic ID card) en Fedora 23”

  1. A mi me funcionó todo salvo que al final cuando va a leer el DNIe y a pedirme la contraseña, no aparece ningún cuadro de texto donde insertarla. He probado el proceso en Ubuntu y pasa lo mismo. Me he quedado … pasmado

    Like

  2. Los problemas de la password se resuelven de la siguiente manera:

    Editamos el archivo /etc/opensc-x86_64.conf (la ruta en mi caso para Fedora 24)

    Buscamos en el archivo 2 líneas (una al principio y otra al final del archivo) que pongan:
    # enable_pinpad = false;
    y las descomentamos (borrar la almohadilla que hay delante de la línea).
    Deben de quedar así:
    enable_pinpad = false;

    Reiniciamos el demonio del lector de tarjetas:

    sudo systemctl restart pcscd.service

    Estaría bien también recordar que si queremos utilizar el certificado del DNI-e para solicitar el certificado de la FNMT, deberemos de habilitar un master password en Firefox.

    Liked by 1 person

  3. En el caso de que tengáis un DNi-e 3.0 (el de color naranja con la ventana transparente), firefox sigue pidiendo la contraseña y no funciona.
    Lo que ocurre es que la versión opensc que viene con Fedora 24 y Fedora 25 no es compatible con éste, aunque la versión actual de github sí:

    https://github.com/OpenSC/OpenSC/issues/810

    Para arreglar el desaguisado, desinstalamos opensc:
    # sudo yum erase opensc

    Instalamos git y sus dependencias:
    # yum install readline-devel openssl-devel libxslt docbook-style-xsl pcsc-lite-devel automake autoconf libtool gcc git

    Nos descargamos la versión actualizada de opensc:
    # git clone https://github.com/OpenSC/OpenSC.git
    # cd OpenSC/

    Instalamos:
    # ./bootstrap
    # ./configure –prefix=/usr –sysconfdir=/etc/opensc
    # make
    # make install

    …Y a disfrutar.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s