Changer le contenu apparent d'un fichier PDF en n'invalidant pas une signature digitale serait possible grâce à des manipulations préalables dans le code.

La signature digitale sur PDF loin d'être invulnérable ?

L'utilisation des signatures digitales sur un fichier PDF, employée communément par les secteurs du e-business et du e-gouvernement pour confirmer l'intégrité d'un document et l'identité de son signataire, serait loin d'être infaillible. Un chercheur de la Military Technical Academy (Bucarest, Roumanie) a trouvé le moyen de modifier la teneur des informations d'un PDF signé sans que ce dernier ne soit invalidé. En réalité, le scientifique a exploité la structure du code du document afin d'y insérer, au départ, des éléments cachés, difficilement détectables. Le procédé repose  sur une technique nommée Dali Attack. L'agresseur crée deux fichiers : un PDF original et une image TIFF dans laquelle se trouve, par exemple, une somme ou un pourcentage modifiés. Grâce à un éditeur hexadécimal, l'attaquant va copier l'ensemble du contenu du PDF à un certain endroit du code de l'image. Il suffit ensuite d'introduire le tracker du PDF, un élément assurant la compatibilité de nouveau fichier avec Acrobat Reader.

Un fichier dynamique, réagissant suivant le logiciel d'ouverture

En manipulant la structure du document, il est ainsi possible d'établir un contenu dynamique qui réagit suivant le mode d'ouverture du fichier. Si Acrobat est utilisé, le montant original présent sur le PDF sera montré. En revanche, si c'est un logiciel pour regarder des images, ce sera le montant caché du fichier TIFF. Finalement, en modifiant l'extension .TIFF en .PDF du document polymorphique constitué, ce dernier sera lisible sans problème dans Acrobat Reader et aucune erreur de syntaxe ne sera détectée. Lorsque le signataire reçoit le fichier, il ne voit qu'un simple document PDF et le signe à l'aide d'un programme dédié ou d'une smart card. Le fichier prend alors l'extension .PDF.PKCS7. L'attaquant n'a plus qu'à rechanger à nouveau l'extension en .TIFF.PKCS7 et l'ouvrir avec un "Image Viewer" pour faire apparaître le montant frauduleux. Cela est rendu possible car les logiciels de vérification de signature digitale ne tiennent pas compte de l'extension du document. 

Des moyens de détection relativement simples

Celle-ci ne peut donc être invalidée car aucun bit du fichier n'a été altéré. Et tous les éléments de code étaient déjà présents au départ. Heureusement, il est possible de détecter ce type de fichiers polymorphiques. La version pro d'Acrobat Reader réécrit systématiquement le document à l'ouverture, en retirant toutes les modifications antérieures effectuées. Seul le montant contenu dans le PDF original sera conservé. Le chercheur a également créé un fichier batch, grâce à la suite ImageMagick, qui détecte si un document PDF contient des paramètres d'une image TIFF (comme des dimensions ou des résolutions). Si oui, il réplique le document, convertir l'extension en TIFF et l'ouvre avec une visionneuse, révélant ainsi le montant caché frauduleux.