Estas aquiContenido / Sinadura (I): Instalación en un sistema Linux
Sinadura (I): Instalación en un sistema Linux
Por Fernando Acero
Después de revisar la instalación y uso de PortableSigner, ahora revisaremos la aplicación Sinadura, que es “made in Spain”. Sinadura nació como un proyecto libre, con la intención de proporcionar un servicio multiplataforma para la generación de facturas electrónicas mediante firma digital de archivos en formato PDF, algo que sin duda es muy interesante.
En relación con PortableSigner, podemos decir que Sinadura muestra una serie de capacidades, que nos puede llevar a considerar que en este momento estos dos programas pueden ser complementarios y por lo tanto, puede ser interesante mantener instalados los dos al mismo tiempo...
En primer lugar, Sinadura nos permite usar certificados digitales en contenedor PKCS#11 (certificados digitales en tarjeta inteligente), o certificados digitales en contenedor PKCS#12 (certificados de software), tanto de 1024 bits, como de 2048 bits. Asimismo, Sinadura permite usar firma visible (sello de firma) o invisible, así como la impresión de una nube de bits en formato PDF417, funciones que no soportadas por PortableSigner. La última opción, es decir, la de la nube de bits en formato PDF417, aunque no es demasiado utilizada, nos permitiría imprimir en papel los datos de la factura, así como su firma digital, eliminando así, a cambio de disponer de un lector óptico adecuado, la obligación de mantener almacenadas las facturas en formato electrónico, tal como establece la Ley.
Sin embargo, esta versión de Sinadura no soporta la interesante firma múltiple concurrente, que sí nos permitía PortableSigner. Según me han informado los responsables del proyecto, se piensa añadir esta casi imprescindible funcionalidad, en futuras versiones de la aplicación, así como la interesante capacidad de comprobar firmas digitales en documentos PDF, lo que evitaría tener que instalar y utilizar Acroread, que aunque es gratis, no es libre.
Después de una serie de problemas con la instalación y con la puesta en funcionamiento de la versión 1.3.0, me puse en contacto son los desarrolladores del programa y en base a los problemas observados, han creado la versión 1.3.1 que corrige algunos de ellos, pero no todos, que quedarán pendientes para versiones posteriores.
Para instalar el programa, lo primero que tenemos que tener instalado es el entorno Java, para ello, si no lo hemos hecho antes, deberemos seguir las instrucciones que encontraremos en el artículo PortableSigner (I): Instalación de Java en Linux. Como veremos, el proceso de instalación mediante el instalador jar de Sinadura, es casi idéntico al de PortableSigner.
a) Comenzaremos por descargar la última versión de Sinadura, que ahora es la 1.3.1, desde la página oficial de descargas. Como veremos, hay opciones para varias plataformas. En mi caso utilizaré el archivo instalador Java (.jar) para sistemas Unix de 32 bits, es decir, el archivo sinaduraDesktop-1.3.1-unix32-install.jar . Después de hacer clic sobre el archivo, lo almacenaremos en un directorio de nuestro sistema. Hay que señalar, que es recomendable instalar este programa de forma individual para cada usuario, puesto que todavía tiene algunos errores que complican la instalación como root. Sin embargo y a pesar de ello, en este articulo veremos la forma de instalarlo como root, por ser la situación más complicada.
b) Ahora, abriremos una consola como root y configuraremos el entorno de Java, si no lo tuviéramos ya configurado para el usuario root. Para ello, usaremos en la consola la siguiente secuencia de mandatos, o aquellos que correspondan en función a nuestra versión de Java y el directorio de instalación. Como es lógico, tras escribir cada una de las líneas, tendremos que pulsar la tecla Enter:
export PATH=/usr/java/jre1.6.0_12/bin:$PATH
JAVA_HOME="/usr/java/jre1.6.0_12/"
export JAVA_HOME
c) Hecho esto, ya podemos proceder a arrancar el instalador de Sinadura, para lo que nos situaremos en el directorio en el que lo hemos guardado antes y usaremos el mandato:
java -jar sinaduraDesktop-1.3.1-unix32-install.jar
Al poco tiempo, si tenemos Java correctamente configurado en nuestro sistema para el usuario root, se abrirá el entorno gráfico de instalación de Sinadura, que como hemos dicho, es muy similar al de PortableSigner. Veamos paso a paso este proceso:
1) La primera ventana nos solicitará el idioma de instalación. En ella seleccionaremos Castellano [SPA], seguido de un clic sobre el botón "Ok". Una ventaja frente a PortableSigner, que solamente permitía el inglés y el alemán.

