Aller au contenu
OneKitly

Masquer un visage, une plaque ou un IBAN sur une image — définitivement

Publié le 21/08/2026 · 12 min de lecture · Outils pour développeurs

Daniel Okonkwo

Daniel OkonkwoDéveloppeur front-end et rédacteur Tech chez OneKitly

Performance web · Formats de fichiers

Vérifié à partir de 3 sources

Voir le profil
En bref

Oui, l'outil de censure détruit les pixels au lieu de poser un calque par-dessus, et le téléchargement est un PNG plat issu du bitmap du canvas — le fichier exporté ne contient que les blocs IHDR, IDAT et IEND, sans métadonnées, sans vignette et sans aucun moyen de conserver un original en dessous. Mais détruire des pixels n'est pas détruire de l'information. Nous avons pris une zone de 120 sur 44 pixels contenant quatre chiffres, l'avons censurée avec le code même de l'outil, puis avons rendu les 10 000 candidats à quatre chiffres, passé chacun dans la censure identique et comparé. La pixellisation a rendu les vrais chiffres au rang 1 sur 10 000 — erreur nulle, un seul candidat correspondant, en moins de deux secondes — et le flou a fait de même en quarante secondes. L'aplat, non : les 10 000 candidats correspondaient tous également et parfaitement, la vraie valeur arrivant 4 472e. Comme la pixellisation et le flou conservent tous deux la disposition spatiale de la zone, et qu'une mosaïque plus grossière signifie seulement moins d'échantillons et non moins d'indices, les deux modes ont été retirés. L'outil en propose désormais deux : un aplat de la couleur de ton choix, qui ne laisse filtrer strictement rien, et une plage de couleur moyenne, qui remplace la zone par une seule couleur plate tirée de la zone elle-même. Face à la même attaque à 10 000 candidats, la couleur moyenne laissait la vraie valeur dans un peloton de 246 à égalité, sans jamais la distinguer, à chaque position du curseur — mais elle livre ce seul nombre, donc pour une valeur courte et prévisible comme un code, une date de naissance ou un IBAN, choisis l'aplat.

Le flou et la pixellisation sont réversibles — non en défaisant le calcul, mais en devinant vers l'avant. Contre les modes flou et pixellisation de cet outil, une attaque de récupération a rendu la valeur cachée au rang 1 sur 10 000. Les deux modes ont depuis été retirés. Voici ce qui reste, et pourquoi cela ne peut pas être attaqué de la même façon.

Détruit-il les pixels, ou dessine-t-il par-dessus ?

C'est la seule question qui compte, et c'est celle à laquelle la plupart des outils ne répondent jamais. Un caviardage dessiné comme calque séparé — une forme dans un PDF, un objet dans un fichier de mise en page, une annotation dans une application photo — laisse l'original en dessous, et l'original revient dès qu'on ouvre le fichier dans un programme qui comprend les calques. C'est arrivé à des pièces de justice, à des rapports publics et à au moins un relevé bancaire publié en ligne. La première chose à établir est donc si le rectangle noir fait partie de l'image ou s'il est posé dessus.

Ici la réponse est nette. Les deux modes agissent sur le tableau brut de pixels d'un canvas HTML : le mode aplat remplit un rectangle directement dans le bitmap, et le mode couleur moyenne lit la zone, en tire une seule couleur et repeint cette couleur unique sur tout le rectangle. Il n'y a pas de calque, car un canvas n'en a pas — c'est une grille de pixels, rien d'autre. Le téléchargement est produit depuis cette grille sous forme de PNG, et en inspectant les octets exportés le fichier ne contenait exactement que quatre blocs : l'en-tête, deux blocs de données d'image compressées, et le marqueur de fin. Aucune métadonnée, aucun aperçu incorporé, aucune seconde copie de quoi que ce soit. Ce qui se trouvait sous le rectangle n'est pas dans le fichier.

Détruit ne veut pas dire irrécupérable

