"Después del juego es antes del juego"
Sepp Herberger

lunes, 20 de julio de 2020

Instalar DNIe español en Manjaro/Arch

Pasada mi penúltima pelea con los certificados digitales y recibiendo una sorpresa más al comprobar, en otra escaramuza posterior, que para solicitar el certificado digital por vez primera la FNMT también te obliga a usar Firefox 68 o Internet Explorer (no Edge) en el cual además el usuario raso debe configurar zonas a mano (la configuración automática no funciona las veces que he probado), me propuse ver si hacía funcionar el certificado digital del DNIe en Manjaro, usando el lector USB correspondiente. Es una tarea que he intentado varias veces en los últimos años casi siempre con mala fortuna.

Veo en AUR que hay varios paquetes con "dnie" en su nombre y que además parecen actualizados y mantenidos por sus respectivos héroes.

Los instalo con pamac:
$ pamac install ca-certificates-dnie
$ pamac install libpkcs11-dnie

Nota: el paquete libpkcs11-dnie de AUR es una adaptación del paquete Ubuntu_libpkcs11-dnie_1.5.3_amd64.deb para Ubuntu que el DNIe publica en su página de software para Linux. Entiendo que casi todos los pasos que aquí damos pueden realizarse de forma similar para Debian/Ubuntu.

El paquete ca-certificates-dnie trae todos los certificados raiz necesarios para tratar con el DNIe, mientras que libpkcs11-dnie trae las librerias de acceso al dispositivo. Al finalizar la instalación del paquete nos da unas directrices para completar la instalación a mano:
Instalando libpkcs11-dnie (1.5.3-1)...                                     [1/1]
Configurando libpkcs11-dnie...
    >>>
    >>> Installation:
    >>>
    >>> 1) If you don't already have it, enable and start pcscd: systemctl enable --now pcscd.service
    >>> 2) Connect your smartcard reader without any smartcard in it and run: pcsc_scan
    >>> 3) It should show info about your smartcard and tell you that there isn't any in it. Now insert your DNIe and it
    >>> should show info about it. Now you know that your DNIe can be read by your smartcard reader.
    >>> 4) To use your DNIe on Firefox, search for dnietif in your desktop environment applications launcher, run it
    >>> and follow instructions
    >>>
Hacemos lo que nos dice y seguimos los pasos: habilitamos y arrancamos pcscd.service...
# systemctl enable --now pcscd.service
Conectamos el lector de DNIe y hacemos pcsc_scan a ver si de detecta el dispositivo:

$ pcsc_scan 
Using reader plug'n play mechanism
Scanning present readers...
0: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00
 
Mon Jul 20 19:46:10 2020
 Reader 0: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00
  Event number: 0
  Card state: Card removed, 
  ....
Insertamos el DNIe con el chís y vemos como se detecta:
Mon Jul 20 19:47:14 2020
 Reader 0: SCM Microsystems Inc. SCR 3310 [CCID Interface] 00 00
  Event number: 1
  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 [12]0 02 4C 34 01 13 03 90 00
 DNI electronico (Spanish electronic ID card)
 http://www.dnielectronico.es
....
Buscamos el programa dnietif para configurar el Firefox y usarlo con el DNIe:


En el menú de aplicaciones "dnietif" aparece como "Registrar módulo PKCS#11 dnie (1.5.3)" y en realidad es un lanzador al ejecutable "/usr/share/libpkcs11-dnie/launch.pl". Este ejecutable no hace nada especial, simplemente nos abre una página web (/usr/share/libpkcs11-dnie/launch.html) con más instrucciones a realizar manualmente:


Los pasos descritos se realizarán sobre Firefox:
  • Instalación del DNI Electrónico. Para usar el DNI electrónico se requiere:
    • Instalar el Módulo de Seguridad PKCS#11
    • Para instalar el módulo PCKS#11 debe ir a Editar/Preferencias/Avanzado/Cifrado/Dispositivos de seguridad
    • Seleccione "Cargar"
    • Dele un nombre al módulo. (Por ejemplo "DNIe Modulo PKCS # 11")
    • Indique manualmente la ruta del módulo: /usr/lib/libpkcs11-dnie.so
    • Pulse el botón "Aceptar"
  • Instalar el Certificado Raíz de la Autoridad de Certificación del DNIe
    • Para instalar el certificado raíz ir a Editar/Preferencias/Avanzado/Cifrado/Ver certificados
    • Seleccione "Importar".
    • Indique manualmente la ruta del certificado raíz: /usr/share/libpkcs11-dnie/ac_raiz_dnie.crt
    • El asistente le pedirá que establezca la confianza para el certificado.
    • Marque las tres casillas de confianza.
    • Pulse el botón "Aceptar".

Una vez hecho esto, reiniciamos el navegador, vamos a "Visualizar certificados" en las Preferencias para ver el DNIe y nos pedirá el correspondiente PIN para acceder:


Y ahí está el certificado del DNIe junto con los que ya tenía antes de la FNMT:


No son pasos triviales, pero sorprendentemente y por primera vez en mucho tiempo funcionan a la primera sin mayor complicación, lo cual es todo un avance. Eso si: me preocupa que la parte de configuración del Firefox no pueda automatizarse de alguna manera... En fin, para una vez que funciona algo relacionado con la firma digital no vamos a quejarnos.

No hay comentarios:

Publicar un comentario