Ce que cet outil garantit, et ce qu'il ne garantit pas
On confie un document à cet outil précisément parce qu'on ne veut le confier à personne d'autre. Voici donc ce qu'il promet, comment il vérifie son propre travail, la seule chose que cette vérification ne peut pas voir, et chacune de ses limites, nommée.
La promesse, et son périmètre
Deux affirmations, et tout ce qui suit existe pour les soutenir. La première : ce que vous caviardez est retiré du fichier, pas recouvert d'un rectangle. Une page portant un caviardage est rendue en image, les zones sont peintes sur l'image, et l'image remplace la page — cette page n'a donc plus aucune couche texte à sélectionner, à chercher ou à copier. La seconde : aucun fichier ne quitte votre navigateur. Le traitement se fait sur votre appareil, et il n'y a aucun serveur où envoyer un document.
Les pages sans caviardage sont recopiées intactes et restent sélectionnables. Les annotations, les pièces jointes, les miniatures et les métadonnées sont retirées du fichier produit.
Ce que l'outil vérifie lui-même
Avant de vous remettre quoi que ce soit, l'application relit son propre fichier de sortie et y cherche chaque chaîne qu'elle vient de caviarder — y compris tout fragment de quatre caractères ou plus, comparaison insensible aux espaces et à la casse. S'il en subsiste une, rien ne vous est remis : l'export est refusé, avec un message nommant ce qui a survécu. Il n'existe dans ce produit aucun chemin qui rende un fichier alors que cette vérification n'est pas passée.
La vérification inverse s'applique à ce qui est ajouté à une page : le texte que vous écrivez sur le document, et les étiquettes générées qui remplacent une valeur quand la pseudonymisation est active. Elles doivent se trouver dans le fichier produit, et l'export est refusé quand elles n'y sont pas. Un ajout retrouvé à moitié n'est pas la moitié d'un ajout : c'est un autre texte que celui que l'écran montrait.
Ce que cette vérification ne peut pas prouver
C'est la limite qui mérite d'être lue deux fois, et elle est dite ici plutôt qu'enterrée dans la liste plus bas. La vérification prouve qu'une chaîne n'est plus extractible du fichier. La page ayant été rendue en image à ce moment-là, ce contrôle ne voit pas un rectangle peint au mauvais endroit — un rectangle qui s'arrête avant les chiffres qu'il devait couvrir passe la vérification en les laissant parfaitement lisibles à l'œil.
C'est pourquoi chaque repli de ce code peint plus large que demandé plutôt que de deviner plus étroit : sur-caviarder est agaçant et borné, sous-caviarder est une fuite. Et c'est pourquoi l'application vous demande de regarder le fichier produit, page par page, avant de l'envoyer. C'est la seule vérification qu'elle ne peut pas faire à votre place.
Vérifiez-le vous-même
Trois gestes qui ne demandent de nous croire sur rien :
- Ouvrez les outils de développement de votre navigateur sur l'onglet Réseau, puis caviardez un document. Rien qui porte votre fichier n'en sort. Certains documents font bien chercher une police ou une table de caractères sur ce site pendant leur lecture — des fichiers fixes désignés par le PDF, qui ne portent rien de votre document — et vous les verrez.
- Coupez complètement le réseau et servez-vous de l'outil. Tout fonctionne, à une exception près, dite plus bas : la première reconnaissance optique doit télécharger son moteur.
- Passez le fichier produit dans le vérificateur de caviardage. C'est le même code de lecture, pointé sur la sortie, et il énumère le texte qui y reste extractible.
Au sujet du code source : il est sous licence MIT, et le dépôt est fermé pour le moment. L'argument « vérifiez le code vous-même » ne tient donc pas aujourd'hui, et prétendre le contraire serait la première chose de cette page que vous ne pourriez pas contrôler. Les trois gestes ci-dessus sont ce qui reste vérifiable sans nous, et ils valent mieux qu'une promesse.
Les limites connues, nommées
- Un fichier chiffré qui emploie aussi des flux d'objets est refusé, pas déchiffré. Le refus est l'issue honnête : l'analyser quand même produit un bruit qui ressemble à un document.
- Hors ligne, un document nommant une table de caractères prédéfinie perd une partie de son texte. Cette table ne peut venir que du réseau. L'application le dit à l'écran et prévient que sa vérification finale ne prouve rien sur la partie qu'elle n'a jamais lue.
- La reconnaissance optique n'écrit aucune couche texte dans le fichier produit, délibérément : ce serait une façon de plus pour une valeur d'être écrite à côté du rectangle censé la retirer. Une valeur mal reconnue n'est jamais proposée non plus, et l'écran ne peut pas vous dire lesquelles — d'où le bandeau qui demande de relire l'aperçu.
- Un profil enregistré survit à la session, avec ses termes en clair dans le stockage local de votre navigateur. C'est le seul endroit de ce produit où une donnée tirée d'un document dépasse la fermeture de l'onglet, et cela restreint l'affirmation selon laquelle rien ne reste derrière.
- Un motif maison peut figer le traitement d'un document. Une expression régulière ne peut pas être interrompue une fois lancée, et JavaScript n'offre aucun délai d'expiration. L'onglet reste vivant ; ce document, non.
- Le numéro de sécurité sociale américain n'a aucune somme de contrôle à valider, donc seule sa forme séparée est détectée. Une suite de neuf chiffres seule est laissée tranquille plutôt que de signaler tous les numéros de commande de tous les documents.
- Une police composite sans programme intégré ne dessine rien, et n'est pas remplacée : ses codes désignent des indices de glyphes dans le programme manquant, donc une police de substitution tracerait des lettres fausses avec assurance au lieu d'aucune.
- Le texte de droite à gauche, et le texte tracé avec un espacement de caractères, un espacement de mots ou une mise à l'échelle horizontale non standard, sont caviardés par fragment entier plutôt que découpés au caractère. Cela peint plus que ce qui était sélectionné, jamais moins.
Signaler une faille
Écrivez à
mmanseur@gmail.com, avec caviardeur security en
objet. Accusé de réception sous une semaine. N'en publiez rien avant que ce soit
corrigé.
N'y joignez pas de document réel. Quoi qu'ait déclenché le problème, reconstruisez-le avec de fausses données et envoyez cela — un signalement de fuite ne devrait pas en être une.
Ce qui compte ici comme faille, et non comme simple défaut :
- Une chaîne caviardée encore extractible du fichier exporté, sous n'importe quelle forme — flux de contenu, annotation, pièce jointe, miniature, métadonnée, mise à jour incrémentale, objet oublié par l'assainissement.
- Un rectangle de caviardage qui laisse lisible sur la page rendue le texte qu'il couvrait. C'est exactement le cas que la vérification finale ne rattrape pas.
- Toute requête réseau portant des octets du document, ou quoi que ce soit qui en dérive.
- Tout chemin qui rendrait un fichier à l'utilisateur alors que la vérification n'est pas passée.
Caviarder un PDF dans votre navigateur
Le traitement se fait sur votre appareil, et un rapport peut être produit à côté du document pour consigner ce qui a été traité.
Ouvrir Caviardeur
Caviardeur