Fig. 1. La procédure de sauvegarde incrémentielle sur laquelle sont basées les signatures numériques PDF. Selon les résultats du test, c'est le moyen le plus efficace de falsifier des documentsThéoriquement, les signatures numériques PDF authentifient de manière fiable l'auteur d'un document. Mais en pratique, le traitement PDF est généralement effectué par un logiciel propriétaire qui n'effectue pas correctement la validation. Des spécialistes de l'Université de la Ruhr à Bochum (Allemagne) ont décrit
plusieurs options pour falsifier des documents PDF signés numériquement qui fonctionnent dans la plupart des visualiseurs PDF et des services de vérification en ligne.
La protection contre toutes les attaques n'est fournie que dans un seul programme, et même elle fonctionne sous Linux.
Structure PDF
Fig. 2. Structure du document PDFLa structure du document PDF est illustrée à la Fig. 2. Lors de l'enregistrement incrémentiel des modifications dans le document PDF, de nouveaux objets sont ajoutés au
corps , ainsi qu'un nouveau tableau
Xréf avec une description des nouveaux objets et une nouvelle
bande-annonce avec des liens vers le
catalogue (voir Fig. 1). Un répertoire est l'objet racine d'un fichier PDF; il définit la structure du document et peut éventuellement déterminer les autorisations d'accès.
Chaque objet commence par le numéro d'objet et le numéro de version, qui augmente avec chaque mise à jour de l'objet.
Fig. 2. Structure de l'objet PDFCréation de signature
L'ajout d'une signature numérique à un document PDF repose sur un mécanisme d'enregistrement incrémentiel (voir figure 1). Lors de l'ajout d'une signature lors de l'enregistrement incrémentiel, le contenu suivant est ajouté au document:
- nouveau catalogue avec un nouveau paramètre Perms qui définit les autorisations de modifier le document; ce paramètre fait référence à l'objet Signature ;
- Objet de signature (
5 0 obj
) avec des informations sur les algorithmes cryptographiques utilisés pour hacher et signer le document, avec le paramètre Contents
, qui contient le blob codé hexadécimal PKCS7 - il stocke les certificats et la valeur de la signature créée à l'aide de la clé privée qui correspond à la clé publique dans le certificat. Le paramètre ByteRange
détermine quels octets du fichier PDF sont utilisés à l'entrée de la fonction de hachage pour calculer la signature (paires a, b
et c, d
), c'est-à-dire quelle partie du fichier est signée;
- Une nouvelle table Xref avec un lien vers un nouvel objet
- nouvelle bande-annonce .
Dans la fig. La figure 3 montre un schéma simplifié d'un fichier PDF signé numériquement.
Fig. 3. Disposition simplifiée des fichiers PDF signés numériquementSelon les spécifications actuelles,
il est recommandé de signer l'intégralité du fichier, à l'exception du blob PKCS7.
La vérification de la signature est effectuée par l'application dans laquelle le document PDF est ouvert. Il extrait immédiatement la signature du PDF et utilise des opérations cryptographiques pour vérifier son exactitude, puis vérifier si le certificat X.509, dont les clés ont été utilisées pour signer, peut être approuvé.
En règle générale, tous les lecteurs PDF ne font pas confiance au magasin de clés intégré au système d'exploitation. Comme le navigateur Firefox, ils distribuent leur propre magasin de clés et permettent généralement à l'utilisateur de spécifier un magasin avec des certificats de confiance. Cette fonction vous permet de ne faire confiance qu'à certains certificats, par exemple, de votre propre autorité de certification.
Contrefaçon de signature numérique
Les chercheurs décrivent trois façons de contrefaire du contenu dans des PDF signés.
- Faux signature universelle (USF);
- Attaque ISA (Incremental Saving Attack)
- attaque sur un wrapper de signature (Signature Wrapping Attack, SWA).
Fausse signature universelle (USF)
Une attaque USF désactive la
vérification de signature dans une application qui ouvre un PDF. Dans le même temps, un message normal est envoyé à l'utilisateur concernant la réussite de la validation de la signature. Cela se fait en manipulant l'objet
Signature dans le document: soit un enregistrement incorrect est créé à l'intérieur de ce document, soit le lien vers l'objet est supprimé du fichier. Bien que la visionneuse PDF ne puisse pas vérifier que la signature est correcte, dans certains cas, le programme montre toujours sa présence, ce qui répond aux objectifs de l'attaquant.
Les chercheurs ont formulé 18 vecteurs d'attaque USF, dont huit sont représentés sur la Fig. 4.
Fig. 4. Huit vecteurs d'attaque pour contourner la vérification de signature numériqueToutes ces méthodes fonctionnent si la visionneuse PDF ne vérifie pas correctement la signature numérique.
Attaque de rétention incrémentielle (ISA)
Cette classe d'attaques consiste à redéfinir la structure et le contenu d'une section supplémentaire d'un document. L'idée est que la signature est calculée sur la base de la plage d'octets spécifiée dans
ByteRange
, et la section supplémentaire ne tombe pas dans cette plage, comme le montre la Fig. 5.
Fig. 5. Lors de l'ajout de contenu à la section supplémentaire, la signature numérique n'est pas violéeIl existe plusieurs façons de contourner la vérification des modifications du document et de bloquer l'affichage de l'avertissement correspondant dans la visionneuse PDF.
Signature Wrapper Attack (SWA)
Enfin, la dernière classe d'attaques vous permet de contourner la vérification de signature sans enregistrement incrémentiel, mais en déplaçant la partie signée du PDF à la fin du document et en réutilisant le pointeur
xref
dans la
bande-annonce signée vers la table
xref
modifiée. Dans le même temps, pour éviter de traiter la pièce déplacée, elle peut être enveloppée dans un objet étranger, par exemple, un
flux ou un
dictionnaire .
Fig. 6. Comparaison des documents PDF originaux et modifiésPerformance d'attaque
Les chercheurs ont testé l'efficacité de chaque type d'attaque dans différents programmes de visualisation de PDF. Impossible de tromper uniquement
Adobe Reader 9 sous Linux . Dans tous les autres programmes, la vérification de signature est contournée d'une ou plusieurs manières.

La situation avec les services de vérification de signature numérique PDF en ligne n'est pas meilleure.
