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 — Développeur front-end et rédacteur Tech chez OneKitly
Performance web · Formats de fichiers
Vérifié à partir de 3 sources
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.
| Mode et réglage | Meilleure correspondance | Rang de la vraie valeur | Candidats à égalité | Temps pour balayer les 10 000 |
|---|---|---|---|---|
| Pixellisation, intensité 12 — retirée | Exactement juste | 1 sur 10 000 | 1 | 1,3 seconde |
| Pixellisation, intensité 30, le maximum — retirée | Exactement juste | 1 sur 10 000 | 1 | 1,5 seconde |
| Flou, intensité 12 — retiré | Exactement juste | 1 sur 10 000 | 1 | 17,6 secondes |
| Flou, intensité 30, le maximum — retiré | Exactement juste | 1 sur 10 000 | 1 | 40,3 secondes |
| Couleur moyenne, tous réglages de bord — actuel | Aucune meilleure — 246 à égalité, erreur nulle | Un parmi 246 à égalité, jamais isolé | 246 | 2,6 à 3,3 secondes |
| Aplat, toute couleur — actuel | Aucune meilleure — tout correspondait | 4 472 sur 10 000, donc sans signification | Les 10 000 | 1,6 seconde, sans rien apprendre |
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 →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 ?