SmartCardConfigLinux
Table of Contents [-]
- 1 Arquitectura PCSC
- 2 Instalación de los drivers para los lectores
- 3 Instalación del software para el DNIe
- 3.1 Asistente de ZonaTic
- 3.2 Compilación del código fuente
- 3.2.1 Configuración del navegador (Firefox)
- 3.2.2 Compilación
- 3.3 Verificar la instalación
- 4 Instalación del software para tarjetas de izenpe
- 4.1 Instalar el driver manualmente
- 4.2 Instalar el driver con el ejecutable
Arquitectura PCSC #
La arquitectura PCSC es una arquitectura a capas implementada mediante las siguientes capas:
![]() |
Ejemplos de herramientas, aplicaciones y drivers para entender mejor las capas:
- Smart Card Aware Application: Sinadura (ESLE), Firefox, Thunderbird
- Smart Card Resource Manager: libpcsclite1 (cliente), pcscd (servidor)
- Smart Card Reader Driver: scmccid, libccid
- Smart Card Reader: PCT-COMBI (SCR331 USB Smart Card Reader), C3PO (KBR36 Smart Card Keyboard), GEMPLUS USB (Gemplus GemPC Twin)
- Smart Card Reader: ACR38 AC1038 (bit4id)
- Smart Card: IZENPE, DNIe, FNMT
Instalación de los drivers para los lectores #
Instalamos los drivers
sudo apt-get install libccid pcscd libacr38u libacr38ucontrol0 libpcsclite1 pinentry-gtk2 pcsc-tools libpcsclite-dev libreadline6 libreadline-dev coolkey
Comprobamos que Ubuntu detectar el lector, en nuestro caso es el "Dell Computer Corp. SmartCard Reader Keyboard"
~$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 004: ID 059b:047a Iomega Corp. Select Portable Hard Drive Bus 001 Device 008: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub Bus 002 Device 002: ID 413c:2101 Dell Computer Corp. SmartCard Reader Keyboard Bus 002 Device 003: ID 0461:4d81 Primax Electronics, Ltd Bus 002 Device 004: ID 046d:c52b Logitech, Inc. Unifying Receiver
Comprobamos que el lector reconozca el DNIe
pcsc_scan
Y nos devolverá algo así
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 7F 38 00 00 00 6A 44 4E 49 65 10 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]
En caso de que nos aparezca lo siguiente:
... Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): NONE Your card is not present in the database. You can get the latest version of the database from [http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt] or use: wget [http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt] --output-document=/home/alfredo/.smartcard_list.txt ...
Introducimos:
wget [http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt] --output-document=/home/alfredo/.smartcard_list.txt
y volvemos a ejecutar:
pcsc_scan
Esta vez deberíamos obtener un mensaje de reconocimiento de la tarjeta.
Ejemplo con DNIe:
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 DNI electronico (Spanish electronic ID card) [http://www.dnielectronico.es]
Ejemplo FNMT tarjeta:
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 02 02 03 90 00 WG10
Ejemplo IZENPE EMPRESA:
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1 Giesecke & Devrient Starcos 2.3 Deutsche Bank WebSign (RSA-Card) G&D StarSign Token
Instalación del software para el DNIe #
Asistente de ZonaTic #
En la página de descargas del DNI-e hay un enlace al asistente de ZonaTic.
Este asistente aún no soporta Ubuntu 12.04 y posteriores, por lo que dará error al ejecutarlo, pero para versiones anteriores de Ubuntu está soportado y puede que lo actualicen para las nuevas versiones.
Nos dirigimos a la web en la que se encuentra el asistente:
http://zonatic.usatudni.es/gl/aplicaciones/asistente-dnie.html
Una vez allí, descargamos la versión para Linux. Al principio nos advierte que tenemos que tener lo siguiente instalado en nuestro sistema:
sudo apt-get install libaccess-bridge-java
Una vez descargado el archivo nos dirigimos desde la terminal al directorio donde esté situado y le damos permisos de ejecución:
chmod +x instalador-dnie
Posteriormente lo ejecutamos con el siguiente comando:
sudo ./instalador-dnie
Finalmente aparece la interfaz de instalación, si necesitáis ayuda dirigíos al siguiente enlace:
http://zonatic.usatudni.es/aplicaciones/asistente-dnie/ayuda
Compilación del código fuente #
Configuración del navegador (Firefox) #
Descargar los certificados DNIe para el navegador, uno para la autoridad de certificación y otro para la autoridad de validación (adjuntos en la incidencia
http://www.dnielectronico.es/seccion_integradores/certs.html
- Para la Autoridad de certificación (La Dirección General de la Policía (Ministerio del Interior) actúa como Autoridad de Certificación (AC)):
- Para la Autoridad de validación del DNIe (certificado que suministra información sobre la vigencia de los certificados electrónicos, que será el de la FMNT (Fábrica Nacional de Moneda y Timbre)):
Después de descargarlos los extraemos y tendremos los certificados "ACRAIZ-SHA2.crt" y "AVDNIEFNMTSHA2.cer".
Abrimos Firefox e importamos los certificados:
- Para la Autoridad de certificación vamos al menú: Editar > Preferencias > Avanzado > Cifrado > Ver certificados y en la pestaña "Autoridades", hacemos clic en Importar y seleccionamos el archivo descomprimido ACRAIZ-SHA2.crt.
Se nos abrirá una ventana en la que debemos de marcar las 3 opciones de confianza.
Nos aseguramos de se ha importado buscando en la lista de certificados DIRECCIÓN GENERAL DE LA POLICIA (AC RAIZ DNIE).
- Para la Autoridad de validación del DNIe en el mismo menú Editar > Preferencias > Avanzado > Cifrado > Ver certificados, en la pestaña Servidores, hacemos clic en Importar y seleccionamos el archivo descomprimido AVDNIEFNMTSHA2.cer.
Nos aseguramos de se ha importado buscando en la lista de certificados DIRECCIÓN GENERAL DE LA POLICIA (AC DNIE FNMT).
Compilación #
Para compilar el código fuente necesitaremos instalar algunas herramientas:
sudo apt-get install build-essential autoconf subversion openssl libssl-dev libtool libltdl-dev pkg-config
La versión que vamos a instalar es una versión de opensc modificada para el DNIe, así que hay que eliminar cualquier resto de una instalación anterior hay que borrarla:
sudo apt-get autoremove opensc
Crear una carpeta en nuestra home para descargar y compilar:
mkdir .openscDNIe
Nos dirigimos al directorio creado
cd .openscDNIe
Descargamos los archivos actualizados para la última versión de Cenatic (por terminal):
svn checkout --username anonsvn https://forja.cenatic.es/svn/opendnie/opensc-opendnie/trunk
Aceptamos el certificado de la descarga pulsando t y enter, nos pedirá una contraseña que es:
anonsvn
Cuando termine la descarga se habrá creado una carpeta en el directorio en el que nos encontramos y hay que entrar en el directorio para la compilación:
cd trunk
Verificar la ruta de la librería "libltdl.la", para buscarla:
sudo find / -name libltdl.la
Editar el archivo Makefille.am:
sudo gedit src/tools/Makefile.am
Buscar las líneas:
LIBS = $(top_builddir)/src/common/libcompat.la \ $(top_builddir)/src/libopensc/libopensc.la
Insertar el resultado de la búsqueda anterior de la siguiente manera, en nuestro caso a ser un equipo de 64 bits la línea es "/usr/lib/x86_64-linux-gnu/libltdl.la":
LIBS = $(top_builddir)/src/common/libcompat.la \ $(top_builddir)/src/libopensc/libopensc.la \ /usr/lib/x86_64-linux-gnu/libltdl.la
Preparamos el entorno de compilación:
./bootstrap
Ejecutamos:
./configure --prefix=/usr --sysconfdir=/etc/opensc
Generamos el archivo makefile:
make
Compilamos y instalamos:
sudo make install
Posteriormente tenemos que añadir el módulo y su ruta al navegador. Para ello abrimos firefox y vamos al menú Editar > Preferencias > Avanzado > Cifrado > Dispositivos de seguridad, pulsamos en Cargar y en la nueva ventana:
- En Nombre del módulo, escribimos: PKCS11
- En Archivo del módulo, escribimos la ruta: /usr/lib/opensc-pkcs11.so
Reiniciamos el navegador y ya esteremos en disposición de utilizar el DNI-e.
Verificar la instalación #
Una vez reiniciado ya podemos probar el DNI-e en: http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html
Nos da unas explicaciones y al final está el enlace de comprobación.
El lector parpadeará y nos pedirá el pin del DNI-e. Lo escribimos y aceptamos
Nota: La primera vez Firefox, nos avisará de que la conexión no estará verificada. Pulsamos en "Entiendo los riesgos" y luego en "Añadir una excepción".
Sin nos aparece un aviso de: "Identificación protegida por Token" hay que hacer lo siguiente para arreglarlo:
Descomentar del siguiente fichero una línea:
sudo gedit /etc/opensc/opensc.conf
La línea a descomentar:
# enable_pinpad = false;
Descomentamos esta línea y reiniciamos firefox y ya está listo
Instalación del software para tarjetas de izenpe #
Para instalar los drivers de izenpe para que funcionen sus tarjetas debemos descargar el "Middleware Izenpe para Linux" de esta página:
Una vez hecho esto descomprimimos el archivo descargado y podemos ver que contiene 2 directorios y 2 .deb (instalables).
Instalar el driver manualmente #
Para instalar el driver manualmente, tan solo debemos copiar un archivo a una ruta de nuestro equipo, por ejemplo, en un equipo de 64 bits debemos hacer lo siguiente:
Situarnos al directorio donde se encuentra el driver:
cd /home/nuestra_home/Descargas/Kit_Izenpe_Linux_cryptoKEY_3.0.3.6/64/pkcs11/
Una vez allí podemos ver que contiene 3 archivos, el que necesitamos es el libbit4ipki.so, para instalarlo en nuestro sistema debemos copiar este archivo en un directorio de de nuestro sistema de la siguiente manera:
sudo cp libbit4ipki.so /usr/lib
De esta forma el driver ya está instalado y podemos utilizarlo desde Sinadura
Instalar el driver con el ejecutable #
Para instalar el driver utilizando el ejecutable, solo tenemos que situarnos en el directorio donde este se encuentra de la siguiente forma:
cd /home/nuestra_home/Descargas/Kit_Izenpe_Linux_cryptoKEY_3.0.3.6/
En ella vemos dos .deb, estos son los instalables, debemos ejecutar el instalable dependiendo de la arquitectura de nuestro equipo, ya sea de 32 o 64 bits, por ejemplo en un equipo de 64 bits debemos introducir el siguiente comando para instalarlo:
sudo dpkg -i libminilector38u-ccid-bit4id-amd64.deb
Esperamos a que el proceso termine y el driver se encuentra instalado.