¿Una forma estándar de agregar manualmente una firma digital a un archivo pdf?

15

He creado algunos certificados para usar, pero me siento perplejo cuando se trata de crear un certificado que contiene una firma digital. En primer lugar, ¿cómo puedo hacer para crear un certificado estándar que ya no contiene solo campos comunes, sino también aquellos que contienen una firma digital? Y segundo, ¿cómo podría agregar manualmente este certificado como datos al archivo pdf correspondiente?

¡Gracias!

    
pregunta roman canada 30.04.2013 - 22:12
fuente

5 respuestas

22

De acuerdo con sus comentarios a otras respuestas, realmente desea

  

firme un archivo pdf con [su] certificado, luego guarde esta firma y adjúntela al pdf que acaba de firmar.

(Por cierto, firma con la clave privada asociada con la clave pública en su certificado, no con el certificado en sí, pero eso es un detalle).

Supongo que desea "adjuntar" la firma al PDF de manera que un visor de PDF conforme a la norma (por ejemplo, Adobe Reader) reconozca, muestre y valide como una firma PDF integrada.

En ese caso, ya comenzó mal al firmar el PDF original tal como está y espera que ahora solo tenga que adjuntar de alguna manera esa firma al archivo. En su lugar, debe crear una nueva revisión del documento PDF que incluya un campo de firma AcroForm en PDF cuyo valor sea un diccionario de firmas cuya entrada / Contenidos contenga la firma de toda la nueva revisión con la excepción de < strong> / Contents contenidos de entrada.

SisedebenintegrarvariasfirmasenunPDF,estosehacepormediodeactualizacionesincrementalesdePDF(¡explícitamentenoagregandomúltiplesestructurasSignerInfoaunsolocontenedordefirmasintegradodelCMS!):

Esto se explica de manera bastante gráfica y con más detalle en el documento de Adobe Firmas digitales en un PDF . Además, se especifica en la especificación PDF ISO 32000-1: 2008 disponible en aquí por Adobe en la sección 12.8 Firmas digitales

¡Ten cuidado, sin embargo! La especificación dice:

  

Un resumen de rango de bytes se computará sobre un rango de bytes en el archivo, que se indicará mediante la entrada ByteRange en el diccionario de firmas. Este rango debe ser el archivo completo, incluido el diccionario de firmas, pero excluyendo el valor de la firma en sí (la entrada Contenido). Se pueden usar otros rangos, pero como no verifican todos los cambios en el documento, no se recomienda su uso.

Esto parece permitir que primero cree una firma para el PDF original y luego agregue una nueva revisión que contenga esa firma que indica que el rango de bytes firmados solo contiene esa revisión original, no la revisión extendida sin solo la firma.

Sin embargo, en realidad, los visores de PDF (especialmente Adobe Reader) solo aceptarán firmas que sigan la recomendación de que el rango firmado debe ser el archivo completo, incluido el diccionario de firmas, pero excluyendo el valor de la firma.

Especificaciones más recientes, por ejemplo, la especificación ETSI PAdES ETSI TS 102 778 (consulte sección 5.1 artículo b en la parte 2 y sección 4.2 en la parte 3 ) haga esta recomendación oficialmente un requisito, y también lo hará ISO 32000-2.

Dependiendo de su contexto de programación, hay muchas bibliotecas de PDF que admiten la creación de firmas de PDF integradas y también muchos productos que utilizan estas bibliotecas. Algunos de ellos incluso están disponibles para asignaturas gratuitas, p. Ej. a la AGPL.

    
respondido por el mkl 01.05.2013 - 01:42
fuente
1

A medida que el certificado está registrado para usted y los campos se completan con sus datos, el certificado es su firma digital. No agrega una firma digital al certificado.

Necesita un certificado para ser emitido por una CA (que podría crear). Luego, agregue el certificado a sus certificados de confianza (si es autofirmado o no de una CA reconocida estándar). Cuando crea archivos PDF, tiene la opción de firmar el archivo con ese certificado. Esa firma de certificado es su firma digital ...

Hay un HowTo decente aquí que es de 2009 pero sigue siendo válido: enlace

    
respondido por el AndyMac 30.04.2013 - 22:23
fuente
1

Un certificado siempre contiene una firma, pero en sí misma, no en algún documento PDF. Esta firma es parte integral del certificado y ha sido computada por la CA que emitió el certificado; Esto es al verificar esta firma que cualquier software puede ganar algo de confianza en el contenido del certificado. Todo esto sucede independientemente de cualquier archivo PDF, y posiblemente años antes de que exista el archivo PDF.

Cuando firma un documento "con un certificado", en realidad está calculando una firma sobre el PDF con su clave privada : la clave privada no está en su certificado, pero el certificado contiene la clave pública correspondiente. Luego, la firma y una copia de su certificado deben incluirse en el archivo PDF.

documentos de Adobe para que las firmas puedan computarse con sus productos Reader y Acrobat. Se puede aparentemente también con software gratuito .

    
respondido por el Tom Leek 30.04.2013 - 22:31
fuente
1

Tu pregunta es realmente dos preguntas diferentes. Un certificado solo debe estar firmado por otro certificado si es necesario que haya una cadena de confianza. Por ejemplo, una CA raíz firmará los certificados que emiten para que cualquier persona que intente verificar el certificado sepa que la CA confía en él. Puede hacer este tipo de encadenamiento con cualquier certificado que permita la firma de certificados.

Por otro lado, para los documentos, solo necesita un certificado que esté aprobado para la autenticación del cliente. Si está ejecutando su propia CA, su certificado probablemente se apruebe para cualquier propósito, pero alguien que no sea usted confiará en su confianza. Para firmar un PDF, simplemente necesita importar el certificado a Acrobat y luego usar la identidad para firmar el documento.

    
respondido por el AJ Henderson 30.04.2013 - 22:32
fuente
1

Si desea firmar un PDF, la mayoría de los redactores de PDF y algunas versiones de solo para el lector tendrán un mecanismo incorporado para la firma, y algunos incluso para el sello de fecha y hora. Le pedirá que proporcione su archivo de certificado y luego aplicará la firma digital en el archivo. Los archivos PDF en particular tienen este mecanismo incorporado en el formato, pero también es posible firmar cualquier tipo de archivo. Una cosa que es importante tener en cuenta para los recién llegados a la firma de PDF es que puede firmar un PDF sin una marca visible en la página. La firma es en realidad metadatos, y cualquier tipo de marca en la página es opcional.

Adobe proporciona un tutorial de video en cómo firmar un PDF . También puede leer más documentación en el sitio de Adobe.

También puede realizar la firma digital de archivos con herramientas de línea de comandos, pero si es nuevo en el proceso, un programa como PortableSigner o tal vez j4sign podría funcionar bien para usted. Puede navegar por SourceForge y Github para buscar otros proyectos aplicables que puedan satisfacer sus necesidades.

    
respondido por el Eric G 01.05.2013 - 01:36
fuente