C'est ici que la plupart des explications s'arrêtent, et là que le risque réel commence. La pixellisation et le flou jettent tous deux de l'information — c'est exact. Mais tous deux sont déterministes : donne la même image en entrée et tu obtiens la même sortie, à chaque fois, sans aléa nulle part. Cela transforme le masquage en devinette à réponse vérifiable. Si un attaquant peut deviner ce qui se trouvait sous le rectangle, il peut fabriquer sa supposition, la passer dans la transformation identique et voir si le résultat correspond à ce que tu as publié. Quand l'ensemble des valeurs possibles est petit — une plaque, une date de naissance, un code à quatre chiffres, un montant, un nom dans une liste connue — l'ensemble entier peut simplement être essayé.

Nous l'avons donc essayé sur cet outil, à l'époque où il proposait encore les deux. Nous avons construit une petite zone de document — 120 pixels sur 44, contenant quatre chiffres, le genre de chose qu'on censure à la fin d'un numéro de compte — et l'avons censurée avec le code même de l'outil. Puis nous avons rendu les dix mille chaînes de quatre chiffres, passé chaque candidat dans la censure identique au réglage identique, et les avons classés selon leur ressemblance. Ce n'est pas une attaque astucieuse. C'est la plus évidente qui soit, elle n'exige ni apprentissage automatique ni matériel spécial, et elle a tourné dans un onglet de navigateur ordinaire.

Les résultats figurent dans le tableau ci-dessous, et ils étaient sans ambiguïté. La pixellisation au réglage le plus fort que proposait l'outil a rendu les vrais chiffres au rang un sur dix mille, avec une erreur exactement nulle et un seul candidat correspondant, en moins de deux secondes. Le flou au réglage le plus fort a fait de même, plus lentement, en quarante. Le rectangle plein s'est comporté tout autrement : les dix mille candidats ont produit une sortie identique, à égalité avec une erreur nulle, et la vraie valeur s'est classée quatre mille quatre cent soixante-douzième — c'est-à-dire nulle part, puisqu'il n'y avait rien sur quoi classer. Ce n'est pas que la barre pleine l'emporte d'une marge. C'est qu'elle est dans une autre catégorie : il ne reste aucune information à attaquer, donc aucune puissance de calcul ne change le résultat. Monter l'intensité n'y changeait rien non plus, car ce n'était jamais la force de l'effet qui comptait — c'était que l'effet laissait intacte la disposition de la zone. C'est pourquoi aucun des deux modes n'est plus proposé ici.

Ce qui les a remplacés, et ce que cela laisse encore filtrer

Il reste deux modes. L'aplat peint le rectangle dans la couleur de ton choix, et c'est vers lui qu'il faut se tourner dès que la chose masquée est courte et devinable. L'autre remplace la zone par une seule couleur plate tirée de la zone elle-même — sa propre moyenne — de sorte qu'elle paraît adoucie plutôt que barrée de noir, ce que la plupart des gens attendaient du flou au départ. Les deux détruisent toute trace de la disposition de la zone, et nous l'avons vérifié plutôt que supposé : en relisant les pixels à chaque position du curseur de bord, tout le rectangle porte une seule valeur, à l'octet près, sur les quatre canaux. Rien à l'intérieur ne varie d'un endroit à l'autre, il ne reste donc rien à quoi comparer un candidat.

Le mode couleur moyenne laisse tout de même filtrer un nombre, et il vaut la peine de savoir exactement combien. Ce nombre est la teinte moyenne de la zone — en gros la quantité d'encre qu'elle contenait. En lançant contre lui la même attaque à dix mille candidats, les codes à quatre chiffres se sont réduits à vingt-quatre couleurs moyennes distinctes seulement, et la vraie valeur est ressortie dans un peloton de deux cent quarante-six à égalité, à l'identique, à chaque position du curseur de bord. Cela ramène dix mille possibilités à deux cents et quelques ; cela n'en désigne jamais une. Deux des dix mille n'ont pas de chance : 0000 porte plus d'encre que n'importe quelle autre combinaison et 7777 moins, si bien que chacune possède sa couleur moyenne à elle seule et serait rendue telle quelle. L'aplat n'a rien de tout cela, puisque la couleur que tu choisis n'a aucun rapport avec ce qui se trouvait dessous. Pour un code, une date de naissance ou un IBAN, c'est lui qu'il faut.

Comment caviarder pour que ça tienne

