Les PDF signés sont-ils vraiment sécurisés ?
Publié par Clément Bohic le | Mis à jour le
Des chercheurs attirent l'attention sur la possibilité de contourner la protection qu'est censée garantir la signature électronique des PDF.
Un PDF signé est-il réellement protégé contre toute modification indésirable ? Des chercheurs de l'université de la Ruhr répondent par la négative.
Leur rapport à ce sujet présente plusieurs attaques destinées à créer des documents « à deux visages ». D'un côté, le contenu « légitime » auquel s'attendent les parties signataires. De l'autre, du contenu qui n'apparaît qu'après signature.
La spécification PDF définit trois éléments principaux :
Les objets y sont stockés, chacun identifié par un nombre. L'objet principal (racine) est nommé « catalogue ». Lié à tous les autres objets, il définit la structure du PDF.
Elle contient des références aux objets (premier octet, longueur, statut.).
Il regroupe des informations telles que le premier objet à lire et l'identifiant du catalogue.
La modification d'éléments au sein de cette structure se fait avec la fonction dite de « sauvegarde incrémentale » (IS). Chaque IS ajoute ses objets dans un nouveau corps (placé immédiatement après le dernier trailer), puis ajoute une table Xref et un trailer.
Dissimuler.
Les signatures - avec identification ou certificat numérique - s'ajoutent aussi sous forme d'objets. Traditionnellement, elles commencent au premier octet et terminent au dernier. De manière générale, elles changent lorsqu'un PDF subit une modification. Mais ce n'est pas toujours le cas, expliquent les chercheurs : une multitude d'actions sont considérées comme sans danger par les principales visionneuses.
Le premier type d'attaque qu'ils présentent consiste à cacher le contenu indésirable derrière un autre contenu (overlay) avant la signature. Et à le faire apparaître ensuite aux yeux des victimes.
Deux déclinaisons de cette attaque figurent dans le rapport :
. ou remplacer
Autre type d'attaques : celles qui permettent de remplacer du contenu au vol.
Elle exploite une propriété des champs de texte dans les formulaires dynamiques. Ces champs peuvent afficher deux valeurs : la « vraie » et un overlay qui disparaît dès qu'on sélectionne le champ.
La « vraie » valeur est stockée dans un objet /V. Le contenu de l'overlay, dans un objet /BBox. Il est comparable aux indices qu'on peut insérer dans des formulaires HTML pour aider les utilisateurs à les remplir. Sauf que dans les PDF, il n'existe aucune différence visuelle avec les « vraies » valeurs.
Pour les attaquants, il suffit, avant signature, de renseigner les « vraies » valeurs et les overlays. Puis, une fois le document signé, de modifier les /BBox. La signature des /V reste ainsi valide et c'est elle que les visionneuses affichent, les valeurs /BBox ne correspondant pas à celles signées.
Il s'agit là d'associer une police de caractères spécifique à un contenu, puis, une fois le document signé, de remplacer cette police par une autre.
Plus puissante encore, l'attaque qui combine les aspects « cacher » et « remplacer ». Fondées sur la création de PDF liés de manière dissimulée à d'autres documents, elles mettent à profit les tables de références croisées. Objectif : faire pointer le catalogue du document légitime vers les ressources malveillantes une fois le PDF signé.
Le tableau ci-dessous résume la situation des visionneuses PDF avant éventuelle applications de correctifs.
Photo d'illustration © Pei Ling Hoo - Fotolia