Toute organisation bien gérée contrôle déjà les voies de sortie de données connues. Le copier-coller est surveillé, les téléchargements de fichiers sont enregistrés, les e-mails sont analysés, l'impression est restreinte. Ces contrôles arrêtent la grande majorité des expositions accidentelles de données.
Il reste une seule voie qu'aucun d'eux ne peut voir : la capture d'écran. Un utilisateur disposant uniquement d'un droit de consultation prend une photo de l'écran — avec son téléphone, avec le raccourci de capture du système d'exploitation, ou avec un enregistrement d'écran réalisé sur un appareil distinct. L'image quitte l'organisation sous forme de pixels. Le pixel n'est ni un événement de copier-coller, ni un téléchargement de fichier, ni un e-mail — aucun des outils existants ne le perçoit comme une sortie de données.
Ce qu'on peut faire de cette image a changé radicalement ces dernières années. Les moteurs OCR classiques (comme Tesseract, AWS Textract) peuvent extraire d'une image un texte de qualité production. Les modèles de vision IA modernes — comme GPT-4V, Claude Vision, Gemini — vont encore plus loin : ils regardent l'image de manière holistique et en déduisent la structure d'un tableau, les sections d'un contrat, les champs d'un formulaire, lisant parfois plus qu'un humain bien formé.
Les défenses fréquemment recommandées pour ce problème — filigrane visible, DOM non copiable, détection d'enregistrement d'écran, contrôle du presse-papiers via la gestion des appareils mobiles — reposent sur des hypothèses qui ne tiennent plus. Un filigrane visible n'empêche pas la lecture du texte qui l'entoure. Un DOM non copiable n'arrête pas l'appareil photo d'un téléphone portable. La détection d'enregistrement d'écran ne voit pas un enregistrement réalisé avec un appareil distinct.
Le seul endroit qui ferme réellement cette voie est le pixel affiché à l'écran lui-même — vous réorganisez ce qui apparaît sur l'écran de l'utilisateur de telle sorte qu'aucun texte exploitable ne puisse être extrait de l'image capturée.
ZeroLeak exécute l'application web protégée dans un navigateur côté serveur et fait passer les images rendues par des interventions au niveau du pixel avant qu'elles n'atteignent l'utilisateur. Le navigateur de l'utilisateur reçoit un flux de pixels — pas de HTML, pas de DOM, pas de JavaScript — ce qui signifie que la seule façon d'extraire le contenu est de photographier ce qui est à l'écran. Et cette image est, par conception, illisible pour les moteurs OCR et les modèles de vision IA.
ZeroLeak ouvre l'application web protégée sur son propre serveur, à l'intérieur d'un navigateur headless. Le navigateur de l'utilisateur ne reçoit jamais le HTML, le JavaScript ou le DOM de la page — uniquement le flux de pixels de la version rendue de cette page. Imaginez-le comme regarder une vidéo : les clics et les saisies clavier sont renvoyés vers le navigateur côté serveur ; la nouvelle image qui en revient est diffusée vers l'utilisateur.
Chaque page rendue côté serveur passe par huit interventions indépendantes au niveau du pixel avant d'être envoyée à l'utilisateur. Un bruit trop petit pour que l'œil de l'utilisateur le remarque, de fines lignes placées sur les bords des caractères, la séparation des canaux de couleur et des techniques similaires sont appliquées ensemble. Chaque technique cible une étape différente des moteurs OCR ; superposées, la couche qu'un moteur franchit est arrêtée par une autre.
Des modèles comme GPT-4V, Claude Vision, Gemini regardent une image de manière holistique — ils ne lisent pas seulement lettre par lettre, ils tentent d'extraire la mise en page, les titres, les tableaux. C'est pourquoi une intervention sur les pixels au seul niveau des lettres ne suffit pas. ZeroLeak divise l'image en petites tuiles qui tournent à une vitesse imperceptible pour l'utilisateur et pixellise chaque tuile avec un motif indépendant. Le système visuel humain fusionne les tuiles rotatives en une image stable et lisible ; le modèle de vision IA ne peut saisir aucun texte ni aucune mise en page stable, même à partir d'une seule tuile.
La protection anti-OCR fonctionne dans la même configuration que les autres protections de la couche écran de ZeroLeak. La page peut porter un identifiant d'utilisateur caché qui laisse une trace même si elle est rognée ou redimensionnée (filigrane forensique) ; et la contrepartie dans le DOM du texte affiché peut produire une sortie sans signification lorsqu'elle est copiée (chiffrement de texte). Chaque couche s'active et se désactive indépendamment par service protégé — la combinaison se choisit selon le scénario d'usage.
Les huit techniques ci-dessous sont appliquées à chaque page rendue côté serveur avant d'être envoyée à l'utilisateur. Chacune cible une faiblesse différente des moteurs OCR et des modèles de vision IA. Superposées, la surface totale qu'un attaquant doit franchir pour extraire du texte d'une image capturée est bien plus grande que l'effet des techniques prises isolément.
Chaque pixel subit une variation aléatoire de luminosité dans une plage très réduite. L'humain le perçoit comme une légère texture qui n'affecte pas la lecture ; mais les bords de pixels propres et cohérents que les moteurs OCR examinent pour distinguer les contours du texte et la forme des lettres ne sont plus là.
Les moteurs OCR classiques et modernes cherchent les bords des lettres et l'épaisseur des traits dans une bande de fréquences spatiales précise. Cette bande est ciblée et une fine perturbation de fréquence est appliquée. La structure générale de l'image apparaît nette pour un lecteur humain, tandis que le module de détection de bords de l'OCR ne trouve pas de bord fiable.
Le traitement du texte est appliqué différemment d'un canal de couleur à l'autre avec de petits écarts ; le même caractère est rendu différemment dans les canaux rouge, vert et bleu. L'œil humain fusionne les trois canaux et voit un seul caractère lisible. La plupart des moteurs OCR convertissent d'abord l'image en niveaux de gris — et perdent dans ce processus l'information inter-canaux dont ils ont besoin sur les lettres.
Savoir où une lettre se termine et où la suivante commence est une étape critique pour le bon fonctionnement de l'OCR. Des lignes très fines, qui apparaissent à l'utilisateur comme une texture de fond, sont ajoutées sur l'image de la page exactement à ces frontières inter-lettres. L'œil humain prend ces lignes pour du fond et les ignore ; l'OCR sépare deux lettres en une seule ou une lettre en deux, et segmente le texte de façon erronée.
Chaque lettre est décalée d'une quantité trop petite pour que l'humain la perçoive — sous l'échelle du pixel. L'expérience de lecture ne change pas. La précision de reconnaissance baisse car la position de la ligne de base et l'alignement du corps que les moteurs OCR utilisent pour identifier les lettres sont perturbés.
Un déplacement limité de pixels est appliqué à l'intérieur de la zone propre à chaque lettre. À distance de lecture, la lettre apparaît identique à l'œil. Mais les statistiques au niveau du pixel que les moteurs OCR utilisent pour déterminer si une lettre est un « A » ou un « R » sont perturbées.
Des motifs spéciaux, que l'œil humain ne remarque presque jamais, sont placés dans les zones sans texte. Ces motifs trompent l'étape où l'OCR localise d'abord les zones de texte avant de lire — le contraste entre le texte et le fond diminue dans la perception de l'OCR, et le moteur ne parvient pas à déterminer où commence le texte.
On prend un modèle OCR ou de vision IA représentatif, et on applique des modifications de pixels calculées à partir de la structure de fonctionnement interne (gradient) de ce modèle. Le résultat affecte aussi d'autres modèles de la même famille. Ajoutée aux sept techniques ci-dessus, l'effet total est supérieur à la somme des techniques prises isolément.
Les modèles de vision IA (GPT-4V, Claude Vision, Gemini et similaires) regardent une image différemment de l'OCR. Au lieu de lire lettre par lettre, ils regardent la page de manière holistique et tentent d'en reconstruire la mise en page, le tableau, le formulaire. Les huit techniques ci-dessus arrêtent l'OCR classique de façon fiable, mais ne neutralisent pas complètement ces lecteurs holistiques. La segmentation par tuiles rotatives est la couche conçue pour ces lecteurs.
Chaque image rendue côté serveur est divisée selon une grille invisible (généralement 3×3). Chaque tuile est appliquée avec un motif de pixellisation indépendant et une phase de motif indépendante. Il n'y a aucune structure commune entre deux tuiles voisines.
Le motif de pixellisation tourne entre les tuiles à une vitesse plus rapide que ce que le système visuel humain peut percevoir, mais à laquelle l'œil peut encore former une image stable. L'utilisateur lit la page normalement. Un modèle de vision IA qui regarde une seule tuile ou une courte série de tuiles ne peut saisir aucune structure de texte ou de mise en page stable.
Les tuiles ne partagent ni motif ni phase entre elles. Même si un modèle IA résout le motif de pixellisation d'une tuile, il ne peut pas appliquer cette information aux tuiles voisines. Pour résoudre l'image entière, il faut résoudre chaque tuile séparément ; cela signifie une charge de travail directement proportionnelle au nombre de tuiles.
La segmentation par tuiles rotatives n'est pas une défense autonome — elle s'ajoute par-dessus la couche de pixel à huit techniques décrite ci-dessus. Même si un modèle IA franchit partiellement la couche supérieure, il reste en dessous une couche à huit techniques ciblant le niveau des lettres. L'attaquant doit vaincre deux types de protection différents sur la même image.
La densité de la grille, la vitesse de rotation, l'intensité du motif et la géométrie de la grille sont déterminées séparément pour chaque service web protégé. Pour le contenu à haute sensibilité (dossiers juridiques, états financiers), la protection est renforcée ; pour le contenu courant, les réglages de base suffisent.
Les filigranes semi-transparents et les éléments DOM non copiables peuvent être contournés par rognage ou filtrage — il reste en dessous une image propre. La segmentation par tuiles rotatives, elle, modifie les pixels réels du contenu, sans image « propre » dissimulée en dessous.
Le personnel clinique doit, par fonction, voir les données patient à l'écran, mais ces données ne doivent pas quitter l'organisation. Avec ZeroLeak, les données restent lisibles pendant la session, tandis qu'aucune information exploitable ne peut être extraite d'une capture d'écran prise. Conforme au principe du minimum de divulgation de la HIPAA pour les rôles disposant uniquement d'un droit de consultation.
Du contenu qui doit être lu mais ne doit atterrir sur le téléphone de personne — états financiers, textes de contrats, dossiers de due-diligence. Lorsque l'anti-OCR et la segmentation par tuiles rotatives sont appliqués ensemble, le document se lit confortablement à l'écran, tandis que l'image capturée devient inutilisable.
Du contenu classifié que les analystes doivent voir mais qui ne doit pas sortir. La modification au niveau du pixel ferme la voie de fuite par capture d'écran à la même frontière que la politique d'accès.
Des utilisateurs externes recevant un droit temporaire sur un portail client, une interface d'audit ou une console de recherche. L'utilisateur lit le contenu ; même s'il prend une capture d'écran, il ne peut pas transférer le contenu vers un autre support.
Les chercheurs doivent voir les données d'étude, les dossiers patient, les résultats de laboratoire. La limite de divulgation interdit le plus souvent l'exportation. L'anti-OCR transforme cette limite d'interdiction d'une règle de politique en un contrôle technique.
Les programmes de risque interne ne peuvent plus supposer qu'une capture d'écran prise est inoffensive. Pour toute personne ayant une IA dans sa poche, chaque contenu visible à l'écran est un vecteur d'exfiltration potentiel. L'anti-OCR et la segmentation par tuiles rotatives ramènent ce risque au niveau des environnements pré-IA, accessibles aux seuls humains.
Voyez la couche de pixel anti-OCR de ZeroLeak et sa segmentation par tuiles rotatives en démo en direct. Nous soumettons la même page à Tesseract, AWS Textract, GPT-4V et Claude Vision et vous montrons ce qui en ressort de l'autre côté.