Validación de firmas en Tractis (2): Validación de firmas

Introducción

En el primer post de esta serie dedicada a la “Validación de firmas en Tractis”, comentamos que el proceso de validar una firma es bastante complejo porque requiere la validación de numerosos elementos. Nos concentramos en explicar el más importante de ellos (pero no el único): la “validación del certificado con el que se realiza la firma”.

Explicamos:

  1. Por qué debe validarse el certificado en el momento de la firma (si no validas el certificado utilizado para firmar, no te enterarás de si ha sido revocado, robado o falsificado).
  2. Los principales fases para validar un certificado correctamente (1. construcción del path del certificado y 2. validación del path).
  3. Los principales recursos que describen cuales son las comprobaciones y como deben realizarse (RFC3280).

Ahora que hemos descrito con cierto grado de detalle las operaciones a realizar para poder validar un certificado, en este segundo post, iremos un paso más allá. Describiremos en qué consiste “validar una firma”, los desafíos que supone y como una “Autoridad de Validación Semántica” responde a estos desafíos.

Validación de Firmas: La importancia del Sello de Tiempo

Para poder validar una firma electrónica necesitamos la firma en si, el documento firmado (en caso de que éste no este contenido como parte de ésta) y el momento del tiempo en el cual fue realizada la firma.

A vista de pájaro, una validación básica de firma require:

  1. Validación criptográfica: validar la no alteración del contenido mediante algoritmos criptográficos de verificación de firma digital,
  2. Validación de certificado: verificar el estado del certificado del firmante en el momento de la firma, y
  3. Determinación del tiempo de la firma: conocer con el mayor grado de exactitud y certeza el tiempo en el cual fue realizada la firma.

No vamos a hablar del primer punto de validación criptográfica ya que intervienen algoritmos complejos que no aportan demasiado a un discurso de alto nivel como el que nos ocupa. Solo indicar que se persigue garantizar que el contenido no ha sido alterado. Asimismo, el proceso de validación de certificados ya lo describimos con un detalle razonable en el post anterior.

Vamos a centrarnos en el proceso de determinación del tiempo de firma, algo que puede llevarse a cabo de diferentes maneras pero en el que todas esas maneras tienen algo en común: alguien debe decirnos cuando ocurrió la firma. En nuestro caso, el tiempo de firma viene acotado por un “sello de tiempo” sobre la firma.

El sello de tiempo no es más que una firma (otra más) que protege el contenido sobre el que se aplica (en nuestro caso, la firma del contrato) y que además contiene un instante de tiempo. La conjunción de ambas cosas nos permite conocer de manera fidedigna cuando fué realizada la firma. Tractis realiza una validación de la firma justo después de firmar y añade un sello de tiempo para preservar ese instante.

Aunque quizás pueda parecer que no aporta demasiado al proceso de validación, esta coordenada temporal es clave. Nos permite averiguar si el certificado utilizado para firmar era válido en el momento de realización de la firma, independientemente del estado actual del certificado. En otras palabras, aunque nuestro certificado haya caducado o sido revocado hoy, las firmas realizadas con él hasta hoy (en que cambia de estado), deben ser consideradas válidas.

Dado que el sello de tiempo es una firma en sí misma, también debe ser validado aplicando los mismos criterios que aplicamos a cualquier otra firma.

En Infraestructura de Clave Pública (PKI), el ente encargado de realizar todas estas comprobaciones se denomina “Autoridad de Validación”. Todas las comprobaciones que hemos mencionado (validaciones criptográficas, de certificado y de sellos de tiempo) dan una idea de la complejidad de su tarea.

Desafíos: ¿Esta firma es válida?

Uno podría pensar que la pregunta de si una firma es válida o no se responde siempre con una afirmación absoluta. Decidir si la firma ha sido criptográficamente alterada se hace con un cálculo matemático que solo tiene dos posibles resultados: el contenido ha sido alterado o no ha sido alterado. ¿No es cierto?. Pues no, no es tan sencillo.

