Empêcher l'extraction de texte à partir d'un document PDF en masquant le texte

Catégorie du blog: PDF.NET

18.05.2020

VintaSoft Imaging .NET SDK prend en charge la possibilité d'obfusquer l'encodage du texte pour tous les types de polices.

Quel est l'objectif? Par exemple, vous publiez un document en accès libre (ou vous le donnez à un tiers) et vous ne souhaitez pas que le texte du document puisse être facilement extrait par copier-coller dans n'importe quelle visionneuse PDF.

Solution 1: Interdire l'extraction de texte à l'aide des indicateurs des paramètres de sécurité du document PDF. Cependant, le respect de ces paramètres dépendra de l'application utilisée par l'utilisateur pour visualiser le document. Le texte peut être facilement extrait si la visionneuse PDF ignore les paramètres de sécurité du document PDF.

Solution 2: Supprimer complètement les informations d’encodage du texte, mélanger les glyphes des polices et les codes des symboles sur la page. Ceci peut être réalisé grâce à la fonctionnalité d’obfuscation de l’encodage du texte fournie par le VintaSoft PDF .NET Plug-in. Le mécanisme d’obfuscation supprime intégralement les informations d’encodage du texte, mélange les glyphes des symboles dans les polices et sur la page, et duplique les polices et les glyphes des symboles. Le texte ainsi obfusqué ne peut être extrait que par reconnaissance optique de caractères (OCR).

Examinons l'obfuscation d'un document PDF simple (document-without-text-obfuscation.pdf) à l'aide de l'application de "VintaSoft PDF Editor Demo".

Le document contient deux pages. Quatre phrases ont été écrites avec trois polices différentes.

La première phrase de la première et de la deuxième page a été écrite avec la même police.
Text before text encoding obfuscation in PDF document

Le panneau d'extraction de texte et la boîte de dialogue d'affichage des polices indiquent que tous les symboles ont un encodage correct.
Text characters before text encoding obfuscation in PDF document

La boîte de dialogue d'obfuscation de l'encodage du texte est accessible via le menu de l'application: Text -> Obfuscate Text Encoding -> Settings:
Standard settings for text encoding obfuscation in PDF document

Effectuons l'obfuscation avec les paramètres par défaut et examinons le document de sortie avec le texte obfusqué: document-with-default-text-obfuscation.pdf.

La vérification du document révèle que les polices ont été entièrement modifiées et que les glyphes ont été déplacés aléatoirement. Le texte extrait est visible dans le panneau d'extraction.
Text after text encoding obfuscation in PDF document

Comme la première phrase des deux pages a été écrite avec la même police, les symboles du premier mot (surlignés en vert) sont identiques sur les deux pages.
The same word is written using one font after text encoding obfuscation in PDF document

Vous pourriez vous dire: "Je vais écrire un programme simple pour extraire le texte. Je vais ensuite créer manuellement une table de correspondance des caractères et décoder le texte." C'est tout à fait possible, notamment lorsque le document ne contient que quelques polices. C'est pourquoi nous avons implémenté les paramètres d'obfuscation, qui rendent le décodage quasi impossible.

Ouvrons à nouveau la boîte de dialogue d'obfuscation de l'encodage du texte et: Settings for strong text encoding obfuscation in PDF document

Après cela, obfusquons à nouveau l'encodage du texte dans le document PDF et examinons le document PDF résultant avec le texte obfusqué: document-with-strong-text-obfuscation.pdf.

Nous pouvons maintenant observer que différents glyphes ont été utilisés pour la lettre "e", et le texte extrait inclura des symboles de cette lettre avec des codes différents.
The same character is written using different glyphs after text encoding obfuscation in PDF document

Le mot "Texte" de la première ligne est maintenant écrit avec différentes polices. Chaque police utilise sa propre position aléatoire et une duplication des glyphes. Les résultats de cette extraction de mots entre la première et la deuxième page sont totalement différents:
The same word is written using different fonts after text encoding obfuscation in PDF document