Une fois qu'un écran a été photographié ou capturé puis partagé à l'extérieur, les données sont sorties. La seule question significative qui reste est : qui a produit cela ? Sans cette réponse, l'incident devient une énigme insoluble — et l'absence de résultat devient en soi une incitation à la prochaine fuite.
La réponse traditionnelle — des filigranes visibles où le nom de l'utilisateur apparaît à l'écran — fonctionne comme dissuasion. Mais rogner l'image sur sa partie sans filigrane ou la photographier de manière à l'éliminer le supprime. L'utilisateur le sait ; la valeur dissuasive s'érode avec le temps.
L'identification moderne de la source exige deux couches. Une marque visible qui fait sentir à l'utilisateur qu'il est identifiable, plus une trace invisible intégrée dans les données de pixels réelles pour survivre aux attaques évidentes contre le visible. ZeroLeak ajoute les deux : la marque visible dissuade les fuites faciles, la trace invisible attrape les prudents.
Les deux couches de filigrane sont appliquées au même endroit : dans le visualiseur noVNC que reçoit le navigateur de l'utilisateur. Aucune couche ne vit dans le DOM de l'application web protégée, donc aucun site web ne peut interférer avec elles et aucune politique front-end ne peut les retirer. La couche visible se configure par service protégé ; la trace d'identité invisible est générée par session.
Le nom d'utilisateur, l'identifiant de session ou un texte personnalisé sont placés sur la page rendue en utilisant mix-blend-mode — afin de rester visibles sur du contenu clair comme foncé. L'utilisateur sait qu'il est personnellement identifiable sur chaque écran qu'il voit — une dissuasion continue et puissante contre la capture d'écran facile.
Un motif propre à la session est inscrit dans les données de pixels réelles de chaque image que voit l'utilisateur. Ce motif est conçu pour résister au rognage, au redimensionnement, à la recompression JPEG et à la re-photographie. Lorsqu'une capture d'écran apparaît plus tard, l'identité intégrée identifie la session qui l'a produite — même si le filigrane visible a été supprimé par rognage.
Le filigrane visible prend en charge jusqu'à trois couches indépendantes ; chacune a son propre texte, sa position, sa rotation, sa police, son opacité et sa taille de tuile. Avec un nom d'utilisateur en diagonale, un identifiant de session au centre et un horodatage dans un coin utilisés ensemble, il devient bien plus difficile de rogner la marque visible sans perdre de l'espace écran utile.
Supprimer le filigrane visible par rognage, réduire l'image pour une application de messagerie, photographier le moniteur avec un téléphone — la trace d'identité invisible survit à tout cela, car elle fait partie des données de pixels elles-mêmes et non d'un overlay. Le décodage de la trace d'identité à partir de l'image récupérée identifie la session.
Chaque élément ci-dessous peut être configuré indépendamment par service protégé. Pour le contenu à faible sensibilité où la dissuasion suffit, n'utilisez que la couche visible ; pour le contenu à haute sensibilité où l'identification de la source doit être possible, utilisez les deux couches ensemble.
Le texte du filigrane visible est composé de l'identité d'utilisateur authentifiée au début de session, de l'identifiant de session, de l'horodatage ou de toute combinaison choisie au moment de la politique. Le filigrane à l'écran ne reflète pas un logo générique, mais la personne précise qui regarde.
Le filigrane utilise mix-blend-mode qui s'inverse selon la couleur de l'arrière-plan. Un filigrane normalement invisible sur une page noire ou blanche reste lisible partout — l'œil voit une marque cohérente quel que soit ce que la page affiche en dessous.
Jusqu'à trois couches visibles configurables ensemble. Chaque couche a son propre texte, sa couleur, son opacité, sa police, sa rotation, sa taille de tuile et sa position. Les couches peuvent être répétées en diagonale, centrées ou fixées dans un coin — rogner la capture d'écran de manière à supprimer une couche en laisse encore d'autres.
Un motif de trace propre à la session est intégré dans les images rendues que voit l'utilisateur. L'intégration est conçue pour résister aux attaques courantes de fuite d'écran — rognage, réduction de taille pour les applications de messagerie, recompression JPEG et re-photographie du moniteur avec l'appareil photo d'un téléphone ; toutes laissent suffisamment de motif pour récupérer l'identifiant de session.
Lorsqu'une image ayant fui est trouvée, l'opérateur la fait passer par le décodeur. Le décodeur lit le motif de trace intégré et renvoie l'identifiant de session qui l'a produite. L'opérateur recherche la session dans l'enregistrement d'audit pour trouver l'identité de l'utilisateur, l'horodatage et le service protégé concerné.
Les deux couches de filigrane sont appliquées dans le visualiseur noVNC que reçoit le navigateur de l'utilisateur — et non dans le DOM de l'application protégée. L'application protégée n'a pas connaissance du filigrane et ne peut pas interférer avec lui. Frameworks front-end, politiques trusted-HTML, extensions de navigateur dans l'application protégée — aucun ne peut accéder à la marque.
Différents canaux de fuite dégradent l'image qui fuit de différentes manières. La trace d'identité invisible a été conçue contre des attaques réalistes ; elle est honnête sur ce qu'elle peut récupérer et ce qu'elle ne peut pas.
Un attaquant rogne la capture d'écran jusqu'à la zone de données qu'il souhaite et supprime tout le texte de filigrane visible. La trace d'identité invisible est répartie sur l'ensemble de l'image et survit au rognage — récupérer une zone de taille raisonnable de l'image originale suffit à décoder l'identité.
La plupart des applications de messagerie réduisent les images partagées et les recompressent en JPEG. Le motif de trace est conçu avec une redondance suffisante pour résister aux taux de réduction courants et aux artefacts de compression JPEG.
Un attaquant qui ne veut pas laisser de trace dans le système de fichiers pointe son téléphone vers l'écran et prend une photo. Le motif de trace est conçu pour résister à la capture optique — les photos d'appareil photo de téléphone conservent suffisamment d'information de fréquence spatiale pour que le décodeur puisse encore trouver l'identifiant de session.
Un attaquant qui ne fait fuir qu'une très petite portion de l'écran — une seule phrase, un seul chiffre — réduit la quantité de motif de trace disponible. Le décodeur signale une faible confiance pour les petites zones ; à la limite, la trace devient indécodable. Une frontière honnête — toute fuite n'est pas identifiable.
Un attaquant qui fait passer l'image ayant fui par un flou gaussien lourd, un filtre d'image par IA générative ou qui re-dessine manuellement le contenu visible peut détruire le motif de trace en même temps qu'une grande partie de l'information originale. À ce stade, l'image qui fuit n'est plus une copie fidèle de ce qui était à l'écran — l'identification de la source n'est pas la seule chose perdue.
Documents pré-IPO, documents de fusion/acquisition, positions d'investissement — information de grande valeur lue par de nombreuses personnes avant divulgation publique. Lorsqu'une fuite apparaît dans la presse, identifier de quelle session elle provient fait la différence entre un incident sans solution et une investigation actionnable.
Le personnel de santé lit légitimement les données patient à l'écran. Lorsqu'un dossier patient ayant fui apparaît à l'extérieur, le filigrane visible dissuade les fuites faciles, la trace d'identité invisible identifie la session en cas de fuite — soutenant la responsabilité HIPAA pour les rôles disposant uniquement d'un droit de consultation.
Des bureaux d'analystes où plusieurs personnes voient le même contenu classifié. Les marques par utilisateur concrétisent la responsabilité individuelle ; la trace d'identité invisible rend les investigations possibles lorsqu'une fuite fait surface dans le renseignement open source.
Des parties externes recevant un droit de consultation uniquement sur votre environnement. La marque visible par utilisateur sur chaque écran qu'ils regardent leur rappelle qu'ils sont identifiables ; la marque invisible rend la situation prouvable lorsqu'une fuite apparaît dans leurs propres sous-réseaux.
Voyez le filigrane forensique de ZeroLeak en démo en direct. Nous ouvrons une session, prenons la capture d'écran, la rognons, la réduisons, la photographions depuis le moniteur — et à chaque fois, nous décodons la trace d'identité jusqu'à la session.