Firma digital (firma electrónica) con Writer

INTRODUCCIÓN: ¿Qué necesitamos para poder firmar un documento con firma electrónica?

El tema de la firma digital es algo más complejo de lo que parece y lo que comento es una ligera aproximación al tema, independientemente de que seamos usuarios de Windows o Linux. Existen varias formas de firmar digitalmente un documento, una de ellas es con firma electrónica, que es la empleada en este post.

Para firmar un documento con firma electrónica será necesario:

  • disponer de un certificado digital o de una tarjeta criptográfica (tarjeta inteligente) como el DNIe.
  • configurar el ordenador, para ello se requiere:
  • instalar una serie de programas para el uso de firmas electrónicas y tarjetas inteligentes.
  • instalar los módulos criptográficos.
  • disponer de navegador compatible con firmas electrónicas (por ej. Firefox ESR). La mayoría de navegadores no son compatibles o no sirven para firmar electrónicamente.
  • si se usa certificado digital deberá importarse primero al almacén de certificados del ordenador (Windows) o del navegador (Linux)
  • si se usa tarjeta criptográfica se deberá tener además un lector de tarjetas e instalar los drivers correspondientes.
  • instalar una aplicación para firmas, como Autofirma o Sinadure. La aplicaciones de firma son capaces de firmar cualquier tipo de documento electrónico y verificar la firma. Algunos programas, como Libre Office, permite firmar el mismo documento que se genera. Sin embargo, es muy probable que el destinatario del documento firmado deba tener la misma aplicación para ser capaz de verificar la firma.

Las firmas electrónicas, se firmen con un programa (procesador, editor,…) o con una aplicación de firma, deben ser verificables por otras aplicaciones de firma.

A la hora de usar un lector de PDF’s -hasta donde yo sé- solo Adobe (y los lectores de PDF de algunos navegadores) pueden “mostrar” la firma electrónica. Por eso, muchos de nosotros incluimos una “marca visible” con la firma -es una opción que te dan las aplicaciones de firma- para que se pueda saber que ese documento se ha firmado electrónicamente cuando lo abres con lectores de PDF distintos de Adobe. Esta marca visible básicamente consiste en incluir de manera visible unos datos como: fecha de firma, nombre del firmante, etc.

¿cómo firmar digitalmente documentos .ods o .pdf con Writer?

Siguiendo la ayuda de Libre Office del enlace inferior:
https://help.libreoffice.org/latest/es/text/shared/01/ref_pdf_export_digital_signature.html
He realizado varias pruebas y os traslado los resultados:

NOTAS:

  1. Las pruebas se han realizado en GNU/Linux (Debian) y con algunas herramientas de uso en España. Algunos puntos serán extrapolables a otros contextos y otros no.
  2. En mi caso tengo un certificado digital y una tarjeta inteligente (DNIe), pero solo he empleado el certificado digital

“Las firmas digitales se emplean para cerciorarse de que un PDF determinado fue creado por su autor original (esto es, usted) y que no lo han modificado después de que se firmó.”Esto es muy importante, no es lo mismo: Firmar antes de exportar a PDF que después de (o “durante”) la exportación a PDF.

“El llavero que se utilizará puede seleccionarse en Herramientas ▸ Opciones ▸ LibreOffice ▸ Seguridad ▸ Ruta de certificado.” —> En mi caso, el certificado digital está guardado (importado) en el almacén de certificados del navegador (Firefox ESR) y LO ha detectado automáticamente el almacén sin intervención por mi parte.

Imagen ruta-certificado

“Cuando utilice una tarjeta inteligente, esta debe estar ya configurada para su uso por el llavero. Normalmente este proceso se realiza durante la instalación del «software» de la tarjeta.” —> Técnicamente es así, pero no he probado a firmar con una tarjeta inteligente.

Pruebas:

  1. Firmar un documento Writer SIN exportar a PDF. He ido a Archivo ▸ Firmas digitales ▸ Firmas digitales .... En la ventana emergente (que inicialmente aparece vacía) he clicado sobre el botón “Firmar documento…”, he seleccionado mi certificado y luego he clicado sobre el botón “Firmar”.
    Imagen writer-firmas digitales.