2) La siguiente ventana, nos hace una presentación del programa que vamos a instalar, informándonos sobre sus autores y sobre la página web del proyecto. Simplemente tenemos que hacer clic sobre el botón “Siguiente”.

3) Después, el instalador nos preguntará por el directorio de instalación para el programa. No hay problema para dejar el que nos sale por omisión en la ventana, que es /usr/local/sinadura, por lo que bastará con que hagamos clic sobre el botón “Siguiente” que aparece en la parte inferior de la pantalla. En caso de que queramos instalarlo en otro directorio, solamente tendremos que pulsar el botón "Escoger" y elegir el que deseemos.

4) Si el directorio elegido ya existiera, el programa nos avisará de este hecho. Asimismo, si el directorio no existe, el programa también nos solicitará permiso para su creación, a lo que contestaremos con la pulsación del ratón sobre el botón "Ok".

5) En la siguiente ventana, es necesario asegurarse que está seleccionada la opción “sinadura”. Como en las ventanas anteriores, continuaremos la instalación haciendo clic sobre el botón "Siguiente".

6) Después del último clic sobre el botón "Siguiente" y durante unos breves segundos, nos aparecerá una ventana con dos barras de progreso, que nos indicarán que se está realizando la instalación en el sistema, y tras finalizar, lo que se indica con el mensaje [Instalación completada] en la barra superior, solamente tendremos que hacer clic sobre el botón "Siguiente" para continuar.

7) Finalmente, el programa nos pide que confirmemos algunas opciones de la instalación relacionadas con el entorno. Recomiendo seleccionar las que aparecen en la imagen, como siempre, para continuar, después de seleccionar las opciones deseadas, deberemos hacer clic sobre el botón "Siguiente". Puede que las opciones más interesantes son las de "Crear accesos directos en el menú inicio" y "Todos los usuarios", que es la que permite que el programa sea usado por todos los usuarios del sistema, opción obligatoria si se está haciendo la instalación como root. Estas opciones no funcionan muy bien cuando la instalación se hace como usuario, al menos en mi Mandriva. Posteriormente veremos la forma de solucionar este problema de instalación.

8) La última ventana que nos aparece en pantalla, nos debería indicar con una gran “V” de verificación de color verde, que la instalación se ha completado con éxito y que hay un programa de desinstalación, denominado Uninstaller, en el directorio /usr/local/sinadura, lo que debemos tener en cuenta, si queremos eliminar esta aplicación posteriormente. Para finalizar, solamente tendremos que hacer clic sobre el botón "Hecho".

Aunque la versión 1.3.1 corrige algunos de los problemas de instalación de la versión 1.3.0, desgraciadamente, como he dicho, dado el poco tiempo disponible, no los corrige todos y el programa así instalado, no funcionará adecuadamente. Vuelvo a señalar, que por lo que he usado el programa, desde el punto de vista de la firma digital, tanto la versión 1.3.0, como la 1.3.1, funcionan adecuadamente, por lo que lo que habrá que depurar para el futuro, es la instalación. Tanto la instalación como root o como usuario distinto de root, tienen problemas específicos. Para solucionar estos problemas, cuando lo instalamos el programa como root necesitamos estos pasos adicionales.
a) Primero, cambiaremos los permisos del directorio resources, que ha de ser compartido por todos los usuarios en lectura y escritura. Desde una consola como usuario root, escribiremos el siguiente mandato seguido de la pulsación de la tecla Enter. Este paso no es necesario cuando instalamos el programa como un usuario distinto de root:
chmod -R /usr/local/sinadura/resources
b) Seguidamente, crearemos un directorio de trabajo en el área personal de cada usuario. Para ello, abriremos una consola como el usuario que desea usar el programa y usaremos el siguiente mandato seguido de Enter. Este paso no es necesario cuando lo instalamos como un usuario distinto de root:
mkdir /home/usuario/sinadura
c) Hecho esto, ya podemos arrancar el programa, para ello, usaremos la secuencia de mandatos Menú Inicio | Officina | Sinadura – Firma Digital (ver la nota final para la instalación del programa como usuarios distintos de root):


