Sinadura 1.3 publica el código fuente y manual técnico

David Olmos (Zylk.net) me envió a finales de año información sobre el código fuente de la versión 1.3 de Sinadura, la aplicación libre para el uso de firma digital en Linux (en concreto, para la firma digital de documentos PDF).

«Acabamos de publicar las fuentes de la versión 1.3 de sinadura, está dividido en en core y en desktop como en la v.1.0. Hemos estado limpiándolas un poco y, todavía no tenemos manual para explicar cómo se configura el proyecto para compilar desde las fuentes y satisfacer las dependencias, pero dános unas semanas y estará todo publicado.»

Dicho y hecho, han pasado unas semanas y ya tenemos manual técnico, que nos explica paso a paso cómo descargar y compilas las fuentes de Sinadura. Entre las funcionalidades que se requieren con más urgencia yo destacaría el soporte a la comprobación de listas de revocación (si no se comprueba no podremos realmente confirmar la validez de un certificado) y el soporte a la firma múltiple (imprescindible para firmar actas con certificado digital por parte de varias personas).

Igual hasta se podrían proponer estas funcionalidades al Google Summer Of Code 2009… si es que este año Google también se anima a llevarlo adelante (con eso de la crisis, lo veo difícil…)

Certificados digitales CACert y Web of Trust

Ya hablamos hace tiempo de la autoridad de certificación gratuita CaCert. Desde entonces (hace ya más de un año), sigo intentando que usuarios de este mismo certificado me avalen. Avalar a otro usuario de CaCert es simplemente quedar con él en algún sitio, comprobar carnet de conducir y DNI (o cualesquiera otros dos documentos que avalen que tú eres quien dice ser), rellenar un formulario en la web de CaCert.org y listo. En ese formulario se estipula que fulanito (el que avala, assurer) reconoce a menganito (el avalado). Ese paso hace que menganito tenga X puntos más en Web of Trust (a mí me gusta traducirlo como anillo de confianza). Si consigues 50 puntos, CaCert incluirá tu nombre y apellidos en el certificado de forma gratuita. Mientras no los consigas, sólo aparece tu dirección de correo electrónico. No cualquiera puede ser assurer. Hay que estar avalado con 100 puntos. Los detalles los puedes leer en el wiki de la autoridad. Finalmente, cuando alguien te avala te pueden dar 10 o 35 puntos de golpe, por lo que necesitas varios assurers antes de poder conseguir tu nombre y apellidos en el certificado.

Tras más de un año de búsqueda, creo que lo mejor, no obstante, va a ser encontrar a dos abogados para que validen mi identidad y enviar a continuación el formulario correspondiente a Australia, la sede de CACert…. ¿Algún abogado en la sala? 🙂

Firma digital en Linux: Sinadura.net y Adobe Acrobat

Recordemos que habíamos configurado la aplicación Sinadura para firmar un PDF desde Linux con certificado digital (en hardware, es decir, certificado disponible en tarjeta criptográfica, en concreto la tarjeta de la autoridad de certificación IZENPE). Habíamos conseguido firmar el PDF sin problemas, pero cuando lo abríamos en Acrobat Reader, veíamos que la firma no se podía validar (Signature validity is unknown).

¿Cómo solucionarlo? Lo primero, nos descargaremos los certificados raíz y los de ciudadano, empresa, etc. desde la página oficial.

Los descomprimimos y procedemos a su instalación en Adobe Acrobat Reader. Para ello, desde Reader, pulsamos en Document / Manage trusted identities. En Display, elegimos «Certificates». Por el momento sólo está el de la propia Adobe. Pulsamos en «Add Contacts…», a continuación en Browse… e importamos uno a uno los 5 certificados:

ca_raiz.crt ca_aapp_no_reconocidos.crt ca_aapp_reconocidos.crt norecSCI_csrs.crt ca_ciudadanos_entidades_reconocidos.crt

Una vez hecho, veremos una pantalla como la de la figura de la izquierda. Ahora sólo falta editar el grado de confianza del certificado raíz de Izenpe (pulsamos en «Edit trust»), eligiendo una de las opciones (puedes informarte más al respecto aquí). Yo sólo he marcado la opción «Trust this certificate for: Signatures and as a trusted root» (es decir, no he marcado «Certified documents») Pulsamos OK hasta cerrar todas las ventanas que hemos ido abriendo, recargamos el documento y ¡por fin!, vemos que la firma está reconocida como válida por Acrobat Reader.

