← Todas las guías

¿Cómo puedo demostrar que un PDF no ha sido alterado?

Para demostrar que un PDF no ha sido alterado, registre un hash criptográfico del archivo en un momento conocido, vincule ese hash a un sello de tiempo de confianza emitido por un tercero y conserve un registro auditable de todo lo ocurrido con el documento desde entonces. El hash revela cualquier cambio, el sello de tiempo fija el momento y el registro cubre el período intermedio. Ni la conformidad PDF/A ni los metadatos del archivo demuestran nada de esto.

Por qué fallan los métodos evidentes

Hay tres enfoques que se mencionan primero, y los tres son más débiles de lo que parecen.

Los metadatos del archivo. Abrir las propiedades del documento y comparar la fecha de creación con la de modificación parece una comprobación. No lo es. Descargar un archivo puede actualizar su hora de modificación sin que cambie un solo byte, y muchas herramientas de edición dejan intactos los campos de autor y productor. Los metadatos los escribe quien tuvo el archivo en último lugar, que es precisamente la parte cuya conducta se está cuestionando.

La conformidad PDF/A. PDF/A es un formato de archivo. Elimina funciones que podrían hacer que un documento se represente de otro modo en el futuro, como los scripts incrustados y las referencias a fuentes externas. Eso es valioso, y no dice absolutamente nada sobre si el contenido cambió. Un archivo PDF/A puede editarse y volver a guardarse como un PDF/A perfectamente conforme.

Una firma pegada. Una firma escaneada e insertada en un documento es una imagen. No guarda ninguna relación criptográfica con los bytes que la rodean.

Lo que sí funciona

Tres mecanismos, que responden a tres preguntas distintas. Omitir uno deja un hueco.

1. Un hash criptográfico, para detectar el cambio. Una función hash reduce el archivo a una huella de longitud fija. Cambie un solo bit en cualquier punto y la huella cambia por completo. SHA-256 o SHA-384 son hoy las opciones sensatas. El hash demuestra que el archivo que usted tiene ahora es, byte a byte, aquel del que se tomó.

Por sí solo no demuestra nada sobre el cuándo, ni sobre quién lo calculó. Un hash que usted mismo calculó y guardó en su propia base de datos sigue siendo su palabra.

2. Un sello de tiempo de confianza, para fijar el momento. RFC 3161 describe cómo enviar un hash a una autoridad de sellado de tiempo y recibir un token firmado que contiene ese hash y la hora. Solo viaja el hash, de modo que el documento nunca sale de sus sistemas.

Esta es la parte que convierte su afirmación en prueba de un tercero, porque la atestación la firma alguien sin interés alguno en su documento.

3. Una cadena de custodia, para cubrir el intervalo. El hash y el sello de tiempo demuestran el estado del archivo en un momento. Un auditor pregunta por el período entre ese momento y hoy. La cadena de custodia lo responde: cada acción sobre el documento, quién la realizó, cuándo y desde dónde, escrita solo por adición para que ninguna entrada desaparezca en silencio.

Al encadenar cada entrada al hash de la anterior, una eliminación intermedia rompe la cadena. Eso es lo que hace demostrable la ausencia de manipulación, en lugar de meramente afirmada.

Qué conservar en la práctica

Conserve juntos el documento, el hash, el token de sello de tiempo y la cadena de custodia, en un formato que aún pueda abrir dentro de diez años. En la práctica eso significa PDF/A-3 para el documento, porque ese formato admite adjuntos y puede llevar la prueba junto al archivo.

Conserve también el material de verificación. Un token de sello de tiempo se verifica contra la cadena de certificados de la autoridad, y los certificados caducan. Si quiere verificar en 2035 lo que selló en 2026, debe conservar la cadena y el estado de revocación tal como estaban entonces. Ese material está disponible hoy y no lo estará después.

Dónde encaja SealDoc

SealDoc automatiza los tres mecanismos. Cada documento procesado se convierte en un archivo PDF/A-3B validado según ISO 19005-3, con sello de tiempo RFC 3161 por defecto, una cadena de hashes SHA-384 y un registro de cadena de custodia. Se exporta como un paquete de prueba por documento, a petición: el documento, la pista de auditoría y un manifiesto que sella tanto los archivos individuales como el conjunto.

Última revisión: