Cómo instalar Firma Digital Certificada de Costa Rica en GNU/Linux

La instalación de los controladores de Firma Digital Certificada en GNU/Linux es más sencilla en la actualidad. En esta guía se propone una solución básica y luego una recomendada para hacerla compatible con algunas aplicaciones.

En cualquiera de los casos, hay que instalar el paquete pcscd y descargar el paquete correspondiente .deb o .rpm desde el sitio web de Soporte Firma Digital. Para el caso de distribuciones Debian o Linux Mint más recientes se sugiere descargar la versión .deb para Ubuntu más reciente, mientras que para distribuciones .rpm es un paquete único para todas las distribuciones basadas en .rpm.

  • Instalar el paquete pcscd. Puede instalarlo con el comando dnf o con el comando zypper (si se trata de openSUSE y derivados) en el caso de rpm, o con apt en el caso de .deb, o bien desde su gestor de paquetes alternativo o gráfico de su preferencia. Ejemplo (reemplace NOMBRECOMANDO con apt, dnf, zypper… según corresponda):
    sudo NOMBRECOMANDO install pcscd

    En algunas distribuciones puede ser necesario habilitar el servicio pcscd activado por socket, en otras viene activado de manera predeterminada:

    sudo systemctl enable --now pcscd.socket
  • Ir al sitio web https://soportefirmadigital.com/sfdj/dl.aspx?lang=es
  • En el paso “(1) Elija el instalador deseado”, elegir en el desplegable “Usuarios Linux (RPM 64 bits)”. Siga el resto de instrucciones de la página para aceptar e iniciar la descarga.
  • Tras descargarse el fichero archivador .zip, descomprimir con la herramienta de su preferencia (o con el comando unzip NOMBREDELFICHERO.zip en una ventana de terminal, desde la carpeta de descargas).
  • Instalar el paquete ubicado en la ruta Firma Digital/Idopte/ que estaba dentro del .zip, el nombre del paquete suele tener en el nombre Smart Card Middleware.
  • Instalar el paquete Agente GAUDI si se va a utilizar (probablemente). Está ubicado en Firma Digital/Agente GAUDI/

Eso sería la instalación básica, que se resume en instalar los paquetes pcscd, Idopte Smart Card Middleware y Agente GAUDI. Ver la sección Notas técnicas para más detalles.

Se agregarán otros detalles para instalación de Firmador libre y otras guías para compatibilidad con otros firmadores y autenticadores, como el de la CCSS y los de RACSA/SOIN (Tramite YA, Regístrelo, Receta digital). Mientras tanto se sugiere revisar los artículos de este blog al respecto.

Notas técnicas

Se recomienda reiniciar tras la instalación, en algunas distribuciones podría ser necesario si no funcionara.

En el momento de escribir la guía, en Debian 13 y LMDE 7 el .deb de Agente GAUDI puede fallar al instalar por una dependencia insatisfecha con libpcre3. Se puede forzar la instalación con el comando sudo dpkg --ignore-depends=libpcre3 -i agente-gaudi_*.deb, pero causará problemas de paquete roto al hacer apt upgrade, por lo que se sugiere modificar el fichero /var/lib/dpkg/status y buscar agente-gaudi. En el apartado correspondiente hay que eliminar el “libpcre3, ” de la línea de dependencias. No modificar nada nada más del fichero o se puede corromper la base de datos de paquetes instalados. Es recomendable respaldar ese fichero status antes de guardar la versión modificada.

Si no está instalado el paquete pcscd antes de instalar el paquete Idopte Smart Card Middleware, el instalador puede devolver un error de postinstalación, en particular con el paquete .deb, aunque quedará instalado de todos modos.

Para instalarlo en otras distribuciones que no utilizan paquetes .deb o .rpm, como por ejemplo Arch Linux, se recomienda analizar el contenido del fichero .rpm Se sugiere descargar cualquiera de los dos paquetes .rpm o .deb, aunque se sugiere .rpm por que tiene mayor simplicidad. En Arch Linux se puede utilizar rpmextract para extraer el contenido y luego armar manualmente su propio PKGBUILD. En otras distribuciones pueden realizar la instalación manual también de cada componente. Por ejemplo se podría observar el proceso de preinstalación y postinstalación del rpm ejecutando rpm -q –scripts SmartCardMiddleware en un sistema que lo tenga instalado, para conocer los detalles.

Si se va a crear o configurar una herramienta para acceder a las características de la tarjeta, como autenticadores o firmadores que requieran configuración manual, el instalador proporciona un librería con interfaz Cryptoki (interfaz de programación C normalizada), cuya ruta de instalación es /usr/lib/SCMiddleware/libidop11.so la cual ya viene preconfigurada en herramientas como el Agente GAUDI o el firmador libre. Hay que tener en cuenta que libidop11.so depende de otras librerías y ficheros de configuración y licencia, por lo que copiarla de manera individual para instalarla no es suficiente.

Si se quiere configurar en otras herramientas de manera unificada con p11-glue, se sugiere configurar un módulo de p11-kit para facilitar el descubrimiento de las ranuras (“slots”) la interfaz Cryptoki y de sus correspondientes fichas (“tokens”) como es el caso de la tarjeta. Una ruta relativamente común entre distribuciones suele ser /usr/share/p11-kit/modules/ donde se puede crear un fichero firma-digital.module que contenga la siguiente línea:

module: /usr/lib/SCMiddleware/libidop11.so

Si se va a habilitar firma digital en una máquina virtual con QEMU y KVM, hay que detener el servicio pcscd.socket en la máquina anfitrión (sudo systemctl stop pcscd.socket) antes de compartir el USB hacia la máquina virtual en caso de que el dispositivo aparezca como ocupado.

El componente fundamental que proporciona el distribuidor del controlador de tarjetas es de código cerrado y compilado únicamente para arquitectura x86_64. Si su computadora con GNU/Linux utiliza otro tipo de arquitectura diferente como ARM u otras, deberá utilizar algún tipo de emulación, por ejemplo, un contenedor en systemd-nspawn de arquitectura foránea con binfmt_misc y QEMU para no tener que emular una máquina completa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *