Fig. 1. El procedimiento de guardado incremental en el que se basan las firmas digitales PDF. Seg煤n los resultados de la prueba, esta es la forma m谩s efectiva de falsificar documentosTe贸ricamente, las firmas digitales PDF autentican de manera confiable al autor de un documento. Pero en la pr谩ctica, el procesamiento de PDF generalmente se lleva a cabo mediante software propietario que no realiza la validaci贸n correctamente. Los especialistas de la Universidad Ruhr en Bochum (Alemania) describieron
varias opciones para falsificar documentos PDF firmados digitalmente que funcionan en la mayor铆a de los visores de PDF y servicios de verificaci贸n en l铆nea.
La protecci贸n contra todos los ataques se proporciona solo en un solo programa, e incluso funciona bajo Linux.
Estructura PDF
Fig. 2. estructura del documento PDFLa estructura del documento PDF se muestra en la Fig. 2. Al guardar los cambios de forma incremental en el documento PDF, se agregan nuevos objetos al
cuerpo , as铆 como una nueva tabla
Xref con una descripci贸n de nuevos objetos y un nuevo
avance con enlaces al
cat谩logo (ver Fig. 1). Un directorio es el objeto ra铆z de un archivo PDF; define la estructura del documento y opcionalmente puede determinar los permisos de acceso.
Cada objeto comienza con el n煤mero de objeto y el n煤mero de versi贸n, que aumenta con cada actualizaci贸n del objeto.
Fig. 2. Estructura del objeto PDFCreaci贸n de firma
Agregar una firma digital a un documento PDF se basa en un mecanismo de guardado incremental (ver Figura 1). Al agregar una firma durante el guardado incremental, se agrega el siguiente contenido al documento:
- nuevo Cat谩logo con un nuevo par谩metro Perms que define permisos para modificar el documento; este par谩metro se refiere al objeto Signature ;
- Objeto de firma (
5 0 obj
) con informaci贸n sobre los algoritmos criptogr谩ficos utilizados para codificar y firmar el documento, con el par谩metro Contents
, que contiene el bloc codificado en hexadecimal PKCS7: almacena certificados y el valor de la firma creada utilizando la clave privada que corresponde a la clave p煤blica en el certificado El par谩metro ByteRange
determina qu茅 bytes del archivo PDF se utilizan en la entrada de la funci贸n hash para calcular la firma (pares a, b
c, d
), es decir, qu茅 parte del archivo est谩 firmada;
- Una nueva tabla Xref con un enlace a un nuevo objeto
- Nuevo trailer .
En la fig. La Figura 3 muestra un diagrama simplificado de un archivo PDF firmado digitalmente.
Fig. 3. Dise帽o de archivo PDF firmado digitalmente simplificadoDe acuerdo con las especificaciones actuales,
se recomienda que firme el archivo completo, con la excepci贸n del bloc PKCS7.
La verificaci贸n de la firma se lleva a cabo mediante la aplicaci贸n en la que se abre el documento PDF. Inmediatamente extrae la firma del PDF y utiliza operaciones criptogr谩ficas para verificar su correcci贸n, y luego verifica si se puede confiar en el certificado X.509, cuyas claves se usaron para firmar.
Por lo general, todos los lectores de PDF no conf铆an en el almac茅n de claves integrado en el sistema operativo. Al igual que el navegador Firefox, distribuyen su propio almac茅n de claves y generalmente permiten al usuario especificar una tienda con certificados de confianza. Esta funci贸n le permite confiar solo en ciertos certificados, por ejemplo, de su propia autoridad de certificaci贸n.
Falsificaci贸n de firma digital
Los investigadores describen tres formas de falsificar contenido en archivos PDF firmados.
- Falsificaci贸n de firma universal (USF);
- Ataque de ahorro incremental (ISA)
- ataque a un contenedor de firma (ataque de envoltura de firma, SWA).
Firma universal falsa (USF)
Un ataque de USF deshabilita la
verificaci贸n de firma en una aplicaci贸n que abre un PDF. Al mismo tiempo, se env铆a un mensaje normal al usuario sobre la validaci贸n exitosa de la firma. Esto se hace manipulando el objeto
Firma en el documento: se crea un registro incorrecto dentro de este documento o el enlace al objeto se elimina del archivo. Aunque el visor de PDF no puede verificar que la firma sea correcta, en algunos casos el programa a煤n muestra su presencia, lo que cumple con los objetivos del atacante.
Los investigadores formularon 18 vectores de ataque USF, ocho de los cuales se muestran en la Fig. 4)
Fig. 4. Ocho vectores de ataque para eludir la verificaci贸n de firma digitalTodos estos m茅todos funcionan si el visor de PDF no verifica correctamente la firma digital.
Ataque de retenci贸n incremental (ISA)
Esta clase de ataques consiste en redefinir la estructura y el contenido en una secci贸n adicional de un documento. La idea es que la firma se calcule en funci贸n del rango de bytes especificado en
ByteRange
, y la secci贸n adicional no cae en este rango, como se muestra en la Fig. 5)
Fig. 5. Al agregar contenido a la secci贸n adicional, la firma digital no se violaHay varias formas de evitar ver los cambios en el documento y bloquear la advertencia correspondiente en el visor de PDF.
Ataque de envoltura de firma (SWA)
Finalmente, la 煤ltima clase de ataques le permite omitir la verificaci贸n de firma sin guardar de forma incremental, pero moviendo la parte firmada del PDF al final del documento y reutilizando el puntero
xref
en el
Trailer firmado a la tabla Xref modificada. Al mismo tiempo, para evitar procesar la parte movida, puede envolverse en alg煤n objeto extra帽o, por ejemplo,
secuencia o
diccionario .
Fig. 6. Comparaci贸n de documentos PDF originales y modificados.Ataque de rendimiento
Los investigadores probaron la efectividad de cada tipo de ataque en diferentes programas para ver PDF. No se puede enga帽ar solo a
Adobe Reader 9 en Linux . En todos los dem谩s programas, la verificaci贸n de firma se omite de una o m谩s formas.

La situaci贸n con los servicios de verificaci贸n de firma digital PDF en l铆nea no es mejor.
