Formatos de Firma

¿Qué son los formatos de firma?

El formato de firma es la forma como se genera el documento de firma y como se guarda o estructura la información de firma en el documento generado.

La existencia de múltiples formatos de firma se debe a razones históricas, a cómo se ha ido introduciendo la firma en formatos de documentos ya existentes y a cómo se han ido añadiendo funcionalidades a lo largo del tiempo.

Un fichero de firma tiene un formato que viene determinado por estos aspectos:

  • Estructura del fichero: formatos CAdES, XAdES, PAdES, OOXML, ODF…
  • ¿Dónde se guarda el documento original?
  • Firmas con múltiples usuarios.
  • Longevidad de la firma y sello de tiempo

Estructura de la firma: CAdES, XAdES, PAdES, OOXML, ODF…

Una firma electrónica es un fichero que contiene información sobre el documento original, el firmante, la fecha de la firma, algoritmos utilizados y posible caducidad de la firma.

Cómo se estructura esta información (el orden de esa información dentro del fichero, las etiquetas que indican cuando empieza un campo y cuando termina, la opcionalidad de esos campos, etc.) viene determinado por distintos formatos:

  • CAdES (CMS Avanzado).

    Es la evolución del primer formato de firma estandarizado. Es apropiado para firmar ficheros grandes, especialmente si la firma contiene el documento original porque optimiza el espacio de la información. Tras firmar, no podrás ver la información firmada, porque la información se guarda de forma binaria.

  • XAdES (XML Avanzado).

    El resultado es un fichero de texto XML, un formato de texto muy similar al HTML que utiliza etiquetas. Los documentos obtenidos suelen ser más grandes que en el caso de CAdES, por eso no es adecuado cuando el fichero original es muy grande. Aplicaciones como eCoFirma del Ministerio de Industria y Comercio, sólo firman en XAdES.

  • PAdES (PDF Avanzado).

    Este es el formato más adecuado cuando el documento original es un pdf. El destinatario de la firma puede comprobar fácilmente la firma y el documento firmado. Con los formatos anteriores esto no es posible si no se utilizan herramientas externas.

  • OOXML y ODF.

    Son los formatos de firma que utilizan Microsoft Office y Open Office, respectivamente.

Algunas aplicaciones de firma dejan elegir el formato a utilizar (@Firma). Otras imponen siempre el mismo formato (eCoFirma) y otras deciden automáticamente el formato en función del formato original del documento a firmar (@FirmaFácil).

¿Dónde se guarda el documento original?

Según cómo se referencie o dónde se guarde el documento original en el fichero de firma, podemos tener dos casos:

El documento original se incluye en el fichero de firma.

Ventaja: No es necesario guardar siempre el documento original y el documento de firma porque aquél ya está incluido en éste. Es, por tanto, un formato cómodo de almacenar.

Desventaja: Si el tamaño del fichero es elevado, se consume más espacio de almacenamiento, porque al final se acaba teniendo por un lado el documento original, que siempre habrá que guardarlo, y por otro, la firma.

En el caso de CAdES estas firmas se llaman firmas implícitas.

En el caso de firmas XAdES XML, lo habitual es que el documento esté incluido en el fichero de firma. Hablamos de firmas despegadas (detached), envolventes (enveloping) y envueltas (enveloped) según en qué sitio del propio fichero de firma se guarde el documento original.

En la práctica, se suele utilizar el caso 1, que es la forma de funcionar por defecto de las aplicaciones de firma. Se obtienen ficheros de firma más grandes pero, como contrapartida, no requiere almacenar el fichero original como otro documento aparte junto al de firma.

El documento no se incluye en la firma.

En este caso, el documento no se incluye en el resultado de firma o solamente se incluye una referencia al lugar en el que se encuentra para que el documento pueda ser localizado.Por tanto, se obtienen ficheros de tamaño más reducido, pero, por el contrario, el documento original siempre hay que guardarlo junto a la firma.

En el caso de CAdES estas firmas se llaman firmas explícitas.

En el caso de firmas XAdES XML, sólo para las firmas despegadas (detached), el documento puede estar fuera.

Firmas con múltiples usuarios

En el mundo del papel y de la firma manuscrita, un documento puede contener la firma de varias personas:

  • En un caso, las firmas pueden tener el mismo peso o valor legal, por lo que da igual el orden en el que se estampen las firmas en el documento.
  • Otro caso, es el que unas firmas sirven para refrendar o certificar otras firmas anteriores, por lo que el orden en el que se estampan las firmas es importante.

