Le caviardage réversible remplace chaque valeur identifiante par un code que le destinataire ne peut pas lire. Vous seul pouvez le relire, grâce à une table de correspondance restée sur votre poste. La commande Décoder rétablit ensuite les vraies valeurs. Toute la sûreté de la méthode tient donc au lieu où cette table est conservée.
Entre le nom en clair et le nom effacé
Un cabinet confie trois cents baux à un prestataire pour une revue de clauses. Un avocat transmet ses pièces à un expert, un médecin demande un second avis. Dans les trois cas, le document sort, et il faut retrouver les noms à son retour.
Le caviardage classique ne convient pas. Il retire la valeur pour de bon, si bien que le rapport qui revient ne renvoie plus qu'à des blancs. Envoyer la pièce telle quelle ne convient pas davantage. Le prestataire reçoit alors des données en clair et devient sous-traitant au sens de l'article 28 du RGPD. Pour l'avocat et le médecin, c'est en outre une révélation d'information secrète, que punit l'article 226-13 du code pénal.
Encoder se situe entre les deux. Chaque valeur est remplacée par un code, puis Décoder fait le chemin inverse, sur un fichier comme sur un texte collé. Le métier parle souvent de « jetons ». Dans promptShield, on parle de codes.
En droit, cette technique s'appelle la pseudonymisation. L'article 4, point 5), du RGPD exige que les informations permettant de retrouver la personne soient « conservées séparément » et protégées. Nous traitons le statut juridique de ces données dans notre article sur ce que le RGPD tient pour une donnée anonyme.
Comment se compose un code
Un code se compose d'un crochet ouvrant, d'une lettre qui indique le type de valeur, de caractères de remplissage et d'un crochet fermant. Par exemple, [P0ABCD] montre la forme d'un code, mais ne correspond à aucun nom précis. La lettre suit une table fixe, où B désigne uniquement l'IBAN :
| Lettre | Type de valeur |
|---|---|
| P | personne |
| O | organisation |
| A | adresse |
| L | lieu |
| D | date |
| E | adresse électronique |
| T | téléphone |
| S | numéro de sécurité sociale |
| B | IBAN |
| C | carte bancaire |
| I | adresse IP |
| R | permis de conduire |
| X | passeport |
| K | type personnalisé, ou identifiant sans lettre propre |
| U | type indéterminé |
La longueur du code suit celle du texte remplacé. Chaque caractère de remplissage est en outre choisi parmi des caractères de même largeur que celui qu'il remplace. Dans un PDF, le code est enfin étiré pour occuper exactement la place de l'original. La mise en page ne bouge donc pas.
Un code laisse ainsi deviner trois choses : le type de la valeur, sa longueur approximative et ses répétitions. En revanche, le remplissage dépend d'une clé secrète propre à chaque installation. Sans cette clé, personne ne peut calculer à l'avance les codes d'une liste de noms.
Jusqu'où un code reste le même
Dans un même dossier de la Bibliothèque, une valeur reçoit toujours le même code. Un expert ou un modèle de langage comprend ainsi que le bailleur de la page 3 est le signataire de la page 40. Dans un autre dossier, en revanche, la même valeur reçoit un autre code.
Les dossiers sont en effet cloisonnés : aucun ne voit les codes des autres. Le générateur procède même à un nouveau tirage pour qu'une valeur ne reçoive pas le même code dans deux dossiers. Le cas inverse est exclu : deux valeurs différentes ne reçoivent jamais le même code, car chaque code est unique dans tout le Registre de codes.
Ce cloisonnement a un coût, puisque vous ne pouvez pas suivre une personne d'un dossier à l'autre. Il vous protège en revanche si une pièce encodée s'égare : ses codes ne servent à rien sans le registre.
Une seule exception est prévue. Un code que vous ajoutez à la main dans les Paramètres, avec « Ajouter un code », vaut pour toute la Bibliothèque et pour la Protection du presse-papiers. Pour le reste, rangez dans un même dossier les pièces qui doivent partager leurs codes.
Où la table est conservée
Cette table, c'est le Registre de codes : un fichier SQLite sur votre poste. Il n'est pas chiffré, et c'est délibéré. En effet, quiconque peut lire ce fichier peut aussi lire les originaux, qui sont en clair sur le même disque. Il est donc protégé exactement comme le poste. Décoder le consulte d'ailleurs en local.
Si la pièce est couverte par le secret professionnel, notre article sur le caviardage de PDF juridiques sans cloud détaille les précautions.
L'application gratuite pour navigateur attribue ses codes selon les mêmes règles, et le document ne quitte pas non plus votre machine. Pourtant, la mention « 100 % hors ligne » est réservée à l'application de bureau. L'application pour navigateur envoie en effet un signal anonyme à son lancement. Quant au mode isolé de l'application de bureau, sans appel de licence ni rapport d'erreur, il relève de l'offre Pro.
L'export du registre
L'application permet d'exporter le Registre de codes sous la forme d'un fichier JSON en clair, qui met chaque code en regard de sa valeur. C'est le fichier à surveiller. Joint à la pièce encodée, il permet de retrouver chaque personne citée. La condition de conservation séparée posée par le RGPD n'est alors plus remplie. N'envoyez donc jamais les deux ensemble.
Le document téléchargé est nettoyé jusque dans ce que la page ne montre pas : métadonnées, texte alternatif, champs de formulaire. Ces emplacements reçoivent le code ou un marqueur neutre. Une vignette d'aperçu générée avant le caviardage est supprimée, puisqu'on ne peut pas remplacer du texte dans une image.
Encore faut-il que la valeur ait été repérée. Or aucun modèle local ne repère tous les identifiants, et la détection peut manquer un surnom ou des initiales. L'étape Réviser, où vous acceptez ou écartez chaque valeur, reste donc indispensable.
Ce que nous avions écrit
La version précédente de cet article affirmait qu'une valeur gardait son code dans tout un lot de documents, quel que soit le dossier. C'était faux : le code ne vaut que dans son dossier.
Questions fréquentes
Une donnée remplacée par un jeton reste-t-elle une donnée personnelle ?
Oui, pour celui qui détient la table : il s'agit d'une pseudonymisation au sens de l'article 4, point 5), du RGPD. Le considérant 26 maintient en effet dans le champ du règlement toute donnée rattachable à une personne. Selon la CNIL, seule une anonymisation irréversible fait sortir une donnée de ce champ.
Deux personnes différentes peuvent-elles avoir le même code ?
Non. Chaque code est unique dans tout le Registre de codes, quel que soit le dossier. Ce qui change d'un dossier à l'autre, c'est le code attribué à une même valeur. Seul un code ajouté à la main vaut pour tous vos dossiers.
Où la table de correspondance est-elle conservée ?
Dans le Registre de codes, un fichier SQLite local, sur le poste où vous avez encodé. Il n'est pas chiffré, puisque les originaux se trouvent déjà en clair sur le même disque.
Que se passe-t-il si j'exporte la table ?
Vous obtenez un fichier JSON en clair qui associe chaque code à sa valeur. Envoyé avec un document encodé, il permet de retrouver chaque personne citée.