Hardware
Una de las cosas importantes es contar con un lector de tarjetas inteligentes compatible con linux. Hay varios en el mercado, yo compré este:Es un lector marca bit4id usb. Esto es lo que sale de un lsusb:
Bus 005 Device 003: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader
y esto es parte de lo que sale cuando conecto el lector en el puerto USB
usb 5-1: new full-speed USB device number 3 using uhci_hcd usb 5-1: New USB device found, idVendor=072f, idProduct=90cc usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 5-1: Product: CCID USB Reader usb 5-1: Manufacturer: ACS
Esta compañía tiene un sitio web donde tienen algo de información para linux
http://www.bit4id.com/es/soporte/instalacion.php
Nota: Cuando hice la prueba de insertar el DNI, el led no permaneció encendido 15 segundos, pero si 5.
Instalación de software
Esta es la parte "complicada" porque no hay paquetes de opensc para wheezy ni en la página de la policía ni en los repositorios oficiales de Debian que sea capaces de leer el DNIe.La gente de opendnie tiene un .deb de opensc que es una modificación del "oficial" de Debian y es esta modificación la que hace que opensc funcione con el DNI electrónico. Todo esto al momento de escribir este post (24 de Febrero de 2013)
A continuación coloco los pasos que seguí para el DNIe funcionara en wheezy:
- Verificar que se tienen estos paquetes instalados:
libltdl7 libssl1.0.0 zlib1g
- Descargar e instalar opensc_0.12.1-1-svn385_i386.deb
# cd /usr/local/src # wget https://forja.cenatic.es/frs/download.php/file/1305/opensc_0.12.1-1-svn385_i386.deb # dpkg -i opensc_0.12.1-1-svn385_i386.deb
- Instalar los paquetes pcscd y pcsc-tools
# aptitude install pcscd pcsc-tools
- Como instalamos un opensc que no es el oficial, debemos evitar que se actualice cuando hagamos un aptitude upgrade.
# aptitude hold opensc
- Creamos un enlace simbólico para libpcsclite.so.1
# cd /usr/lib # ln -s /usr/lib/i386-linux-gnu/libpcsclite.so.1
- Instalar los siguientes paquetes para tener algunas utilidades importantes para trabajar con cualquier tarjeta inteligente
aptitude install pinentry-gtk2 libnss3-tools
Hasta aquí la instalación de software.
Verificación
Para verificar que todo está correcto, utilizamos el programa pcsc_scan y así comprobar que el lector funciona y lee el DNIe.Insertamos el lector en un puerto usb y en un terminal ejecutamos
pcsc_scan
Deberíamos obtener una salida parecida a esta:
$ pcsc_scan PC/SC device scanner V 1.4.20 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.3 Using reader plug'n play mechanism Scanning present readers.. 0: ACS AET65 00 00 Sun Feb 24 11:09:37 2013 Reader 0: ACS AET65 00 00 Card state: Card removed,
El programa no devuelve prompt, así que no se susten.
Insertamos el DNIe en el lector y deberíamos ver como salen una serie de mensajes en el terminal. Las últimas líneas deberían ser algo como esto:
DNI electronico (Spanish electronic ID card) http://www.dnielectronico.es
Si esto es así, el sistema operativo reconoce al lector y es posible usar el DNIe en wheezy, si no es así, revisar los pasos anteriores.
Ya podemos salirnos del terminal y desconectar el lector.
Configuración de Firefox para utilizar el DNIe.
En esta sección describiré como hacer funcionar el DNIe con firefox ya que es lo interesante, entrar a los sitios como el banco o hacienda (es interesante entrar en el sitio de hacienda?????) para realizar operaciones que requieran nuestra identificación.Básicamente, lo que haremos es bajar e instalar el certificado raíz de la policía, decirle a firefox que use el DNIe como dispositivo de seguridad e instalar el plugin de java de Sun ya que con el icedtea no me funcionó la petición de PIN que hace el banco para identificar a alguien con DNIe.
Nota importante: El paso en el que le decimos a firefox que use el DNIe como un dispositivo de seguridad requiere que firefox no esté corriendo.
Certificado raíz de la Policía
Debemos ir a este sitio;http://www.dnielectronico.es/seccion_integradores/autoridades_cert.html
y bajarnos el certificado raíz de la policía, en mi caso, el archivo que me bajé fue:
Certificado pkcs1-sha256WithRSAEncryption
http://www.dnielectronico.es/ZIP/ACRAIZ-SHA2.zip
Una vez descargado, hay que descomprimir el zip y obtendremos un archivo llamado ACRAIZ-SHA2.crt
En firefox (18.0.2) realizamos el siguiente procedimiento:
Edit -> Preferences -> Advanced -> Encryption -> View Certificates -> Authorities -> Import
Buscamos y elegimos el certificado descargado ACRAIZ-SHA2.crt.
Nos saldrá una ventana preguntándonos para qué porpósitos vamos a confiar en este certificado y seleccionaremos todas las opciones.
Hacemos click en OK y listo, ya tenemos la CA de la policía en nuestro repositorio de certificados de firefox.
Ahora viene un paso muy muy importante y es necesario cerrar firefox, por lo tanto, hay que copiar el siguiente comando en algún lado y ejecutarlo como usuario "normal" (no como root) solo cuando firefox esté cerrado. En este paso le diremos a firefox que use al DNIe como dispositivo de seguridad.
Repito, este comando debe ejecutarse cuando firefox no esté corriendo. Cuando firefox esté cerrado, ejecutarlo como usuario, no como root.
$ modutil -dbdir ~/.mozilla/firefox/$(cat ~/.mozilla/firefox/profiles.ini | \
grep Path | awk -F"=" '{print $2}') -add "DNIe" -libfile /usr/lib/opensc-pkcs11.so
El comando debería ejecutase sin problemas.
Para verificar que tenemos el DNIe como dispositivo de seguridad en firefox realizamos lo siguiente en este orden:
- Desconectamos el lector de trajetas inteligentes (si no lo hemos hecho ya)
- Reiniciamos el demonio pcscd
# /etc/init.d/pcscd stop # /etc/init.d/pcscd start
- Conectamos de nuevo el lector de tarjetas inteligentes
- Abrimos firefox y vamos a
Edit -> Preferences -> Advanced -> Encryption -> Security Devices
y deberíamos obtener algo como esto:
Si no obtenemos esto, es probable que no se hayan seguido los pasos anteriores. Habría que cerrar firefox, desconectar el lector, reiniciar pcscd, conectar el lector y ejecutar firefox.
No se si es un bug, pero el lector tiene que estar conectado antes de ejecutar firefox (la mayoría de las veces).
Instalación del plugin de java de SUN
Solo resta instalar el plugin de java de SUN (Oracle). No coloco las instrucciones porque hay muchos sitios que ya lo hacen.A mi no me funcionó el icedtea, cada vez que un sitio me iba a pedir el PIN me salía el mensaje de error "changing the securitymanager is not allowed".
Referencias
https://forja.cenatic.es/projects/opendnie/https://wiki.tegnix.com/wiki/DNI_electronico
Eso es todo, espero que sirva.