SmartCardConfigLinux

Arquitectura PCSC #

La arquitectura PCSC es una arquitectura a capas implementada mediante las siguientes capas:

arquitectura PCSC

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)):
Haz clic en el enlace: "AC Raíz" y descarga el archivo: "pkcs1-sha256WithRSAEncryption".
  • 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)):
Haz clic en el enlace: “AV DNIE FNMT" y descarga el archivo: "pkcs1-sha256WithRSAEncryption".

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:

http://www.izenpe.com/s15-12020/es/contenidos/informacion/gestionar/es_certific/puesta_en_marcha.html

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.

1 Adjunto
35197 Accesos
Promedio (0 Votos)
Comentarios