He comprobado en la web de Valide la validez de la firma. Ha reconocido el archivo .odt y ha validado la firma, informado de que era válida.

  1. Exportar a PDF el documento firmado anteriormente y validar la firma con Valide —> Al exportar se modifica el archivo firmado. Como es de esperar, al revisar el PDF con Valide, me informa de que la petición no es correcta y el formato de la firma no es válido.

  2. Firmar exportando a PDF, firmar un documento writer “durante” la exportación, siguiendo la orden: Archivo ▸ Exportar a ▸ Exportar a PDF ▸ pestaña Firmas digitales. En la ventana emergente, además de seleccionar el certificado aparecen varios campos.

Aquí he seleccionado el certificado y he hecho 2 pruebas con el campo de contraseña:
1. indicando la contraseña del certificado
2. SIN indicar la contraseña del mismo.

En ambas ocasiones se ha generado y firmado el documento PDF y la firma era válida según Valide.
Por tanto, entiendo que no se solicita la contraseña del certificado sino la del almacén de certificados cuando esté este protegido con contraseña → Esta última parte está sin comprobar.

  1. Durante la prueba anterior cumplimenté también los campos: “Ubicación, Información de contacto y Motivo” para saber si es cierto que deja una “marca” (texto) visible para otros cuando visualicen el texto. No me ha funcionado.
    Según el enlace de la ayuda de LO: “Estos tres campos le permiten, facultativamente, proporcionar información adicional tocante a la firma digital que podrá aplicar al PDF (dónde, por quién y por qué se firmó, respectivamente). Estos datos se incorporarán en los campos pertinentes del PDF y serán visibles a todos quienes visualicen el PDF. Puede dejar cualquiera de estos campos en blanco.”

El texto anterior, dice que se incorporarán en “los campos pertinentes del PDF” -¡A saber, qué quiere decirso exactamente!- Supongo que se requiere de un paso previo, p. ej. insertar campos, pero en el menú “Insertar” no he visto campos de ese tipo.

  1. Exportar primero a PDF el documento de writer original y luego firmar desde Writer el PDF generado, con la orden: Archivo ▸ Firmas digitales ▸ Firmas PDF existente ....
    Writer advierte de que ha abierto el PDF en modo lectura para permitir editarlo o firmarlo, si clicas el botón de “firmar documento” te permite firmar seleccionando el certificado digital. En este caso cerrar el documento sin guardar (si guardas se modificará y no servirá). El PDF firmado de este modo se comprueba con Valide y confirma que la firma es válida.

Añadir una marca visible: Como comenté anteriormente, según con qué visor de PDF se abra, la firma no será visible. Inicialmente, en la prueba 3 es posible añadir una marca visible durante la firma, pero no he sabido cómo funciona. Exite otra alternativa usando la opción Insertar ▸ Espacio de firma..., antes de firmar. En este caso sí aparecería una “marca” visible de que se ha firmado digitalmente.

  1. No he probado a firmar con el DNIe. Quizás lo intente otro día.

También se puede firmar PDF existentes. Según un compañero del grupo de Telegram, incluso PDF existentes no creados con LibreOffice.

5 Likes

Me surgen 2 dudas en relación a este hilo porque no he planteado un problema y no busco ninguna solución, ¿debería marcarlo como solucionado o dejarlo abierto? ¿Marcarlo como solucionado implicaría que no se pudiese comentar?

Gracias.

Aunque tu artículo está bastante completo, me gustaría completarlo y aclarar algunas cosas.

No es necesario un navegador compatible. En Windows se utiliza el almacen del sistema y en Linux se puede utilizar el almacén de Thunderbird para firmar desde LibreOffice

Puesto que estamos en el foro de LibreOffice, todo el proceso de firma se puede hacer con LibreOffice, sin necesidad de instalar ninguna de las aplicaciones que mencionas

En ningún caso es necesario tener ninguna de esas aplicaciones para comprobar la firma, tú misma has mencionado que se puede verificar la firma on line con Validae. También se pueden verificar las firmas directamente desde cualquiera de los visores PDF que permiten ver las firmas digitales, siempre que estén configurados correctamente (tienen que tener instalados los certificados raíz de las empresas u organismos emisores de las firmas)

Hay varios lectores de PDF que son capaces de mostrar la firma, por ejemplo, Foxit Reader:

