- ▸ Un fichier de 1,67 Mo qui a mis la puce à l'oreille d'un chercheur
- ▸ Ce que contient le code : un identifiant lié à chaque requête de prompt
- ▸ La version officielle : filtrage de contenu et manifeste de provenance
- ▸ Générer « en local » n'exclut pas un aller-retour vers un serveur
21 août 2026. Un chercheur en rétro-ingénierie a démontré que Paint et Photos, les applications Windows, insèrent un identifiant serveur invisible dans chaque image générée par IA — y compris lorsque le traitement s’exécute sur l’appareil. Un fichier jugé disproportionné pour une simple fonction visible a déclenché l’enquête.
Ce qu’il faut retenir – Un chercheur en rétro-ingénierie a identifié, le 21 août 2026, un identifiant invisible intégré aux images générées localement par Paint et Photos sous Windows, selon l’analyse publiée sur xusheng.dev. – Le fichier DLL responsable de cette fonction pèse 1,67 Mo, une taille que le chercheur juge excessive pour un simple filigrane visible. – Les chaînes de code retrouvées, dont
lastPromptGenerationIdetcontainsHumanReference, révèlent un échange avec un serveur de modération malgré une génération annoncée comme locale. – Deux identifiants GUID distincts,74d9e06b-adea-43ce-85fe-186a26e2e34aet83424621-03cb-40e3-9808-a9fae837156d, ont été extraits du binaire analysé. – Microsoft revendique un marquage via manifeste C2PA, un standard de traçabilité des contenus IA, mais cette couche invisible n’apparaît dans aucune documentation publique connue.
Un fichier de 1,67 Mo qui a mis la puce à l’oreille d’un chercheur
Tout part d’un détail technique. En démontant les composants de Paint et de l’application Photos sous Windows, un chercheur en rétro-ingénierie tombe sur une bibliothèque dynamique (DLL) dédiée au filigranage des images générées par intelligence artificielle. Sa taille : 1,67 Mo.
Ce chiffre n’a rien d’anodin pour qui connaît le sujet. Un filigrane visible — ce petit logo superposé dans un coin de l’image — ne justifie pas, à lui seul, un module aussi volumineux. Selon l’analyse technique publiée sur xusheng.dev, cette disproportion « fait partie de mon intuition de rétro-ingénieur, parce que le fichier pèse 1,67 Mo, ce qui est inhabituellement lourd pour une fonctionnalité aussi triviale — on peut même soutenir que le filigrane visible ne nécessite pas une DLL séparée ».
Ce déséquilibre entre la taille du fichier et la simplicité apparente de sa mission devient le point de départ de l’enquête. Le chercheur décide de désassembler le code pour comprendre ce que fait réellement ce module, au-delà du logo visible que voit l’utilisateur final. Il teste son hypothèse sur une image volontairement simple, décrite dans son rapport comme « un cercle bleu cobalt au-dessus d’un petit carré orange » — un motif suffisamment neutre pour isoler le comportement du filigrane sans interférence visuelle.
Ce test révèle une seconde couche, invisible celle-ci, superposée à la marque visible. Une couche qui ne se contente pas d’identifier une image comme générée par IA : elle y encode un identifiant unique, propre à chaque requête.
Ce que contient le code : un identifiant lié à chaque requête de prompt
En creusant le binaire, le chercheur retrouve plusieurs chaînes de caractères qui dessinent le fonctionnement interne du système. La première, lastPromptGenerationId, désigne une variable censée conserver l’identifiant de la dernière génération d’image effectuée à partir d’un prompt (l’instruction textuelle saisie par l’utilisateur pour décrire l’image souhaitée).
Cet identifiant ne sort pas de nulle part. Le code attend une réponse structurée d’un serveur distant, sous une forme précise. Le rapport cite directement le format attendu par l’analyseur de réponse :
« } The response parser expects: { »
Cette structure JSON (JavaScript Object Notation, un format d’échange de données texte) confirme qu’un appel réseau a bien lieu à un moment du processus, même quand l’image finale est produite localement sur l’appareil. Le code contient également le champ containsHumanReference, un indicateur qui semble signaler si le prompt fait référence à une personne humaine — une donnée typique d’un système de modération de contenu, chargé de filtrer certaines requêtes avant génération.
Deux identifiants GUID (Globally Unique Identifier, un identifiant alphanumérique conçu pour être unique à l’échelle mondiale) apparaissent également dans le binaire : 74d9e06b-adea-43ce-85fe-186a26e2e34a et 83424621-03cb-40e3-9808-a9fae837156d. Le chercheur retrouve aussi la référence com.microsoft.invismark.1, un identifiant de composant qui nomme explicitement la fonction : le filigrane invisible (« invismark »).
Le tableau ci-dessous résume les éléments techniques identifiés dans le binaire, tels que rapportés par le chercheur.
| Élément trouvé dans le code | Nature |
|---|---|
lastPromptGenerationId | Variable stockant l’identifiant du dernier prompt traité |
containsHumanReference | Indicateur de modération lié à la présence d’une personne dans le prompt |
com.microsoft.invismark.1 | Identifiant du composant de filigrane invisible |
| Deux GUID distincts | Identifiants uniques associés à des sessions de génération |
| Chaîne « Content watermarked by Microsoft Responsible AI » | Message de provenance associé au marquage |
Cette dernière chaîne — « Content watermarked by Microsoft Responsible AI » — fonctionne comme une signature interne. Elle rattache explicitement le mécanisme au programme Responsible AI (IA responsable) de Microsoft, l’ensemble des engagements et outils que l’entreprise présente publiquement comme son cadre éthique pour le déploiement de l’intelligence artificielle.
La version officielle : filtrage de contenu et manifeste de provenance
Le code du binaire ne se limite pas à des identifiants techniques. Il embarque aussi des messages destinés, semble-t-il, à être présentés à l’utilisateur ou documentés en interne. L’un d’eux justifie l’existence d’un contrôle en amont de la génération :
« we apply content filtering to prevent the generation of images »
Un second message évoque un mécanisme de traçabilité distinct du filigrane invisible : le C2PA. Le rapport cite la formulation suivante, trouvée dans le binaire :
« will contain C2PA manifest helping users identify that it is an AI generated image. »
Pour comprendre : le C2PA La Coalition for Content Provenance and Authenticity (C2PA) est un standard technique soutenu par plusieurs grands groupes technologiques, dont Microsoft. Il attache aux fichiers image un « manifeste » — des métadonnées vérifiables indiquant l’origine du contenu, notamment s’il a été généré ou modifié par une IA. Contrairement au GUID invisible décrit plus haut, le manifeste C2PA est conçu pour être documenté et consultable, pas dissimulé dans le pixel.
Cette distinction est le cœur du sujet. Microsoft communique publiquement sur le C2PA comme outil de transparence : un contenu généré par IA porte une marque destinée à informer l’utilisateur final. Le GUID lastPromptGenerationId, lui, ne relève pas de cette logique déclarative. Il s’agit d’un identifiant technique, encodé dans l’image de façon indétectable à l’œil nu, sans documentation publique connue équivalente à celle du C2PA.
Générer « en local » n’exclut pas un aller-retour vers un serveur
L’un des arguments commerciaux de Microsoft autour des fonctions de génération d’image dans Paint et Photos repose sur l’exécution locale : le traitement se ferait sur l’appareil de l’utilisateur, notamment sur les puces neuronales (NPU) des PC labellisés Copilot+. Cette promesse suggère, dans l’esprit d’un utilisateur non technique, une génération déconnectée d’un serveur distant.
Le code désassemblé raconte une histoire plus nuancée. La présence d’un lastPromptGenerationId attendu sous forme de réponse JSON structurée implique qu’une requête part vers un serveur, ne serait-ce que pour la modération du prompt via le champ containsHumanReference. Le modèle de génération d’image tourne peut-être bien localement — mais l’identifiant qui finit invisiblement encodé dans le fichier de sortie, lui, provient d’un aller-retour réseau.
Cette mécanique concerne plusieurs publics distincts. Les utilisateurs grand public de Paint et Photos, d’abord, qui ignorent qu’une image « générée sur leur appareil » embarque un identifiant lié à une session serveur. Les directions informatiques et responsables de la protection des données (DPO) des entreprises équipées de PC Copilot+, ensuite, pour qui la distinction entre traitement local et traitement distant conditionne l’analyse de conformité au RGPD (Règlement général sur la protection des données). Les développeurs qui s’appuient sur les API Windows AI pour intégrer des fonctions similaires dans leurs propres logiciels, enfin, sans nécessairement connaître l’existence de cette couche de filigrane invisible.
Le chercheur ne prétend pas, dans son rapport, que ce GUID permette à lui seul de remonter jusqu’à une personne identifiée. Il documente sa présence, sa structure, et le fait qu’elle transite par une réponse serveur — sans trancher la question de ce que Microsoft en fait une fois collectée. Cette réserve mérite d’être reprise ici avec la même prudence : la découverte porte sur un mécanisme, pas sur la preuve d’un usage précis des données qu’il génère.
Marquage des contenus IA : ce que prévoit déjà le droit européen
Le règlement européen sur l’intelligence artificielle, dit AI Act (règlement (UE) 2024/1689), impose depuis le 2 août 2026 des obligations de marquage pour les contenus synthétiques produits par des systèmes d’IA, afin que les utilisateurs puissent identifier qu’une image, un texte ou un son n’est pas d’origine humaine. Le C2PA, tel que revendiqué par Microsoft dans le code analysé, s’inscrit dans cette logique de transparence déclarée.
Le GUID invisible pose une question différente, que le texte de loi n’adresse pas directement dans les éléments disponibles à ce jour. Un marquage de provenance, documenté et consultable, sert l’objectif de transparence recherché par le législateur. Un identifiant caché dans le pixel, sans mention équivalente dans la documentation publique de Microsoft, échappe à cette logique déclarative — sans que l’on puisse affirmer, en l’état des informations rapportées, qu’il constitue une violation caractérisée d’une disposition précise.
Les partisans de ce type de mécanisme avancent un argument de traçabilité légitime : associer un identifiant à une génération peut servir à détecter les abus, retrouver l’origine d’une image manipulée, ou répondre à une réquisition judiciaire. C’est l’argument généralement mis en avant par les fournisseurs de systèmes d’IA générative pour justifier les filigranes, visibles ou non.
À l’inverse, l’absence de documentation publique équivalente à celle du C2PA pour ce GUID spécifique interroge sur le respect du principe de transparence envers l’utilisateur final, pilier du RGPD comme de l’AI Act. Un identifiant qui transite par un serveur et se retrouve encodé dans un fichier présenté comme « généré localement » brouille la frontière entre traitement local et traitement distant — une distinction que les autorités de protection des données, dont la CNIL, examinent traditionnellement de près lorsqu’elles évaluent la portée réelle d’un traitement de données.
Ce que répond le corps de l’article aux questions les plus directes
Ce GUID permet-il d’identifier une personne précise ?
Les éléments rapportés dans l’analyse ne permettent pas de l’affirmer. Le chercheur documente la présence de l’identifiant et son lien avec une réponse serveur, sans démontrer qu’il est associé à un compte utilisateur ou à une identité.
Le filigrane invisible peut-il être retiré d’une image ?
Cette question dépend de la méthode d’encodage utilisée, que le rapport ne détaille pas dans les extraits disponibles. Aucune information communiquée à ce jour ne permet de confirmer si le mécanisme résiste à une compression ou à une modification de l’image.
Cette pratique concerne-t-elle uniquement Paint et Photos ?
Selon les éléments analysés, la DLL en cause est partagée par Paint et par l’application Photos sous Windows. Rien dans le rapport n’indique si d’autres applications Microsoft embarquent un mécanisme identique.
Une pratique documentée, une réponse réglementaire encore à venir
Aucune autorité de régulation ne s’est, à ce jour, prononcée publiquement sur ce cas précis. L’obligation de marquage des contenus synthétiques prévue par l’AI Act est déjà applicable depuis le 2 août 2026, mais son articulation avec un identifiant invisible non documenté reste, pour l’instant, un angle mort du débat public.
La question qui se pose désormais dépasse le seul cas de Paint : combien d’autres outils de génération d’image, vendus sous l’étiquette « traitement local », dissimulent une couche de traçabilité que ni le C2PA ni la documentation officielle ne mentionnent ?