El equivalente a esas firmas en el mundo electrónico son las firmas múltiples. Atendiendo al criterio del número de firmantes podemos tener:

  • Firmas simples. Son las firmas básicas que contienen la firma de un solo firmante.
  • Co-firma o firma en línea. Es la firma múltiple en la que todos los firmantes están al mismo nivel y en la que no importa el orden en el que se firma. La co-firma se utiliza en la firma de documentos que son resultados de reuniones, conferencias o comités.
  • Contra-firma o firma en cascada. Firma múltiple en la que el orden en el que se firma es importante, ya que cada firma debe refrendar o certificar la firma del firmante anterior. La contra-firma se utiliza especialmente en aplicaciones como los Porta Firmas, en los que un documento debe seguir una línea específica a través de varios firmantes hasta que todo el proceso es aprobado.

Las aplicaciones de firma @Firma y eCoFirma permiten ambas los tres tipos de firma. En ellas, el usuario puede elegir el tipo de firma múltiple que desea realizar.

La aplicación FirmaFácil automáticamente selecciona la co-firma cuando se le presenta para firmar un documento firmado previamente.

Firmas Longevas y Sello de Tiempo

Para verificar una firma es necesario:

  • Comprobar la integridad de los datos firmados asegurando que éstos no hayan sufrido ninguna modificación.
  • Comprobar que el estado del certificado con el que se firmó era el correcto, es decir, era vigente en el momento de la operación.

En el caso de la firma electrónica básica, si el certificado está caducado automáticamente se da la firma como no válida.

Entonces, ¿cómo sabemos que el certificado estaba vigente o no en la fecha en la que se firmó? Y ¿qué debe hacerse para que cuando se quiera validar o verificar una firma en el futuro la validación sea posible aunque esté caducado el certificado?

Para dar respuesta a estas preguntas, los formatos AdES (forma genérica de llamar a los formatos CAdES, XAdES y PAdES) contemplan la posibilidad de incorporar a las firmas electrónicas información adicional que garantiza la validez de una firma a largo plazo, una vez vencido el periodo de validez del certificado.

Estos formatos añaden a la firma evidencias de terceros (de autoridades de certificación) y certificaciones de tiempo,que realmente certifican cuál era el estado del certificado en el momento de la firma.

Concretamente, existen distintos formatos de firma que van incrementando la calidad de la misma hasta conseguir una firma que pueda ser verificada a largo plazo (de forma indefinida) con plenas garantías jurídicas:

  • Firma Básica (AdES - BES), es el formato básico para satisfacer los requisitos de la firma electrónica avanzada.
  • AdES ­ T, se añade un sellado de tiempo (T de TimeStamp) con el fin de situar en el tiempo el instante en que se firma un documento.
  • AdES ­ C, añade un conjunto de referencias a los certificados de la cadena de certificación y su estado, como base para una verificación longeva (C de Cadena).
  • AdES ­ X, añade sellos de tiempo a las referencias creadas en el paso anterior (X de eXtendida).
  • AdES ­ XL, añade los certificados y la información de revocación de los mismos, para su validación a largo plazo (XL de eXtendido Largo plazo).
  • AdES ­ A, permite la adición de sellos de tiempo periódicos para garantizar la integridad de la firma archivada o guardada para futuras verificaciones (A de Archivo).

Sello de Tiempo

Como se ha visto en el apartado anterior, el sellado de tiempo es un método para probar que un conjunto de datos existió antes de un momento dado y que ninguno de estos datos ha sido modificado desde entonces.

El Sello de Tiempo es una firma de una Autoridad de Sellado de Tiempo (TSA), que actúa como tercera parte de confianza testificando la existencia de dichos datos electrónicos en una fecha y hora concretos.

El sellado de tiempo proporciona un valor añadido a la utilización de firma digital, ya que la firma por sí sola no proporciona ninguna información acerca del momento de creación de la firma, y en el caso de que el firmante la incluyese, ésta habría sido proporcionada por una de las partes, cuando lo recomendable es que la marca de tiempo sea proporcionada por una tercera parte de confianza.

Resellado

Puesto que el Sello de Tiempo es una firma realizada con el certificado electrónico de la Autoridad de Sellado, cuando ese certificado caduca, el sello y, por tanto, la firma dejan de ser válidas.

Por eso, antes de que el certificado de la TSA caduque es necesario resellar o aplicar de nuevo el Sello Temporal para mantener la validez temporal de la firma.