O también Okular:

El primero es gratuito y el segundo de código abierto, ambos están disponibles tanto para Windows como para Linux (desconozco si existen para MacOS)

Tener una marca visible no garantiza que el documento esté firmado, la marca se puede simular o copiar sin ningún problema. Por ejemplo, en esta imagen se muestran las firmas de Autofirma, de Foxit reader y de Adobe Acrobat. Igual que las he copiado para este documento las podría insertar en cualquier otro documento (que podría no estar firmado):

Evidentemente la firma deja de ser válida porque el documento se ha modificado (¡y no ligeramente!), puesto que se ha cambiado de formato.

Dependiendo de como se instale el certificado, puede que el mismo certificado te solicite la contraseña cada vez que firmas. Es para estos casos para los que existe el campo de contraseña

Dependiendo de los lectores, alguno de esos campos sí que se muestran en la información de la firma, se puede ver en la imagen de Okular que muestro anteriormente, en la que se muestra el motivo (lo he resaltado con un rectángulo rojo).

Lo único que tienes que hacer es seguir los pasos del punto 5 que indicas anteriormente, en realidad en ese punto estas firmando un PDF existente (que habías creado anteriormente al exportar el ODT). Firmar un PDF que no ha sido creado con LibreOffice es exactamente igual; un PDF creado con LibreOffice o con otra aplicación no deberían ser diferentes (salvo en algunos campos, en principio ocultos, como puede ser el campo Creador, que indica el programa que lo ha creado).

Por último, desarrollo un poco lo de hacer la firma visible en Writer. El proceso completo es:

  • En el menú, seleccionar Insertar > Espacio de firma, esto mostrará un diálogo
  • Rellenar los campos que se considere necesario (puedes probar a ver que pasa con cada uno de ellos o ver la ayuda, que no es muy completa en este caso). Pulsar Aceptar
  • Esto insertará un gráfico (que a mi me parece horrible)
  • Para firmar realmente el documento, hacer clic con el botón derecho sobre el gráfico insertado anteriormente y seleccionar Firmar espacio de firma
  • Aparece un nuevo diálogo para firmar, en el que podemos poner nuestro nombre o seleccionar una imagen (que simule la firma), seleccionar el certificado con el que firmar y añadir comentarios a la firma.

Firmar con el DNIe no se diferencia en nada de firmar con el certificado. La única diferencia es que el certificado del DNIe (sí, tambien es un certificado digital) solo está presente en el almacén de certificados mientras el DNI está en el lector y además, siempre hay que poner la contraseña para firmar (recuerdas aquel campo de contraseña…)

1 Like

Gracias, por la muestra. Así que es ahí donde se muestran los datos que cumplimentaba en el punto 4 y por eso no aparecían en la parte “visible” del documento, en decir, junto al contenido del documento.

Eso es cierto. La marca permite “intuir” que está firmado digitalmente en caso de no disponer de un visor de PDF que identifique o muestre firmas digitales, pero, como bien dices, no es una garantía y por eso es muy conveniente verificar que está firmado y que la firma es válida.
También es posible pensar que está sin firmar, si no hay marca visible y el visor no detecta la firma digital. A gusto de cada uno.

(Por cierto, tus marcas de firma falsas dan el pego.)

Que conste que este comentario iba por ti, :slightly_smiling_face:
Aunque para mi es obvio que LibreOffice puede firmar PDF existentes generados por la propia aplicación, puede que para otros no sea tan obvio. Como estaba haciendo pruebas me he limitado, en lo posible, a constatar los resultados de la pruebas y poco más que tuviese probado sobradamente.

Sin embargo, no he probado a firmar con LO un PDF existente creado con otra aplicación para confirmarlo o negarlo.

También probé el Espacio de firma y coincido contigo en que es horrible el gráfico. En general, esta opción de LO no cubre mis expectivas, aunque se puede modificar el tamaño del espacio de firma no se puede ajustar el contenido a dicho espacio.

Lo sé, uso mi DNIe para firmar a veces, pero no hice las pruebas con el DNIe para constatarlo. Ya que lo mencionas… Sí, para este caso sería necesario cumplimentar el campo de contraseña del punto 3 para acceder a los certificados de la tarjeta.