La respuesta sobre si una firma es válida o no puede variar según quien realice la comprobación.

Esto puede sonar chocante y sin sentido… ¿como puede una firma ser válida para mi pero invalida para el vecino si es la misma cosa y seguimos los mismos criterios y algoritmos de validación?. Pues puede y, de hecho, tiene todo el sentido ya que no todo el mundo tiene el mismo concepto de lo que es válido o no lo es.

Veamos un ejemplo: Imaginad que tenemos una misma Autoridad de Validación que da servicios a varias instituciones. En este escenario cualquier conjunto de firmas será válido o invalido para todos los usuarios. Imaginad ahora que uno de los clientes que consume los servicios de esa Autoridad de Validación solamente quiere aceptar una serie de certificados concretos (p.ej: solo certificados de Autoridades de Certificación alemanas) o solo una série de algoritmos (p.ej: claves más fuertes que supongan mayores garantías de integridad). Más aún, sigamos imaginando ahora que uno de los clientes de esa Autoridad de Validación requiere de certificados y algoritmos diferentes en función del proceso de contratación o la cuantía involucrada. Tiene sentido: un acuerdo por la compra de un CD no requiere las mismas garantías que un acuerdo por la compra de una empresa.

Aunque la Autoridad de Validación diga que la firma es válida desde el punto de vista técnico, no lo es desde el punto de vista del conjunto de reglas que el cliente ha definido. Estamos pasando de la “simple” firma de un mensaje criptográfico a “algo más” donde la validez depende de la naturaleza del contenido firmado.

Estamos añadiendo “semántica” a la validación.

Bienvenidos a Tractis: Validación Semántica de Firmas

Cuando decimos que una Autoridad de Validación es semántica, queremos decir que permite a sus usuarios crear diferentes tipos de reglas de validación para validar distintos tipos de documentos firmados, independientemente de la configuración por defecto de la que disponga el servicio en si.

Normalmente la validación suele darse mediante unos mecanismos técnicos estándares que suelen dar un resultado concreto para una solicitud de validación determinada. Es decir, muchas Autoridades de Validación actuales no pueden observar casos particulares dependiendo de quien solicite la validación.

Tractis da respuesta a los desafíos mencionados a través de nuestra “Autoridad de Validación Semántica” o “SVA”, uno de los componentes de la infraestructura back-end de Tractis. La SVA de Tractis se encarga tanto la validación técnica como de la validación semántica de cada firma. El que Tractis soporte certificados de diferentes Autoridades de Certificación de diversos paises no significa que nuestros clientes deban aceptarlas todas como válidas. Nosotros realizamos recomendaciones sobre los distintos grados de seguridad y garantía de cada método de firma pero nuestros usuarios conservan la libertad (y el poder) para decidir que consideran válido y que no para cada tipo de contrato.

Actualmente, el componente semántico de la Autoridad de Validación de Tractis está solo disponible para grandes cuentas pero, siguiendo la filosofía de Tractis de “todos disfrutan del mismo nivel de seguridad y funcionalidad”, pronto lo pondremos a disposición de todos los usuarios, particulares y pymes.

Como podeis imaginar, añadir semántica a la validación incorpora un nivel de complejidad (y utilidad) sin precedentes. Gestionar dicho servicio y garantizar su correcto funcionamiento se convierte en el auténtico desafío. Como lo conseguimos en Tractis es el tema del próximo, y último, post de esta serie.

Próximo post: Validación de firmas en Tractis (3): Validación a prueba de fallos.

Por David García
Guardado en: Firma digital, Tecnología, Tractis | 2 comentarios » | 30 de Abril de 2008

2 Comentarios en “Validación de firmas en Tractis (2): Validación de firmas”

[...] Validación de firmas en Tractis (2): Validación de firmas. [...]

[...] Próximo post: Validación de firmas en Tractis (2): Validación de firmas [...]

Más entradas en Negonation Blog