Verificador de firmas PDF

Inspecciona un PDF en busca de campos de firma, cuenta marcadores de firma y analiza la ventana de integridad ByteRange.

Inspecciona un PDF en busca de campos de firma, cuenta marcadores de firma y analiza la ventana de integridad ByteRange. Inspecciona un PDF en busca de campos de firma, cuenta marcadores de firma y analiza la ventana de integridad ByteRange.

Contexto

Como funcionan las firmas en PDF

Una firma digital en un PDF no es un sello dibujado en la pagina (aunque tambien puede existir una apariencia visual). Es un objeto criptografico: el valor /Contents del diccionario de firma guarda una estructura DER PKCS#7 SignedData. Esa estructura contiene el certificado del firmante, el algoritmo de resumen y una firma calculada sobre un trozo preciso de los bytes del PDF. El array /ByteRange del diccionario de firma describe exactamente que rangos de bytes del archivo cubre la firma: tipicamente [0, a, b, c] significa "bytes 0..a-1 y b..b+c-1". Todo lo que esta dentro se firma; todo lo de fuera -- el propio valor de firma -- no. Este diseno permite firmar un PDF sin conocer su longitud final de antemano.

Por que ByteRange importa para detectar manipulaciones

Para verificar una firma, un comprobador hashea los bytes de los rangos firmados y los compara con el resumen incrustado en la estructura PKCS#7. Si alguien edita el PDF tras firmar, los bytes cubiertos cambian, el hash recalculado diverge y la verificacion falla -- esa es la senal de manipulacion. El /ByteRange define por tanto la ventana de integridad: una firma solo puede proteger los bytes que cubre. Una firma cuyos rangos no cubren todo el documento deja el resto del archivo abierto a modificaciones no detectadas. Este comprobador informa de si el rango existe y de si empieza en el byte 0 y cubre cabeza mas cola -- la forma que produce toda herramienta de firma.

Que comprueba esta herramienta

Analiza el PDF con la biblioteca pdf-lib empaquetada (Apache-2.0) y reporta: el numero de paginas; los campos de firma hallados en el AcroForm; los marcadores /FT /Sig en el flujo de bytes crudo; si existe un array /ByteRange; y si ese rango tiene la forma canonica [0, head, tailStart, tailLen]. Un PDF sin marcadores no tiene firmas en absoluto. Un PDF con marcadores pero sin rango parseable es inusual y merece una mirada atenta. La verificacion criptografica completa -- recalcular hashes y validar la cadena de certificados -- requiere la cadena completa del firmante y un almacen de confianza; esta pagina se centra en el analisis estructural que revela si existen firmas y si la ventana de integridad esta intacta.

Interpretar los resultados

Mas de un marcador de firma suele significar firmas multiples o una actualizacion incremental que re-firmo el documento. Un PDF cifrado puede ocultar diccionarios de firma al parser; se usa el modo ignoreEncryption para que la estructura aun se reporte. Recuerda: esta herramienta comprueba estructura, no identidad. No puede decirte si el firmante es quien dice ser -- eso requiere verificar el certificado contra una raiz de confianza. Usala como triaje de primer paso en documentos recibidos y sigue con la verificacion completa de tu plataforma para lo importante. El analisis corre por completo en tu navegador; tu PDF nunca se sube.

Construido con la biblioteca pdf-lib (Apache-2.0) empaquetada en public/assets. El analisis corre en local; el PDF nunca se sube.

Preguntas frecuentes

Esta herramienta verifica criptograficamente la firma?
Hace analisis estructural: detecta campos de firma, cuenta marcadores /FT /Sig y comprueba la forma de la ventana de integridad ByteRange. La recomputacion completa de hashes y la validacion de la cadena requieren la cadena del firmante y un almacen de confianza, que una pagina de navegador no puede dar offline.
Que significa un informe ByteRange vacio?
Si no se encuentra ningun array /ByteRange pero existen marcadores de firma, el PDF puede usar una disposicion de firma inusual o estar danado. Un PDF sin marcadores ni ByteRange simplemente no tiene firmas.
Que es una actualizacion incremental y por que importa?
Muchas herramientas de PDF anaden cambios al final del archivo en vez de reescribirlo. Cada anexion puede anadir o reemplazar objetos, y una re-firma aparece como un nuevo marcador. Por eso un PDF firmado puede mostrar mas de un marcador.
Puede comprobarse aun un PDF cifrado?
Si, con limites. El comprobador carga con ignoreEncryption para que los diccionarios de firma sigan visibles. El escaneo de bytes crudos de /FT /Sig funciona igualmente porque busca en el flujo de texto plano.
Se sube mi PDF a algun sitio?
No. El PDF se lee con FileReader y se analiza por completo en tu navegador con la biblioteca pdf-lib empaquetada. El PDF de muestra tambien se genera en local. Nada sale de tu dispositivo.
Que es PKCS#7 / CAdES / PAdES?
PKCS#7 es el formato contenedor que guarda los datos de firma (hoy estandarizado como CMS). PAdES es el perfil PDF de ese formato usado por las reglas europeas de firma electronica; anade atributos de validacion a largo plazo para que las firmas sigan verificables durante anos.