d) Tras unos segundos, arrancará el programa y lo primero que nos solicitará, es una contraseña maestra para la aplicación, la introduciremos y haremos clic sobre el botón Aceptar.
Dicha contraseña la deberemos usar cada vez que deseemos usar el programa. Si hemos instalado el programa como root, esta contraseña se guardará en el área común /usr/local/sinadura/resources, por lo que esta es la contraseña que deberían usar todos los usuarios para poder usar el programa. Sin duda, un problema de "revelación" de secretos.
Lo ideal sería que el programa generase un directorio resources para cada uno de los usuarios en su directorios home y de esta forma, que cada uno pudiera tener su propia contraseña y su almacén de certificados específico. La solución para este problema, como se ha dicho antes, sería instalar el programa individualmente para cada usuario, en lugar de hacerlo como root. De esta forma, el programa funciona de forma independiente para cada usuario y generará un directorio resources propio e individual, aunque esta opción, tampoco está exenta un pequeño problema, que resolveremos más adelante.
f) Finalmente, seleccionaremos la secuencia de mandatos Herramientas | Configuración personal y en la ventana que aparece, haremos clic sobre el botón Browse que hay a la derecha de la opción Directorio de destino. Al hacerlo, el programa nos mostrará un mensaje de error ya que el directorio que aparece por omisión no existe. Este paso es muy importante, puesto que si no lo hacemos, el programa no podrá firmar ya que no podrá almacenar los archivos firmados.
Para continuar, haremos clic sobre el botón Aceptar. Seguidamente, seleccionaremos el directorio /home/usuario/sinadura, que hemos creado antes, o que ya debe existir, si hemos instalado el programa como un usuario distinto de root. En este directorio aparecerán los archivos PDF firmados. Como es lógico, tendremos que cambiar el usuario, por el nombre de usuario adecuado. Tras seleccionar el directorio que deseamos usar, pulsaremos el botón Aceptar, seguido de Apply y Ok.

