¡Instalar el DNIe electrónico en GNU/Linux Ubuntu (14.04+)!

Tus trámites telemáticos también con GNU/Linux Ubuntu

@R12Leal | 15, Oct, 2015

Tags : Informática | Linux


Introducción


El DNIe (DNI electrónico) es una herramienta que todavía no ha terminado de despegar en España pero que poco a poco va sumando adeptos ya que nos permite ahorrarnos los típicos, y tediosos, desplazamientos a las oficinas de las principales administraciones públicas de nuestra zona.

La causa principal (del poco uso por parte de la población) es porque la administración no ofrece un buen soporte a los ciudadanos. Incluso en sistemas operativos de Microsoft también es un poco complicado su instalación y uso.

En este post veremos como instalar y usar el DNIe en Ubuntu (versión 14.04 o posteriores), ya sean de 32 o 64 bits. No he probado la instalación en el resto de distribuciones de Linux pero debería funcionar igualmente, sobre todo las que son derivadas de Debian.


Lector o Card Reader


Mi lector es un Sveon SCT011, un dispositivo muy sencillo, barato y que compré en grandes superficies, aquí una imagen:

Sveon SCT011 Sveon SCT011

La mayoría de dispositivos son compatibles en Ubuntu, de todas formas instalaremos una serie de paquetes (controladores) para garantizar su funcionamiento.


Instalación de Java


Para llevar a cabo nuestros trámites es necesario tener instalado Java en nuestro sistema. Usaremos la versión 8, aunque si prefieres la versión 7 también puedes instalarla. Abriremos una terminal y ejecutaremos los siguientes comandos:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo update-java-alternatives -s java-8-oracle


Instalación de controladores, librerías o bibliotecas


Primero comprobaremos que nuestro sistema reconoce el lector, en la terminal ejecutamos el siguiente comando:

lsusb

Ahora crearemos dos directorios, están relacionados con la compilación de la versión modificada de OpenSC para el DNIe:

sudo mkdir /usr/lib/pkcs11
sudo mkdir /etc/opensc

Finalmente instalaremos los controladores, librerías o bibliotecas y paquetes complementarios para que funcione todo correctamente:

sudo apt-get install libccid pcscd
sudo apt-get install libacr38u
sudo apt-get install pinentry-gtk2 pcsc-tools libpcsclite1 libpcsclite-dev libreadline6 libreadline-dev coolkey

Y por último si queremos comprobar que reconoce correctamente la tarjeta ejecutar:

pcsc_scan


Instalación de los certificados en Firefox


Lo primero de todo será descargar los certificados correspondientes. Los puedes encontrar aquí

Son AC Raíz (archivo: "pkcs1-sha256WithRSAEncryption") y AV DNIE FNMT (archivo: "pkcs1-sha256WithRSAEncryption").

Descomprimimos los archivos .zip y en Firefox vamos a Editar -> Preferencias -> Avanzado -> Cifrado -> Ver certificados y en la pestaña "Autoridades" pulsamos "Importar" y elegimos ACRAIZ-SHA2.crt. En la pestaña "Servidores" también utilizaremos la opción "Importar" con AVDNIEFNMTSHA2.cer.

Durante la importación del certificado aparecerá una nueva ventana, en esta se pueden observar tres opciones de confianza las cuales debemos marcar:

¡Opciones durante la importación! ¡RECUERDA: debes marcar las tres opciones!


Descarga, compilación e instalación de OpenSC modificado para DNIe


Creamos un directorio oculto para almacenar el código fuente y luego accederemos al mismo:

mkdir .openscDNIe
cd .openscDNIe

Descargamos el código fuente con el siguiente comando:

svn checkout --username anonsvn https://forja.cenatic.es/svn/opendnie/opensc-opendnie/trunk

Para iniciar la descarga requiere una contraseña, es: anonsvn. Tras descargar el código fuente debemos acceder a uno de los directorios descargados:

cd trunk

Antes compilar hay que añadir la ruta de la librería "libltdl.la" al archivo "src/tools/Makefile.am" del código fuente, en "trunk". La ruta variará dependiendo de la arquitectura, 32 o 64 bits, de nuestro sistema. Para encontrarla ejecutamos:

sudo find / -name libltdl.la

Suele tardar un poco en realizar la búsqueda pero nos devolverá la ruta exacta, para finalizar el proceso pulsa Ctrl+ C. Este por ejemplo sería para 64 bits:

/usr/lib/x86_64-linux-gnu/libltdl.la

Editamos el archivo Makefile.am, puedes utilizar nano o gedit (u otro editor), y buscamos la siguiente línea:

        LIBS = $(top_builddir)/src/common/libcompat.la \
            $(top_builddir)/src/libopensc/libopensc.la

Añadimos la ruta que hemos obtenido quedando así:

        LIBS = $(top_builddir)/src/common/libcompat.la \
            $(top_builddir)/src/libopensc/libopensc.la \
            /usr/lib/x86_64-linux-gnu/libltdl.la

Para finalizar compilamos ejecutando estos comandos:

./bootstrap
./configure --prefix=/usr --sysconfdir=/etc/opensc
make
sudo make install

Puede demorarse un tiempo la compilación e instalación, cuando finalice el módulo "PKCS11" habrá quedado instalado en la ruta: "/usr/lib/opensc-pkcs11.so". Ahora hay que indicarle esta información a Firefox: vamos a Editar -> Preferencias -> Avanzado -> Cifrado -> Dispositivos de seguridad, pulsamos en "Cargar", y en "Nombre del módulo" escribimos: PKCS11 y en "Archivo del módulo" escribimos la ruta: "/usr/lib/opensc-pkcs11.so".

¡Instalación del módulo PKCS11 en Firefox! ¡Instalación del módulo PKCS11 en Firefox!

Para finalizar reiniciamos el navegador, ya podemos usar nuestro DNIe.


Configurando + parámetros


El pin del DNIe tiene protección por Token, así que es probable que la identificación falle. Para solucionarlo debemos editar el archivo "opensc.conf". Dependiendo de las distribuciones puede estar ubicado en distintos directorios. Para encontrar la ruta exacta ejecutamos este comando en una terminal:

sudo find / -name opensc.conf

Una vez obtenida la ruta editamos el archivo con nano o gedit (u otro editor) y buscamos estas dos líneas:

# enable_pinpad = false;

Basta con borrar el # quedando así:

enable_pinpad = false;


¿Funciona?


Para probar que funciona podemos acudir al siguiente enlace oficial: DNIe


Conclusión


Poco a poco la administración pública va fomentando el uso del DNIe, además ya se están probando futuras versiones como por ejemplo la 3.0 que permitirá el escaneo del DNIe mediante el uso de un smartphones. Con su utilización ganamos todos, sobre todo los funcionarios ;) Salu2!

Fuentes:
Ubuntu guia
El correo de las Indias