Addendum: al abrir un documento PDF firmado con certificado IZENPE, Adobe Acrobat Reader realizará una comprobación OCSP para saber si el certificado que se usó para firmar está revocado o no. Durante medio segundo se puede ver una barra de progreso en pantalla (tal y como aparece en la imagen de la izquierda). En las propiedades del certificado, en la pestaña «Revocation», podemos ver si el certificado ha sido revocado o no (según la comprobación que se hace vía OCSP). En nuestro caso, se ve que el certificado no ha sido revocado (es válido por el momento 😉


 

Para saber más al respecto de la gestión de la seguridad de documentos PDF con Adobe Acrobat, existe una guía de seguridad con todo lujo de detalles técnicos.

Metapostariak: el blog del servicio Metaposta

Ya hablamos en DiarioLinux sobre el servicio Metaposta (y como se ve en ese post, también se habló al respecto en el Parlamento Vasco). Tras leer esos documentos, no obstante, seguro que nos quedaban muchas dudas al respecto… Pues bien, los propios administradores de Metaposta han comenzado un blog, llamado METAPOSTAriak, que tiene como objetivo informar sobre este servicio, incluyendo para empezar una descripción más detallada (con ejemplos de uso que yo echaba en falta) tal y como apareció en PCWorld, y un FAQ, donde (en la segunda parte) han tenido a bien publicar la respuesta a mis preguntas 🙂 (thanks David!) Creo que es de obligada lectura para todo usuario del servicio….

Sinadura: firma digital de PDFs en Linux

Las empresas vascas especialistas en Software Libre Irontec y Zylk han publicado y liberado el código fuente de Sinadura, una aplicación Java que permite firmar digitalmente ficheros PDF en Java, usando por ejemplo, certificados digitales de Izenpe, FNMT o el DNIe… Update: Este desarrollo ha sido posible gracias a la asociación de empresas de software libre de euskadi ESLE y al prograna KZLankidetza de la SPRI.

Es la primera aplicación de escritorio para firma de PDF bajo licencia libre que conozco, y dará que hablar. El interfaz de la aplicación está preparado para el soporte multi-idioma – de momento inglés, castellano y euskera .

Realmente la presentación oficial de Sinadura se va a hacer por todo lo alto en Bruselas -en breve-, pero la web ya está online, y en DiarioLinux siempre estamos al tanto de lo que se cuece 😉

Tras descargar la última versión (la v1.3 en el momento de escribir estas líneas, ocupando 13MB), la instalación es sencilla:

$ sudo java -jar sinaduraDesktop_v1.3_linux_installer.jar

y seguir las instrucciones a partir de un coqueto instalador en modo gráfico hecho con IzPack.

Una vez instalado, por defecto y si no elegimos otra ubicación, dejará un acceso directo en el menú Aplicaciones/Ofimática.

Al abrirlo, se nos solicitará que protejamos el acceso a esta aplicación mediante un password, que fijaremos la primera vez y que será el que usemos cada vez que lancemos Sinadura en el futuro:

Lo primero que haremos será configurarlo para que acepte el certificado digital que nos interese. En mi caso, lo he configurado para que acepte mi certificado digital ONA (también he probado el certificado digital especial para profesores de la UPV/EHU, emitido así mismo por Izenpe, sin problemas).

La configuración comienza pulsando en Herramientas/Configuración Personal. Veremos que hay multitud de detalles y funcionalidades que podemos ajustar (Sinadura no sólo sirve para firmar PDFs, pero eso lo dejaremos para otro post 😉

Empecemos por el menú «Firma», y ahí, elegiremos un directorio de destino donde guardar los PDF que firmemos. Supongamos que para las pruebas elegimos «/tmp».

Pinchamos ahora en el menú «Gestión de certificados» del panel de la izquierda para configurar nuestro certificado digital (nos aseguramos de introducirlo en el lector) y a continuación en el botón «Añadir». Tecleamos un nombre (de perfil), que en mi caso será Izenpe (no me he cansado mucho pensando 🙂 . En el tipo de certificado elegiremos PKCS11 (alguien pensará «podían ser más user-friendly y poner ‘Certificado digital de tarjeta'»…. no problem, es un «bug» que uno de los autores me ha confirmado que se arreglará). Fijamos la ruta a la librería dinámica que gestiona este tipo de certificados (en mi máquina /usr/lib/opensc/opensc-pkcs11.so y la contraseña del certificado. Pulsamos en «Aceptar» y si todo va bien, en el desplegable «Certificado por defecto» debería de aparecer nuestro nombre (tal y como se ve en la figura adjunta).

Nota: otro «bug» o mejor dicho «deseo», es que el sistema debería de encontrar la ruta al opensc-pkcs11.so él solito…. y sólo si no lo encuentra que nos pregunte…

Para proceder a la firma de un PDF, pulsamos en «Añadir archivos» y elegimos el PDF a firmar.

Podemos seleccionar más de un PDF a firmar. Cuando estemos «contentos» con nuestra selección, pulsaremos «Firmar archivos». El PDF firmado se guardará en el directorio que hayamos configurado (en mi caso, /tmp), con el mismo nombre que el fichero original más el sufijo «-signed.pdf».

Para comprobar el resultado hemos de abrir Acrobat Reader (Evince por el momento no soporta la gestión de firmas digitales en un fichero PDF) y pulsar en el icono de la parte izquierda con forma de bolígrafo sobre una nota de papel

Si desplegamos el mensaje que indica que la firma no se ha podido validar, vemos que es debido a que no hemos incluido al firmante en la lista de firmantes de los que me fío 🙂

Así que habrá que incluirlo… pero eso lo dejo para mañana. A dormir….