Tiempo de confianza: cómo una marca de tiempo prueba el cuándo
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
De un vistazo
Sección titulada «De un vistazo»Una marca de tiempo responde a una sola pregunta, sorprendentemente escurridiza: ¿existían ya estos datos? No quién los hizo, no si son correctos: solo que, en cierto instante nombrado, estos bytes exactos ya estaban en el mundo. Esta página construye la idea desde la base: qué hace una Autoridad de Sellado de Tiempo, qué contiene en realidad un token y por qué un número en un reloj se convierte en evidencia.
Es el complemento desde primeros principios de la página centrada en el motor, Marcas de tiempo y tiempo de confianza. Lee esta primero si «tiempo de confianza» te suena a jerga.
Por qué importa
Sección titulada «Por qué importa»El reloj de tu ordenador es una confesión, no una prueba. Puedes ajustarlo al valor que quieras, y cualquier otra persona también. En el momento en que una fecha importa para una segunda parte —un contrato que debía firmarse antes de un plazo, un registro que debía existir antes de una disputa— tu propio reloj no vale nada como evidencia, porque tú lo controlas. Todo el problema del tiempo de confianza consiste en encontrar un reloj que no puedas mover.
No es una preocupación de nicho. Todo PDF firmado de larga vida se apoya en ello. Un certificado de firma acaba caducando; años después, un verificador necesita saber que la firma se hizo mientras el certificado todavía era válido. Sin un registro independiente del «cuándo», esa pregunta no tiene respuesta honesta. El tiempo de confianza es el cimiento silencioso sobre el que descansa todo el edificio de las firmas duraderas.
La versión breve
Sección titulada «La versión breve»- Una marca de tiempo prueba que un dato existía antes de un instante declarado. Eso es una cota superior de la antigüedad, nada más.
- La produce un tercero, la Autoridad de Sellado de Tiempo (TSA), en cuyo reloj confías precisamente porque no es el tuyo.
- La TSA nunca ve tus datos. Firma un hash de ellos, ligado a un valor temporal, y devuelve un pequeño token firmado.
- El token prueba tres cosas a la vez: que los datos son los datos (el hash coincide), que el tiempo es el tiempo de la TSA (su firma) y que la respuesta corresponde a la petición que enviaste (el nonce que devuelve, protegiendo contra una respuesta antigua reproducida).
- No prueba quién escribió los datos, que los datos sean verdaderos ni el momento exacto de creación. Solo: no más tarde de este.
- La confianza fluye hacia la TSA. Una TSA de confianza pública basta para la mayoría de los registros; una TSA cualificada según eIDAS lleva una presunción jurídica en la UE.
Cómo lo aborda NextPDF
Sección titulada «Cómo lo aborda NextPDF»Empieza por el truco que está en el centro de todo. Quieres que un desconocido avale cuándo existían tus datos, pero no puedes mostrarle los datos: pueden ser confidenciales y, en cualquier caso, podrían ser enormes. Así que no lo haces. Calculas un hash: una huella corta y de longitud fija que cambia por completo si cambia siquiera un byte del original, y de la que el original no puede recuperarse. Envías la huella, no el archivo.
La TSA toma esa huella, le adjunta su propia hora actual, firma el par con su clave privada y devuelve un token de marca de tiempo (Spec: RFC 3161, §2.1RFC 3161 §2.1). El token es el vínculo hecho permanente: esta huella, en este momento, avalada por mí. Como el token está firmado, nadie —ni siquiera la TSA después— puede alterar el tiempo sin romper la firma. Como lleva tu huella, es inútil para cualquier otro archivo. Y como la petición incluye un nonce aleatorio y fresco que la TSA devuelve sin cambios, puedes saber que la respuesta corresponde a esta petición en particular y no es la reproducción de una respuesta anterior: el nonce atestigua frescura, no quién preguntó (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Piensa en un sello de lacre estampado sobre una carta plegada. El sello no lee la carta; solo prueba que la carta estaba entera y presente cuando se estampó el sello. Una marca de tiempo es un sello estampado por un reloj que no posees, sobre una huella de tus datos.
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
En un PDF, este mismo mecanismo cumple dos funciones. Una marca de tiempo de firma sella cuándo se aplicó una firma, marcando con tiempo el valor de la firma. Una marca de tiempo de documento sella cuándo existió el archivo entero, calculando el hash de todo el PDF (excluyendo el marcador de posición que el token ocupará) y almacenando el token devuelto de vuelta en ese marcador de posición (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). El segundo tipo es el que una firma de archivado de larga vida renueva a lo largo de los años para mantener fresca su confianza.
Un detalle moderno que conviene conocer: un formato de marca de tiempo más antiguo se ataba a un único algoritmo de hash para nombrar el propio certificado de la TSA. El perfil actualizado permite que un token nombre su certificado con un resumen vigente en su lugar (Spec: RFC 5816, §2.1RFC 5816 §2.1), de modo que el tiempo de confianza no hereda en silencio la criptografía de ayer.
Ejemplo práctico
Sección titulada «Ejemplo práctico»No ensamblas un token a mano, y no deberías querer hacerlo. Lo que merece entenderse es la costura de confianza: qué reloj eliges creer. En NextPDF, pedir un nivel de firma que necesita tiempo de confianza hace explícita esa elección en vez de implícita.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.El sentido del ejemplo no es la API. Es que «¿tengo tiempo de confianza?» es un hecho de sí o no sobre tu documento, decidido por si una TSA estuvo en el bucle, y el motor se niega a dejar que ese hecho sea ambiguo.
Idea equivocada habitual
Sección titulada «Idea equivocada habitual»La trampa es leer una marca de tiempo como «esto se creó a las 14:32». No dice tal cosa. Dice «esto existía no más tarde de las 14:32». La diferencia es todo el asunto. Una marca de tiempo es una cota superior, nunca una cota inferior y nunca un momento exacto. Tus datos podrían haber existido durante años antes de que te decidieras a marcarlos con tiempo; el token guarda silencio sobre eso. Traza una sola línea y dice: no después de aquí.
Una segunda idea equivocada, más costosa: que una marca de tiempo prueba que tu documento es genuino o correcto. No hace ninguna de las dos cosas. Es indiferente al significado. Una mentira marcada con tiempo a la perfección sigue siendo una mentira, ahora demostrablemente antigua. La autenticidad proviene de la firma que dice quién; la verdad proviene del mundo. La marca de tiempo solo habla siempre del cuándo.
Límites y fronteras
Sección titulada «Límites y fronteras»El alcance de una marca de tiempo se detiene exactamente donde lo hace su modelo de confianza. Prueba una cota superior de la antigüedad, y solo eso, y solo si confías en la autoridad que la selló.
Hay dos niveles de autoridad que conviene distinguir. Una TSA de confianza pública encadena hasta un certificado que tu software ya acepta; sus tokens son ampliamente verificables y sirven para la mayoría de los registros. Una TSA cualificada según eIDAS es un prestador supervisado en una lista de confianza de la UE, y una marca de tiempo electrónica cualificada lleva una presunción jurídica de la exactitud de su fecha y de la integridad de los datos, una presunción que una marca de tiempo ordinaria no tiene (Spec: eIDAS, Art. 41eIDAS Art. 41). Elegir entre ambas es una pregunta sobre el peso probatorio que necesitas, no sobre cómo funcionan los bytes; la criptografía es la misma.
Una marca de tiempo también hereda la vida útil de sus propios anclajes de confianza. El certificado de la TSA puede caducar o ser revocado, y el algoritmo de hash que usó puede quedar obsoleto. Por eso precisamente los documentos de larga vida no marcan con tiempo una sola vez y se marchan: renuevan, superponiendo una marca de tiempo de documento fresca sobre la evidencia antigua antes de que la evidencia antigua se debilite. Ese bucle de renovación es un tema propio; consulta Validación de largo plazo.
| Edition | Availability |
|---|---|
| Core | Soporta PAdES B-B y B-T. B-B es la firma de base sin marca de tiempo; B-T solicita e incrusta una marca de tiempo de firma RFC 3161 verificada frente a una TSA suministrada por el despliegue, cuyo reloj eliges. |
| Pro | Añade los datos de validación de largo plazo incrustados (certificados, OCSP, CRL) que B-LT necesita para mantener una firma verificable después de que sus certificados caduquen. |
| Enterprise | Añade el bucle de renovación B-LTA, sellando los datos de validación bajo una marca de tiempo de documento fresca y re-sellándolos antes de que la protección se debilite. |
Documentos relacionados
Sección titulada «Documentos relacionados»- Marcas de tiempo y tiempo de confianza — el mismo mecanismo a nivel del motor y de PAdES, con las reglas de verificación detalladas.
- Validación de largo plazo — cómo renovar las marcas de tiempo de documento mantiene una firma verificable durante años.
- Cómo una firma prueba quién firmó — la mitad del «quién» de la historia que esta página deja a un lado.
- Firmas cualificadas explicadas — qué significa «cualificada» y por qué una TSA cualificada lleva peso jurídico.
Glosario
Sección titulada «Glosario»- Autoridad de Sellado de Tiempo (TSA) — un servicio independiente que emite tokens de marca de tiempo firmados. Confías en su reloj precisamente porque no es el tuyo.
- Token de marca de tiempo — el pequeño objeto firmado que devuelve una TSA, ligando un hash de tus datos a un valor temporal (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Hash (huella del mensaje) — una huella corta y unidireccional de los datos. La TSA firma esto, nunca los datos en sí, de modo que tu contenido permanece privado.
- Nonce — un número aleatorio fresco enviado con la petición y devuelto sin cambios en la respuesta, mostrando que el token corresponde a esa petición específica y no es la reproducción de una respuesta antigua (atestigua frescura, no la identidad de quien pregunta).
- Cota superior — lo que una marca de tiempo establece: los datos existían no más tarde de el instante declarado. Nunca un momento de creación exacto.
- Marca de tiempo cualificada según eIDAS — una marca de tiempo de un prestador supervisado de la UE que lleva una presunción jurídica de exactitud de la fecha y de integridad de los datos.
- Marca de tiempo de documento — una marca de tiempo sobre un archivo PDF entero, usada para anclar y renovar la evidencia de validación de largo plazo (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).