Respecter le RGPD et la vie privée by design
Ce guide s'adresse à qui construit ou maintient déjà une application web et veut la mettre en conformité RGPD sans sur-ingénierie. Il suppose acquises les notions de base (donnée personnelle, base légale, responsable de traitement). L'objectif : des actions vérifiables, pas un exposé juridique.
Principe directeur : on ne protège bien que ce qu'on ne collecte pas. Chaque étape ci-dessous ramène à la minimisation.
1. Cartographier ce que vous traitez réellement
Avant toute mesure technique, faites l'inventaire honnête des données personnelles qui transitent par le système.
- Listez chaque champ personnel stocké et sa finalité. Si un champ n'a pas de finalité claire, supprimez-le.
- Distinguez les comptes authentifiés (e-mail, mot de passe haché, secret 2FA éventuel) du reste. Réduisez les champs au strict nécessaire à l'authentification.
- Vérifiez si vous traquez des visiteurs : une vitrine ou un site public en lecture anonyme peut souvent fonctionner sans cookie de suivi ni analytics. Si c'est le cas, ne posez rien.
- Notez explicitement l'absence de données de tiers quand elle est réelle : un environnement de dév ou de démonstration n'a pas à héberger de données clients.
Livrable de l'étape : un registre court (un tableau champ / finalité / durée) qui reflète la réalité, sans sur-déclaration.
2. Appliquer la minimisation dès la conception
Pour chaque nouveau formulaire, endpoint ou fonctionnalité, posez la question avant d'écrire le code : ai-je besoin de cette donnée pour la finalité ?
- Ne collectez aucun champ personnel au-delà du nécessaire.
- Préférez l'anonyme au pseudonyme, et le pseudonyme au nominatif.
- Par défaut, pas de traceur, pas de log applicatif contenant des données personnelles.
3. Sécuriser les secrets d'authentification
Le security by design est indissociable du privacy by design.
- Mots de passe : stockez-les uniquement via un algorithme de hachage fort et à jour (fonction native de hachage du framework, jamais un chiffrement réversible ni un hash rapide).
- Jetons d'API : ne stockez jamais le jeton en clair. Conservez uniquement son empreinte (hash cryptographique robuste), et prévoyez rotation et révocation.
- Double authentification (2FA) : proposez-la sur les comptes, au minimum sur les comptes à privilèges.
4. Chiffrer le transport de bout en bout
- Servez tout le trafic en HTTPS, sans exception.
- Activez HSTS et les en-têtes de sécurité HTTP standards.
- Vérifiez qu'aucune ressource n'est servie en clair (mixed content).
5. Outiller les droits des personnes
Même sur un périmètre réduit, prévoyez les mécanismes d'exercice des droits.
- Accès / rectification / suppression : offrez un point d'administration (ex. un écran de gestion des utilisateurs) permettant a minima la création et la consultation, puis l'édition et la suppression. Documentez qui peut agir.
- Conservation : définissez une durée. Le plus simple reste : pas de conservation au-delà de la vie du compte, et aucune archive de navigation.
6. Traiter le volet IA comme un traitement à part entière
L'ajout d'une brique IA ne doit pas rouvrir une brèche vie privée. Objectif : que la chaîne IA ne traite aucune donnée personnelle.
- Génération via une API LLM : n'envoyez au fournisseur que du contenu documentaire et des requêtes fonctionnelles — jamais de données personnelles. Filtrez / caviardez en amont ce qui part dans le prompt.
- Embeddings / index vectoriel : calculez-les localement sur vos contenus non personnels ; n'expédiez pas de données personnelles à un tiers pour vectorisation.
- Veille ou collecte agentique : restreignez les sources aux sources publiques (flux, sites officiels) ; ne collectez aucune donnée personnelle au passage.
- Traitez à part, au niveau doctrine, les questions de transferts hors UE, de base légale et de sous-traitance du fournisseur LLM : ce sont des décisions à documenter, pas des réglages de code.
7. Se relire de façon adverse
Avant de considérer la conformité acquise, relisez comme un attaquant ou un contrôleur :
- Existe-t-il un champ collecté sans finalité ? Un log qui fuite un e-mail ?
- Un jeton stocké en clair quelque part ? Un endpoint sans HTTPS ?
- Une donnée personnelle qui part discrètement dans un prompt LLM ?
Reprenez à l'étape correspondante tant qu'une réponse est « oui ».
Voir aussi
- Durcir les en-têtes HTTP de sécurité — transport et HSTS.
- Mettre en place la 2FA dans une application Symfony et Sécuriser une API par token haché (SHA-512) — gestion des comptes.
- Doctrine RGPD et IA (transferts, bases légales, sous-traitance) — pièce à créer.