Privilégie l'aplat, et considère comme un signal d'alarme tout ce qui ressemble encore à l'original. La recherche indépendante va dans le même sens : la société de sécurité Bishop Fox, qui a construit un outil reconstituant du texte pixellisé, conclut que les barres opaques sont la seule méthode acceptable et cite le flou, le brouillage et la torsion à côté de la pixellisation parmi les choses à éviter. Nos propres mesures aboutissent à la même conclusion par l'autre bout, et c'est pourquoi deux des trois modes de cet outil n'existent plus. Si cela ressemble encore à l'original d'une façon quelconque, cela porte de l'information sur l'original — et c'est vrai dans tous les éditeurs que tu ouvriras, pas seulement dans celui-ci.

Deux habitudes rendent le reste sûr. Trace le rectangle plus grand que ce que tu masques — un bord qui coupe un chiffre en deux laisse voir le haut de ce chiffre, et le contour d'une mâchoire suffit à restreindre un visage. Et contrôle le fichier téléchargé plutôt que la vue d'édition : ouvre l'image exportée en taille réelle et zoome dans le rectangle. Si tu y distingues la moindre structure — des bandes, le fantôme d'un contour, des blocs de gris légèrement différents — le caviardage n'a pas pris. Un aplat zoomé à 800 pour cent est une seule couleur plate, et c'est cette platitude que tu vérifies.

L'attaque de récupération qui a fait disparaître deux des trois modes : 10 000 candidats à quatre chiffres, chacun passé dans la censure de l'outil et comparé à l'image publiée
Mode et réglageMeilleure correspondanceRang de la vraie valeurCandidats à égalitéTemps pour balayer les 10 000
Pixellisation, intensité 12 — retiréeExactement juste1 sur 10 00011,3 seconde
Pixellisation, intensité 30, le maximum — retiréeExactement juste1 sur 10 00011,5 seconde
Flou, intensité 12 — retiréExactement juste1 sur 10 000117,6 secondes
Flou, intensité 30, le maximum — retiréExactement juste1 sur 10 000140,3 secondes
Couleur moyenne, tous réglages de bord — actuelAucune meilleure — 246 à égalité, erreur nulleUn parmi 246 à égalité, jamais isolé2462,6 à 3,3 secondes
Aplat, toute couleur — actuelAucune meilleure — tout correspondait4 472 sur 10 000, donc sans significationLes 10 0001,6 seconde, sans rien apprendre
Censurer une imageCouvre une zone d'une image d'un aplat ou de sa couleur moyenne — irréversible, privé, dans ton navigateur.Essayer l'outil

Questions fréquentes

Le flou suffit-il parfois ?
Pas pour ce qu'on appelle un caviardage, et c'est pourquoi cet outil ne le propose plus. Le flou est une opération linéaire et déterministe : un attaquant qui peut deviner le contenu peut flouter sa supposition de la même façon et vérifier. Dans notre test, le flou le plus fort que l'outil proposait a rendu les chiffres cachés à l'identique, premier sur dix mille candidats, en quarante secondes. Le flou est un choix esthétique raisonnable pour un arrière-plan qu'on ne cherche pas à dissimuler ; ce n'est pas un moyen de cacher une valeur qui compte — ici comme dans n'importe quel autre éditeur.
Si la pixellisation jette de l'information, comment peut-on l'inverser ?
On ne l'inverse pas en défaisant le calcul — cela, c'est réellement impossible. On l'inverse en devinant vers l'avant. L'attaquant n'inverse rien : il fabrique un candidat, applique la même pixellisation et compare. L'information n'est perdue qu'au sens où plusieurs originaux donnent la même sortie ; quand les originaux plausibles se comptent en milliers et non en milliards, presque toujours un seul correspond. Un code à quatre chiffres offre dix mille possibilités. Une date de naissance, quelques dizaines de milliers. Ce ne sont pas de grands nombres pour une machine.
Puis-je censurer deux choses sur la même image ?
Oui — censure autant de zones que tu veux, l'une après l'autre, et toutes subsistent dans le téléchargement. Cela n'a pas toujours été le cas. L'outil redessinait l'original intact avant chaque censure, annulant discrètement la précédente, et nous l'avons confirmé en censurant deux zones tour à tour et en relisant les pixels : la première avait retrouvé sa couleur d'origine. C'est corrigé. Les censures s'accumulent désormais sur un seul bitmap de travail, le rectangle de sélection que tu traces est dessiné sur une copie et ne peut donc pas les abîmer, et le fichier téléchargé est ce bitmap — sans le contour rose.
Le fichier téléchargé contient-il encore l'original en dessous ?
Non. L'export est un PNG écrit depuis la grille de pixels du canvas, et en lisant les octets exportés il ne contenait que l'en-tête d'image, les données de pixels compressées et le marqueur de fin — aucun bloc de métadonnées, aucun aperçu incorporé, aucune seconde image. Cela signifie aussi que l'outil laisse tomber tout ce que portait le fichier source : la position, l'horodatage et les détails d'appareil d'une photo ne survivent pas dans la copie censurée. C'est un bénéfice collatéral plutôt que l'objectif, et mieux vaut le confirmer que le supposer si l'original est sensible pour d'autres raisons que le rectangle.
Et la vidéo — un visage pixellisé dans un clip est-il plus sûr ?
C'est généralement pire, pas mieux. Une image fixe donne à l'attaquant une mesure par bloc ; une vidéo en donne une par image, et si la caméra ou le sujet bouge un tant soit peu, la grille de blocs glisse sur le contenu et chaque image l'échantillonne un peu différemment. Des chercheurs de Positive Security l'ont démontré précisément ainsi, en stabilisant un clip pour figer la zone caviardée et en empilant les images pour récupérer une plaque d'immatriculation et un formulaire bancaire. S'il faut caviarder en vidéo, couvre la zone d'une forme opaque sur chaque image, et vérifie les images autour des coupes et des mouvements de caméra.

