Sellado de Tiempo
El sellado de tiempo (Timestamping) es un mecanismo que permite demostrar que una serie de datos han existido y no han sido alterados desde un instante específico en el tiempo.
El uso de un sistema de sellado de tiempo aparece como indispensable para mantener la validez de los documentos a lo largo de los años.
Contar con un servicio de sellado de tiempo resulta de vital importancia cuando se implementan mecanismos de seguridad y auditoría. El tiempo en que ocurren los eventos es un dato
crítico para evaluar si la información es confiable, para correlacionar eventos de seguridad, o para conocer el momento exacto en que se llevó a cabo una acción específica en un sistema, entre otros.
Características del sellado de tiempo
El servicio de Time Stamping se sustenta en los mecanismos de firma digital y generalmente es un servicio adicional que prestan las autoridades de certificación. A grandes rasgos, existe una tercera parte de confianza, que es aceptada tanto por el emisor como por el receptor, que es la que da fe de la fecha y hora de una transacción. Es decir, añade el dato “tiempo” a la transacción o al documento, por el cual las partes aceptan la validez temporal que se asocia a ese dato determinado.
Entidades intervinientes:
La normativa existente [RFC 3161][ISO 18014][X.995] relacionada con el sellado digital de tiempo, distingue las siguientes entidades principales:
Solicitante: Es la entidad que posee documentos, información o, en general, cualquier tipo de datos electrónicos a los que quiere incluir un sello de tiempo que garantice que fueron creados previo a la solicitud del sello.
Verificador: Es la entidad que quiere comprobar que los datos sellados que ha recibido contienen un sello de tiempo válido. Incluso podría ser la misma entidad que utilizó el servicio de sellado de tiempo, para comprobar que el sello generado es válido y correcto.
Autoridad de sellado de tiempo: La autoridad de sellado de tiempo, TSA (Time Stamping Authority, por sus siglas en inglés) es el proveedor del servicio. Su finalidad es la de comprobar la existencia de los datos a sellar y generar el sello de tiempo que irá unido a esos datos. De esta forma, la TSA asegura que esos datos existían en un determinado instante de tiempo y garantiza que el parámetro de tiempo de ese sello es correcto.
Fases de sellado de tiempo
En el sellado de tiempo se diferencian dos procedimientos principales:
Creación del sello de tiempo: En primer término, el solicitante genera un hash (función o método para generar claves que representen de manera unívoca a un dato) de la información que quiere sellar. Este hash es enviado a la autoridad de sellado de tiempo, la cual anexa el sello de tiempo tiempo al hash y vuelve a calcular el resumen considerando ahora el nuevo dato generado. Este hash es firmado digitalmente con la clave privada de la TSA. Por último el hash firmado junto con el sello de tiempo son enviados al solicitante del sellado de tiempo.
Verificación de sello de tiempo: Cualquier entidad que confíe en el emisor del sello de tiempo puede verificar que el documento no fue creado después de la fecha que indica el sello. Para probar esto, se calcula el hash de la información original, se concatena a este hash el sello de tiempo recibido y se vuelve a calcular una nueva función de hash.
En este punto, resta validar la firma digital de la TSA. Se debe verificar que el hash recibido fue firmado con la clave privada. Para ello, se aplica la clave pública de la TSA a dicho dato, y se comparan ambos hash. Esta comprobación permite probar que el sello de tiempo y el mensaje no fueron alterados y que efectivamente fue emitido por la autoridad de sellado .
Estructura del Sellao de Tiempo
Los elementos básicos de un sello de tiempo son:
Datos sobre la Identidad de la Autoridad Emisora (Identidad Jurídica, Clave Pública a utilizar en la verificación del sello, Número de bit de la clave, y el algoritmo de firma digital + función hash utilizados.).
- Tipo de solicitud cursada (si es un Valor Hash o un Documento, cuál es su valor y Datos de referencia.)
- Parámetros del Secuenciador (valores hash Anterior, Actual y Siguiente)
- Fecha y Hora UTC.
- Firma Digital de todo lo anterior con la clave pública y esquema de firma digital especificados al principio.
Nuestro prototipo admite dos tipos distintos de solicitudes: aquellas en las que el solicitante envía un documento y solicita que aparezca íntegro en el cuerpo del sello, y otra, más anónima, en la que lo que envía es un presunto valor hash de algún objeto digital que el solicitante probablemente posee.
En ambos casos, la longitud máxima de la solicitud de sello no debe superar los 1024 bytes de longitud, por lo que la primera modalidad sólo sirve para textos relativamente cortos. Sin embargo, puede resultar útil para el usuario ya que deja a su criterio qué es lo que quiere matasellar temporalmente; por ejemplo, el texto a sellar podría ser:
«Sofía Mazagatos entrega sus respuestas firmadas al examen de la asignatura S.P.I., con valor MD5 = 29a2fa33dca39b6d9a2bc0748a335f33, como parte del examen de esa asignatura a los profesores encargados del examen»
y entrega copias del sello obtenido a los profesores, además de publicarlo en los «ciber-tablones» de la Facultad. Con ello, este sello servirá para probar posteriormente que las respuestas del examen fueron las que fueron, y nadie podrá cambiarlas ni siquiera con la colaboración de Sofía.
A continuación podemos ver cual es la respuesta, en formato humanamente legible, que se obtiene del servidor TicTac para otro tipo de texto:
Certificado:
version: 0
Identidad del firmante:
Servicio Digital de Tiempo
Facultad de Informatica – UPM
Madrid – Spain
http:\\tictac.fi.upm.es
Identidad de la Clave: f208f543a56a7f1f6585d57dd90fb5a3
Numero Bits Clave: 1024
Algoritmo de Firma: md5WithRSAEncryption
Algoritmo Hash: md5
Datos Solicitud:
Tipo: Documento
Documento:
El servicio de Sellado Digital de Tiempos es una iniciativa del
Laboratorio de Criptologia de la Facultad de Informatica de la
Universidad Politecnica de Madrid
Referencia:
Presentacion Jornadas Tecnicas
de RedIris 1998
Datos Encadenamiento:
Hash Anterior: 00000000000000000000000000000000
Hash Actual: b04fa5d98dd622db74fdfc86aac6349d
Hash Siguiente: 29a2fa33dca39b6d9a2bc0748a335f33
Fecha: 1998/299 (1998/10/26)
Hora: 18:08:42,137329
c2:25:07:05:51:cc:bf:9f:83:92:67:7c:2d:13:50:34:d5:bf
5a:52:f0:61:0c:e0:9f:93:4a:a1:76:06:1c:f2:1a:35:0e:e8
8c:0d:5a:d3:4e:8e:40:92:c9:d8:95:35:83:35:26:de:56:7b
94:1c:d6:e4:85:65:68:80:d7:5a:5a:6f:7f:b3:97:0e:7c:8a
bb:d5:ad:a9:67:66:7c:a8:5f:c8:01:9b:df:92:0e:01:4c:93
2d:04:94:0e:ea:dc:f9:e1:44:af:91:52:b4:6f:52:e4:df:63>
ce:cf:a9:f5:0c:75:16:72:97:9d:f2:f6:98:85:a8:88:4d:60
d4:22
Tal y como versa este sello, la afirmación a la que se refiere, fue recibida por el servidor TicTac el 26 de Octubre de 1998 a las 18 horas, 8 minutos y 42, 137329 segundos del Tiempo Universal.