Communiquer un document contenant des données personnelles sans l’avoir préalablement cavairdé constitue une violation de données au sens de l’article 33 du RGPD. Pourtant, la majorité des outils de « masquage » disponibles se limitent à poser un rectangle noir sur le texte, sans supprimer les données sous-jacentes dans le flux interne du PDF. Ce guide présente un outil de caviardage véritable : trois couches d’analyse (données identifiantes, quasi-identifiants, secret des affaires), suppression physique des contenus, et traçabilité DPO. Voici ce qu’il fait, comment s’en servir et ce qu’il consomme.
Note :
Le recours à cet outil sur claude.ai suppose qu’Anthropic est sous-traitant au sens de l’article 28 du RGPD. Avant de traiter des documents contenant des données personnelles (a fortiori des données de santé ou des données relatives à des mineurs), il faut s’assurer que :
- Un contrat de sous-traitance (DPA) est en place avec Anthropic — Anthropic en propose un, accessible depuis les paramètres de compte sur claude.ai.
- Les données traitées sont compatibles avec les engagements contractuels d’Anthropic (localisation, durée de conservation, finalités).
- La base légale du transfert vers les serveurs d’Anthropic (potentiellement hors UE) est documentée dans le registre de traitement.
Ce SKIL est il conforme au RGPD ?
Dans l’état actuel, si vous n’avez pas de DPA, c’est non conforme. Utiliser claude.ai pour traiter des documents contenant des données personnelles réelles sans contrat de sous-traitance avec Anthropic constitue une violation de l’article 28 du RGPD.
Avec un DPA signé avec Anthropic : ça devient défendable, sous conditions. Anthropic propose un Data Processing Agreement téléchargeable depuis les paramètres de compte. Ce DPA couvre le traitement en tant que sous-traitant, documente les garanties de transfert hors UE (clauses contractuelles types), et engage Anthropic sur la non-utilisation des données à des fins d’entraînement dans les plans payants.
Mais pour les données de l’article 9 (santé, mineurs), la question reste ouverte. Même avec un DPA, il faut vérifier que la base légale du traitement initial autorise ce sous-traitement, que l’AIPD a identifié ce flux, et que les garanties Anthropic sont suffisantes au regard du niveau de sensibilité. La CNIL ne s’est pas encore prononcée explicitement sur l’utilisation d’IA génératives hébergées hors UE pour le traitement de données de santé.
En pratique, pour un DPO externe, il y a trois cas :
Le premier : données courantes non sensibles (courriers RH, documents commerciaux) + DPA Anthropic en place = usage défendable, à documenter dans le registre.
https://www.anthropic.com/legal/data-processing-addendum
https://support.claude.com/en/articles/7996862-how-do-i-view-and-sign-your-data-processing-addendum-dpa
Le DPA Anthropic avec Clauses Contractuelles Types (CCT) est automatiquement incorporé dans les Conditions Commerciales d’utilisation. L’acceptation des Conditions Commerciales vaut acceptation du DPA. Il n’y a donc pas de signature séparée à obtenir, mais cela implique que le DPA ne s’applique qu’aux plans commerciaux (Claude for Work, API) et non aux plans grand public (Free, Pro).
Ce qui veut dire concrètement : si vous utilisez claude.ai avec un compte Pro ou Free pour traiter des documents contenant des données personnelles, vous êtes couvert par les conditions grand public, pas par le DPA commercial. Le cadre article 28 RGPD ne s’applique qu’à partir d’un plan Claude for Work (Team ou Enterprise) ou d’un accès via l’API.
Le deuxième : données de santé, données de mineurs, données judiciaires = utilisation de claude.ai déconseillée quelle que soit la situation contractuelle, jusqu’à clarification CNIL/EDPB. Le script local est la seule option propre.
Le troisième : usage sur documents fictifs ou déjà anonymisés pour tester le moteur = aucun problème, c’est exactement ce que vous avez fait ce matin avec les courriers-tests.
Nous fournissons ce SKIL a titre d’exemple, DPO PARTAGE déconseille sont utilisation sur des données réelles.
Pourquoi le masquage visuel ne suffit pas
Un PDF n’est pas une image : c’est un conteneur de flux structurés. Lorsqu’un logiciel de traitement de texte ou un outil en ligne pose un rectangle opaque sur un passage, il ne supprime pas le texte sous-jacent : celui-ci reste lisible par tout moteur d’extraction (copier-coller, pdftotext, PyMuPDF, etc.). Il suffit de slectionner le texte sous le rectangle ou d’ouvrir le fichier dans un lecteur basé sur le flux brut pour récupérer les données en clair.
La CNIL l’a rappelé à plusieurs reprises dans ses guides sur l’anonymisation : le caviardage réglementaire exige une suppression physique et irréversible du contenu dans le fichier, pas seulement un habillage graphique. La bibliothèque PyMuPDF met à disposition la méthode add_redact_annot() + apply_redactions(), qui supprime réellement les séquences de texte, de vecteurs et d’images visées : rien ne subsiste dans le flux interne du PDF.
Les trois couches d’analyse
L’outil applique systématiquement trois analyses distinctes sur chaque document.
| Couche | Fondement | Contenu analysé | Règle |
| C1 — Données directement identifiantes | RGPD art. 4 | Noms, dates de naissance, NIR, RPPS, adresses, téléphones, emails, SIRET, numéros de dossier | Caviardage systématique |
| C2 — Quasi-identifiants | RGPD considérant 26 + Guide CNIL | Eléments anodins seuls, discriminants combinés : profession rare, lieu, référence génomique, circonstance particulière | Score de risque 0-15 — caviardage si score ≥ 6 |
| C3 — Secret des affaires | Loi 2018-670 (L151-1 à L152-4 C. com.) | Stratégie commerciale, tarification, marge, portefeuille clients, savoir-faire technique | Alerte + caviardage si conditions cumulatives remplies |
La couche C2 est celle que les outils classiques ignorent systématiquement. Pourtant, le considérant 26 du RGPD est explicite : « il convient de prendre en compte l’ensemble des moyens raisonnablement susceptibles d’être utilisés pour identifier la personne concernée, soit directement, soit indirectement ». Un numéro de référence de labo génomique couplé à une pathologie ultra-rare (moins de 2 % de prévalence) constitue un identifiant indirect aussi puissant qu’un NIR.
Comment utiliser l’outil
1 Accès dans Claude (claude.ai)
L’outil est déclenché par la commande :
/caviardage-pdf
Pour l’utiliser :
- Ouvrir une conversation dans claude.ai
- Joindre le fichier PDF à caviarder (téléversement via le trombone)
- Taper la commande /caviardage-pdf
- Claude analyse le document, applique le caviardage véritable et produit : un PDF cavairdé + un rapport structuré de traçabilité DPO
2 Ce que l’outil produit
| Livrable | Format | Contenu |
| PDF cavairdé | Données physiquement supprimées, métadonnées purgées (auteur, créateur, XMP) | |
| Rapport de traçabilité | .txt | Détail zone par zone, couche par couche, avec action et justification |
| Score C2 | dans le rapport | Score de risque de réidentification par quasi-identifiant |
3 Profils disponibles
L’outil propose plusieurs profils d’analyse C1 adaptés au type de document :
| Profil | Usage typique | Patterns activés en plus du socle commun |
| rgpd | Courrier d’entreprise, RH, commercial | Email, téléphone, NIR, SIRET, IBAN, date naissance, IP, code postal |
| medical | Comptes rendus, dossiers de soin | Profil rgpd + RPPS, ADELI, numéro patient, codes CIM-10 |
| spst | Dossiers SPSTI, fichiers aptitude | Profil medical + numéro adhérent, APE/NAF, résultat aptitude |
| cada | Documents pour communication CADA | Profil rgpd + mentions secret, références internes, délibérations |
| À retenir — Caviardage véritable vs masquage visuel |
| ✓ Caviardage véritable (add_redact_annot + apply_redactions) : données irrémédiablement supprimées |
| ✗ Rectangle noir posé : données lisibles dans le flux PDF, risque de violation de données |
| ✓ Métadonnées purgées : auteur, créateur, date, XMP effacés du fichier produit |
| ✓ Rapport de traçabilité généré : conservation obligatoire 5 ans (art. 5 §2 RGPD) |
Ce que l’outil consomme
1 Ressources locales
L’outil s’appuie exclusivement sur PyMuPDF (alias fitz), bibliothèque Python open source distribuée sous licence AGPL 3. L’exécution est entièrement locale sur le serveur de traitement de Claude : le fichier PDF n’est pas transmis à un service tiers.
| Ressource | Consommation indicative | Remarque |
| CPU | Faible (< 1 s pour 4 pages) | Traitement séquentiel page par page |
| Mémoire vive | 15 à 50 Mo selon la taille du PDF | PyMuPDF maintient le document en mémoire pendant le traitement |
| Stockage temporaire | Égal à la taille du PDF source | Fichier de travail dans /home/claude, supprimé après livraison |
| Réseau | Néant | Aucun appel externe : tout est traité localement |
| Temps d’exécution | 1 à 10 secondes | Dépend du nombre de zones à caviarder et de la taille du PDF |
2 Consommation de fenêtre de contexte Claude
La commande /caviardage-pdf déclenche un traitement en plusieurs étapes qui mobilise la fenêtre de contexte de la façon suivante :
- Lecture du skill : chargement de la documentation méthodologique (environ 3 000 tokens)
- Analyse du document : le texte extrait du PDF est injecté dans le contexte (variable selon la longueur du document)
- Génération du script : le code Python de caviardage est écrit et exécuté localement
- Rapport : synthèse produite et injectée en fin de conversation
Un document de 4 pages dense en données (comme les courriers-tests utilisés pour valider cet outil) consomme entre 8 000 et 15 000 tokens de fenêtre de contexte. Pour un dossier de 20 pages, compter entre 30 000 et 50 000 tokens. Sur Claude Sonnet 4.6 (200 000 tokens de fenêtre), cela représente de 4 à 25 % de la capacité disponible.
3 Limites connues
- Les PDF numérisés (scan sans couche texte) nécessitent un pass OCR préalable. L’outil ne gère pas encore l’OCR en intégré.
- Les PDF avec sécurité (mot de passe propriétaire) doivent être déchiffrés avant traitement.
- Les données intégrées dans des images embarquées (logo avec email, tampon avec adresse) ne sont pas détectées par la recherche textuelle.
- Le mode interactif (validation zone par zone par le DPO) n’est pas encore disponible en interface graphique : la sélection de caviardage est paramétrée dans le script généré.
Cas d’usage recommandés
Cet outil répond à des situations concrètes rencontrées dans l’exercice de la mission DPO :
| Situation | Enjeu | Couches activées |
| Transmission d’un compte rendu médical à un confrère pour échange | Art. 33 RGPD + données de santé (art. 9) | C1 + C2 |
| Communication d’un rapport ASE au tribunal | Données relatives aux mineurs + secret | C1 + C2 |
| Réponse à une demande CADA (accès aux documents administratifs) | CRPA art. L311-7 + RGPD | C1 + C2 (profil cada) |
| Partage d’un dossier d’appel d’offres après contentieux | Secret des affaires loi 2018-670 | C1 + C3 |
| Publication d’une décision sanitaire anonymisée | Anonymisation RGPD considérant 26 | C1 + C2 (score k-anonymité) |
Le caviardage de documents PDF est l’une des obligations les moins bien matérisées dans la pratique DPO : beaucoup d’organismes croient caviarder alors qu’ils ne font que masquer. La distinction est de droit : un document « masqué » dont les données restent accessibles dans le flux interne constitue une donnée personnelle au sens de l’article 4 du RGPD, et sa communication sans consentement ou sans base légale adéquate peut caractériser une violation.
L’outil présenté ici répond à cette exigence avec trois niveaux d’analyse, une suppression physique certifiable, et un rapport de traçabilité exploitable dans le cadre de l’accountability (art. 5 §2 RGPD). Il ne remplace pas le jugement du DPO sur les zones à conserver ou à caviarder, mais il automatise la détection, élimine les oublis et produit une trace auditables.
| Action recommandée pour les DPO |
| 1. Vérifier la procédure interne de communication des documents : mentionne-t-elle explicitement le caviardage véritable ? |
| 2. Tester l’outil sur un document fictif avant de l’intégrer dans un processus métier. |
| 3. Conserver le rapport de traçabilité produit au même titre que le registre des traitements (durée : 5 ans). |
| 4. Pour les PDF numérisés : prévoir un pass OCR préalable (Tesseract ou service interne). |




