Articles qui pourraient t'intéresser

Tous les guides
ExplicationNettoyer les métadonnées d'une photo : ce qui part vraimentUn JPEG peut porter six blocs de métadonnées distincts, pas un. Nous avons fabriqué un fichier les contenant tous — coordonnées, numéro de série du boîtier, vignette cachée, XMP, IPTC, commentaire — l'avons passé au nettoyeur, et avons lu la sortie octet par octet pour voir ce qui subsistait.ExplicationLe filigrane : ce qu'il protège, et ce qu'il ne protège pasUne marque visible vit dans les pixels : elle survit donc à toute copie — et dégrade l'image pour tout spectateur honnête dans le même mouvement. Mesuré : ce que coûte une marque d'angle, ce que coûte une marque en pavage, et comment chacune se compare au crédit dans les métadonnées, aux Content Credentials et au filigrane invisible.TutorielExtraire quelques pages d'un relevé sans rien installerUn propriétaire veut la page 3. Un comptable veut janvier. Tu dois envoyer ces pages-là et pas les onze autres, et il y a un piège : la méthode évidente laisse les pages retirées à l'intérieur du fichier que tu envoies.TutorielCe que révèlent les données EXIF, et comment les supprimer correctementUn fichier photo transporte des coordonnées, un horodatage exact, l'appareil et l'objectif, et sur certains boîtiers un numéro de série. Voici ce que contient réellement le bloc, ce que le nettoyage règle et ne règle pas, et comment vérifier que cela a marché.TutorielComment compresser une image sans perdre en qualitéDes images plus légères se chargent plus vite et se classent mieux. Voici comment réduire une image intelligemment — format, résolution et niveau de compression — sans perte visible.TutorielEnvoyer un document à signer : le processus, pas le droitLa validité d'une signature dessinée se règle ailleurs. Ce qui décide si ton document est réellement signé, c'est l'ordre dans lequel tu sollicites les signataires, ce que consigne la piste d'audit, et six modes de défaillance qui n'ont rien de juridique.

Outils similaires

L'attaque de récupération décrite ici a été menée contre les algorithmes mêmes de cet outil en août 2026 — contre les deux modes qui en ont été retirés, puis de nouveau contre les deux qui restent — sur une zone synthétique dont l'ensemble de valeurs possibles était petit et connu ; des photographies réelles, des polices et des positions inconnues rendent la même attaque plus difficile, pas impossible. Rien ici ne garantit qu'un rectangle plein satisfasse une obligation légale ou contractuelle d'anonymisation, et les logiciels évoluent — vérifie toi-même le fichier exporté avant de publier ce qui ne doit pas être lu.

Sources

Tu as repéré une erreur dans cet article ?