g) Para salir de la aplicación, haremos clic sobre el aspa que aparece en la parte superior derecha de la ventana, o seleccionaremos la secuencia de mandatos Archivo | Salir.
Con todo lo anterior, ya tenemos instalado y configurado Sinadura, quedando a falta de instalar los certificados de usuario, para poder empezar a firmar documentos PDF. En la siguiente y última entrega de esta serie dedicada a Sinadura, veremos la forma de utilizarlo.
Nota para instalaciones como usuario distinto de root:
Si se instala el programa como un usuario distinto de root, el programa de instalación no genera el acceso directo en el menú Inicio, al menos, en mi sistema Mandriva basado en KDE. Si en nuestro sistema pasa lo mismo y estamos usando el KDE, una vez que hemos entrado en el sistema como un usuario normal, haremos clic con el botón derecho del ratón sobre el escritorio y seleccionaremos la secuencia de mandatos Crear nuevo | Enlace a aplicación.
En la pestaña "General" haremos clic sobre el icono de la parte superior izquierda, seleccionaremos la marca de verificación Otros iconos y haremos clic sobre el botón Examinar. Debemos seleccionar el icono sinadura48.png, que encontraremos en el directorio /home/usuario/sinadura/resources/images y haremos clic sobre el botón Abrir. Seguidamente, escribiremos Sinadura en la línea de entrada de texto de esa misma pestaña.
Después, seleccionaremos la pestaña "Aplicación" y escribiremos Sinadura en las dos líneas de entrada de texto, Descripción y Comentario y escribiremos la cadena '/home/fernando/sinadura/sinadura/bin', incluidas las comillas simples, en la línea de entrada Orden. Para finalizar, haremos clic sobre el botón Aceptar. Ahora cuando hagamos doble clic sobre ese icono en el escritorio del KDE, arrancará el programa y nos aparecerá su interfaz de usuario que hemos visto antes.
[Continúa en "Sinadura (y II): Uso y funcionamiento" ]
"Copyleft 2009 Fernando Acero Martín. Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved"
A diferencia de PortableSigner, que ha sido imposible en mi caso instalar, todo ha salido bien a la primera.
Después de la instalación del programa, paso a su configuración, indicando directorios y ubicación de mi certificado PK12.
Y se realiza la firma de, para empezar, un PDF.
Ahora, con Evince que es el lector de PDfs en Gnome no puedo ver si esta firmado o no.
Sobre el plugin "acroread" por lo menos en mi Ubuntu 8.04 (2) 64 no funciona bien. Se instala una instancia ld-linux.so.2 que hace ponerse al micro al 100%.
Un saludo y gracias
Gargamel
ID: 9841AC9E
Es por usar una distro de 64 bits. Todas las prubas de performance demuestran que los procesadores de 64 bits sólo corren más rápido el software específico para 64 bits. Y dado que prácticamente todos los progrmas tienen versiones de 32 bits, es obvio que no hay ni habrá en mucho tiempo ningún programa que se beneficie realmente de los 64 bits.
En resumen: que no tiene ningún sentido instalar distribuciones de 64 bits, sólo causan problemas con software propietario (como acroread) y no ofrecen ninguna ventaja.
Estoy de acuerdo con Gargamel, yo lo he probado con Ubuntu 8.10 instalando con las opciones por defecto y me arranca bien.
gracias por el articulo, muy util.
Las prisas.
Pues eso que no son buenas.
Efectivamente si se ve desde Evince el PDF firmado. Cual sello de lacre en la parte superior izquierda del mismo.
No me percate que el PDF firmado se aloja en lugar diferente al PDF original.
bye
Gargamel
ID: 9841AC9E
En evince se ve el sello, lo único que no hace la comprobación OCSP del estado del certificado ni el path de confianza. Lo cual puede que sea un problema. A ver si para las siguientes versiones de sinadura se puede además de firmar, validar la firma y podemos dejar de usar acroread como visor de pdfs.
Hola Gargamel:
Mi versión de Evince me muestra el sello, pero no comprueba que la firma sea válida, ni mediante los certificados raíz, ni mediante los sellos de tiempo. Simplemente muestra el sello indicando "Signatura not verified", de hecho si intento ver un documento firmado con "firma invisible", lo muestra como si no estuviera firmado.
Creo que lo único que hace Evince es mostrar el sello, de forma perecida a un gráfico colocado sobre el documento, pero no trata adecuadamente las firmas en lo que la verificación se refiere, lo que no tiene nada que ver con la verificación que realiza Acroread cuando se configura adecuadamente.
Según me han comentado los desarrolladores de Sinadura, está previsto añadir la capacidad de verificación de firmas en versiones sucesivas.
Un saludo, Fernando Acero
Me alegra que la gente se anime a instalar estos programas y a firmar documentos en PDF con ellos. Estoy preparando la segunda parte de este artículo, espero que os guste y aclare algunas cosas sobre el uso del programa.
Un saludo, Fernando Acero
...para los fans del trivial, "sinadura" es "firma" en euskera :)
-------------------------------------
conocimiento = poder = energía = materia = masa ==> libros = agujeros negros --- Terry Pratchett
conocimiento = poder = energía = materia = masa ==> libros = agujeros negros --Terry Pratchett--
Relacionado.
Una nueva versión de java.
Sinadura funciona perfectamente con esta version
java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Server VM (build 11.3-b02, mixed mode).
Gargamel
ID: 9841AC9E
Ahora queda esperar que los desarrolladores de Sinadura implementen, como en su mismo foro comentan[1], el poder ejecutar el programa directamente desde el intérprete de órdenes, sin tener que utilizar el gui, si no queremos. Me voy a ahorrar un montón de dolores de cabeza :)
Por cierto, me ha gustado mucho saber el significado de Sinadura. Tan simple, y no se me había ocurrido ni consultarlo.
[1] http://www.sinadura.net/foro/-/message_boards/message/33351