DNI electrónico en Ubuntu GNU/Linux
Mediante lectores de tarjetas inteligentes como LTC31 podemos hacer que nuestro sistema lea los DNIs electrónicos que se emiten actualmente.
Vamos a configurar el sistema para que Ubuntu reconozca el dispositivo lector y podamos utilizarlo desde el navegador Firefox. Para ello, instalaremos los paquetes necesarios (muchos de los pasos que describo los he obtenido del artículo DNIe y lector ACR38 bajo Linux):
# Herramientas para que el sistema reconozca el lector apt-get install pcscd pcsc-tools libccid opensc # Integración con mozilla apt-get install mozilla-opensc libnss3-tools
Adicionalmente, tendremos que instalar el driver concreto para poder leer DNIs que lo proporciona el ministerio del interior mediante la sección de descargas. Por ejemplo, en mi caso descargo la versión de Ubuntu Intrepid 64 bits (funciona también en Jaunty):
wget http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/opensc-dnie_1.4.5-1_amd64_Ubuntu_Intrepid_Ibex.deb.tar tar -xvf opensc-dnie_1.4.5-1_amd64_Ubuntu_Intrepid_Ibex.deb.tar dpkg -i opensc-dnie_1.4.5-1_amd64_Ubuntu_Intrepid_Ibex.deb
A continuación podemos ejecutar “Aplicaciones – Oficina – Registrar módulo DNIe PKCS#11″ para que se active el soporte en Firefox (módulo “/usr/lib/opensc-pkcs11.so”) y se añada el certificado de la Dirección General de la Policía.
Por otra parte, podemos comprobar si el sistema reconoce correctamente el lector. Lo conectamos, ejecutamos pcsc_scan e introducimos nuestro DNI:
# pcsc_scan
PC/SC device scanner
V 1.4.14 (c) 2001-2008, Ludovic Rousseau <ludovic .rousseau@free.fr>
Compiled with PC/SC lite version: 1.4.99
Scanning present readers
0: C3PO LTC31 00 00
Sat May 30 17:00:41 2009
Reader 0: C3PO LTC31 00 00
Card state: Card removed,
Sat May 30 17:01:27 2009
Reader 0: C3PO LTC31 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://www.dnielectronico.es
Si todo ha ido bien, vayamos a intentar leer los certificados de nuestro DNI mediante Firefox. Lo abrimos con el lector conectado y vamos a “Editar – Preferencias – Avanzado – Cifrado – Ver Certificados – Sus Certificados”, donde nos pedirá el PIN de nuestro DNI.
Podemos comprobar la autenticación y firma mediante la página de prueba de la FNMT:
https://av-dnie.cert.fnmt.es/compruebacert/compruebacert
Finalmente, determinados sitios web intentaran acceder al lector mediante Java (p.ej. entidades financieras como Bankinter o ING-Direct) y necesitaremos soporte para Java, para lo cual tendremos que escoger la versión abierta o la de Sun:
apt-get install openjdk-6-jre icedtea6-plugin apt-get install sun-java6-jre sun-java6-plugin
Por desgracia, no he sido capaz de autenticarme en ninguna web que intente acceder al DNI mediante Java. Con la versión OpenJDK/IcedTea me salta un mensaje de error que no ofrece muchas pistas y con la versión de Sun me indica que el sistema operativo no es compatible.
2 Responses to “DNI electrónico en Ubuntu GNU/Linux”
Comment from yanina
Hora Tuesday 11 August 2009 at 19:19:37
weno yo busco ke es el codigo c1 y 4e…
lo necesito para un trabajo escolar…
porfavor ke alguien sea amable y me diga que es! jejeje
Comment from Xose M.
Hora Wednesday 3 June 2009 at 13:03:33
gracias por tu aportación.
en realidad ya lo tenía correctamente configurado, pero he llegado a tu post buscando información a cerca del problema con las webs que utilizan el DNIe con JAVA.
TEngo el mismo error que tú, he probado incluso con una versión más antigua del sun-java y tampoco funciona