Des chercheurs ont trouvé des failles permettant d’accéder aux données chiffrées nativement dans un fichier PDF. Malheureusement, pour colmater ces failles, il faudrait modifier le standard de fond en comble.
Le PDF est un format de document extrêmement populaire, y compris pour manipuler des données sensibles. En effet, ce standard propose un chiffrement natif fort pratique, censé rendre les données inviolables. Pour l’activer, il suffit généralement de définir un mot de passe au niveau du logiciel PDF. Mais ce chiffrement est loin d’être inviolable, comme vient de le montrer un groupe de chercheurs des universités Ruhr-Bochum et Munster. Ces experts ont trouvé deux attaques baptisées « PDFex », permettant de faire fuiter les informations confidentielles d’un fichier PDF chiffré.
Exfiltrer des données partiellement chiffrées
La première attaque, dite par « exfiltration directe », est possible quand le fichier n’est que partiellement chiffré. En effet, le corps d’un document PDF s’appuie sur différentes entités pour structurer les données : une racine appelée « catalogue » sur laquelle viennent se greffer les « pages » et les éventuels « fichiers embarqués ».
Lorsque le chiffrement est partiel, seul le contenu des pages et les fichiers embarqués sont chiffrés. Un pirate peut alors insérer à la fin du corps du document un code dynamique qui sera exécuté à l’ouverture du fichier ou suite à une interaction (un clic sur un bouton par exemple). Le code transmettra alors les données désormais déchiffrées vers un serveur qu’il contrôle.
Les chercheurs ont testé trois méthodes d’envoi : le formulaire HTTP POST, la requête HTTP GET et le Javascript. La première est de loin la plus pratique. Elle n’est pas limitée en volume de transfert comme la deuxième. Et elle n’est pas désactivée par défaut comme c’est souvent le cas pour la troisième.
Une seconde attaque pour tout déchiffrer
A partir du moment où l’on connaît certaines parties du document chiffré – comme l’entête par exemple – il est possible d’y insérer directement le code dynamique que l’on souhaite utiliser (HTTP POST, requête HTTP GET ou Javascript). Ce code sera déchiffré à l’ouverture du document, puis exécuté.
Tous les logiciels sont plus ou moins vulnérables
Les chercheurs ont testé 27 logiciels PDF. Tous étaient vulnérables à au moins l’une des différentes variantes étudiées. Pour réaliser ce type d’attaques, le pirate doit pouvoir accéder aux supports sur lesquels sont stockés les PDF, ou être en capacité d’intercepter et de modifier ces fichiers à la volée sur un réseau.
Une menace a priori impossible à éviter
Colmater ces failles n’est pas possible, car elles découlent du standard PDF et de son faible niveau de sécurité. Pour améliorer les choses, il faudrait déjà supprimer la possibilité de chiffrement partiel. Ensuite il faudrait remplacer CBC par un mode de chiffrement qui n’est pas vulnérable et qui dispose d’une fonction de vérification d’intégrité, pour empêcher la manipulation d’un document. Mais tout ceci suppose une refonte complète du standard PDF.
En attendant qu’un meilleur standard PDF soit créé, il est toujours possible de remplacer le chiffrement natif par un chiffrement externe. Cette solution est plus sûre et efficace mais également plus compliquée à gérer au quotidien.
Pour en savoir plus: