Impossible de modifier, d’imprimer, d’annoter un pdf ? Voici le genre de situation qui peut t’arriver lorsque tu récupères un document confidentiel dont le propriétaire a bloqué certaines fonctionnalités.
En général, l’idée est de restreindre son partage et sa diffusion à quelques destinataires privilégiés. Et bien dernièrement, il m’est arrivé de récupérer un fichier pdf aux accès limités. Moi qui suis un fervent adepte des annotations sur pdf , il me fallait trouver vite une solution. Et comme tu sais que je n’aime pas les restrictions et que je milite pour le partage de l’information , je me suis intéressé à la manière de faire « sauter » les protections d’un pdf dans ce petit tuto maison.
Qu’est ce qu’on m’interdit?
Pour connaître exactement les restrictions qui sont appliquées à mon document pdf:qpdf --show-encryption in.pdf
exemple ici avec mon fichier « in.pdf »:
Comment je fais sauter ces restrictions?
Pour supprimer les restrictions du pdf:qpdf --decrypt in.pdf out.pdf
C’est pas plus compliqué que ça 🙂
Bonus: supprimer le filigrane (watermark)
Les docs confidentiels comportent un filigrane, une inscription en arrière plan mentionnant la confidentialité et souvent le nom de la personne destinataire. Il existe un moyen de supprimer ses infos en 2 coups de commandes bash.
Pour ce faire ,il te faudra installer le paquet « pdftk », puis:
Décompresser le fichier avec filigranne:pdftk watermark.pdf output uncompress.pdf uncompress
Supprimer un filigrane simple:sed -e 's/CONFIDENTIAL/ /' uncompress.pdf > sansFiligrane.pdf
Supprimer un filigrane composé de plusieurs mots (par ex: confidentiel et exemplaire):sed -e 's/CONFIDENTIEL/ /' -e 's/EXEMPLAIRE/ /' -e 's/John DOE/ /' uncompress.pdf > sansFiligrane.pdf
Recompresser le pdf:pdftk sansFiligrane.pdf output output.pdf compress
Si jamais le propriétaire du document pdf a mis un mot de passe pour bloquer toute modif, il est quand même possible de le casser en utilisant un script comme john the ripper en l’associant avec qpdf (pour savoir comment faire voir liens ci-dessous).
liens utiles:
https://blog.didierstevens.com/2017/12/26/cracking-encrypted-pdfs-part-1/
https://blog.wirelessmoves.com/2019/12/how-to-open-protected-pdfs-on-linux.html
Il me semble que lorsqu’on remplace « CONFIDENTIEL » par une seule espace, on change la taille (en octets) de l’objet qui contient le filigrane, et ça change les offsets des objets suivants dans le PDF (oui je sais, c’est technique), rendant le PDF incorrect.
Il est possible que pdftk s’en sorte quand même lors de la recompression, mais pour faire propre, il faudrait remplacer « CONFIDENTIEL » par une chaîne de caractères de la même longueur (12 espaces dans ce cas).