Cómo: PDF con PADE firmas digitales con ETSI.Cades.Detached

Descubra cómo funcionan las firmas digitales en archivos PDF, incluidos los estándares PKCS7 y ETSI.CADES.Detached. Aprenda a agregar y verificar firmas, con recursos para la implementación y herramientas de código abierto.

6 Jan
,
2021
24 Jun
,
2025
# min read
Proceso de firma digital con la interfaz de plataforma eID Easy en la pantalla de un ordenador

En este artículo se explica cómo funcionan las firmas digitales en PDF y cómo firmar digitalmente un documento PDF cuando la firma se crea en una aplicación, dispositivo o servicio remotos. Al final, encontrarás referencias que te ayudarán a implementar firmas digitales PDF externas.

Estándares de firma de PDF

Hay dos tipos principales de firmas digitales en los archivos PDF:

  • PKCS7 (también conocido como adbe.pkcs7.separado)
  • ETSI.CADES.Separado, que cumple con las especificaciones eIDAS

La diferencia clave es que ETSI.CADES.Separado es más estricto: garantiza que la firma cubra todo el PDF, excepto los bytes de firma inmediatos. FOTOS #7, por otro lado, es más flexible y permite realizar más cambios después de la firma sin invalidación.

Varias firmas en un solo PDF

Soporte de archivos PDF firmas digitales múltiples, añadido en serie. Una vez que se haya creado la primera firma digital, cualquier otra edición del PDF se almacenará como actualizaciones incrementales, creando un nuevo revisión del archivo con cada nueva firma adjunta al final.

Modificación del PDF después de firmarlo

Por lo general, no puedes modificar el contenido o la apariencia del PDF después de la primera firma. Sin embargo, firmas visuales (como sellos o superposiciones de nombres) aún se pueden agregar a las firmas digitales posteriores. Si bien las firmas visuales ayudan a tranquilizar a los usuarios, la validez real de la firma permanece en criptografía invisible.

Cómo se añaden las firmas digitales

Hay dos pasos principales para firmar un PDF:

  1. Crear un diccionario de firmas y reservar un ByteRange con todos los bytes de firma establecidos inicialmente en cero.
  2. Generar el valor de la firma externamente e inyéctelo en el PDF escribiendo la cadena hexadecimal en el ByteRange reservado.

Este es un ejemplo del aspecto que puede tener una firma en un PDF cuando se ve en un editor de texto:

<</Escriba /Sig
/Filtro /Adobe.ppkLite
/Subfiltro /etsi.cades.Detached
/Nombre (Mi nombre)
/Información de contacto (info@eideasy.com)
/Ubicación (En mi escritorio)
/Reason (aplicación de prueba con sesión iniciada)
/M (D:20210105184421+00'00')
/Contenidos <30822C....CFE000....000000>
/Rango de bytes [0 391 41881 794]
>>

El de Terange significa:

  • Tome los bytes 0—3991
  • Omitir la sección de firmas
  • Luego tome los bytes 41881— (41881+794)

Durante la verificación de la firma, la sección omitida <30822C....CFE000....000000> se elimina y el hash se calcula en las partes restantes para verificar la firma.

Por qué ByteRange debe ser lo suficientemente grande

Dado que no sabes de antemano la longitud exacta de la firma (debido a los tipos de firma variables, como RSA o Curva elíptica, esta última también depende de curvas específicas como secp384r1 o prime 256 v1), tienes que reservar un búfer en ByteRange. La presencia de marcas de tiempo aumenta aún más el tamaño de la firma, por lo que la sección reservada termina con un bloque de ceros.

La implementación requiere bibliotecas de PDF

A pesar de parecer simple, la creación de firmas PDF externas válidas requiere manipulación compleja de PDF, a menudo con bibliotecas especializadas. eID Easy ha creado un aplicación de código abierto y microservicio Docker que ofrece una API REST para su integración en PHP, Java, NodeJS, Go, Python, y otros idiomas.

Recursos para empezar

Si necesitas ayuda con firmas digitales calificadas usando Tarjetas de identificación electrónica, identificación móvil, identificación inteligente, ZealiD, o herramientas similares, explore el conjunto de API eID Easy aquí:
https://documenter.getpostman.com/view/3869493/Szf6WoG1

Si quieres asegurarte de que tus firmas en PDF sigan siendo válidas durante mucho tiempo, incluso después de que los certificados caduquen o los respondedores se desconecten, consulta nuestra guía sobre la implementación PAdES LTV (validación a largo plazo).

Firmas digitales en archivos PDF

More latest articles

See all news
See all news