Registre des traitements & conformité RGPD¶
Type de document : Registre des activités de traitement (Article 30 RGPD)
Réglementation : Règlement (UE) 2016/679 — RGPD
Version Repod : 1.x
Date de mise à jour : 2026-06-02
Responsable du document : Délégué à la Protection des Données (DPD) de l'organisation déployant Repod
Repod est un outil B2B auto-hébergé
Repod ne collecte aucune donnée pour le compte d'Anthropic ou de l'éditeur. L'organisation qui déploie Repod est seule responsable de traitement au sens de l'Article 4(7) RGPD. Ce document fournit le registre prérempli que cette organisation doit adapter et conserver.
1. Responsable de traitement¶
À compléter par l'organisation déployante :
| Champ | Valeur |
|---|---|
| Dénomination sociale | (À compléter) |
| Adresse du siège | (À compléter) |
| Contact DPD | (À compléter — obligatoire si article 37 applicable) |
| Représentant UE (si hors UE) | (À compléter si applicable) |
2. Registre des activités de traitement (Article 30 RGPD)¶
Traitement T-01 — Gestion des comptes utilisateurs¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Authentification et contrôle d'accès à l'interface d'administration Repod |
| Base légale | Intérêt légitime (Art. 6(1)(f)) — sécurité du système d'information interne |
| Catégories de personnes concernées | Employés et prestataires autorisés à gérer le dépôt APT interne |
| Catégories de données | Identifiant (username), adresse e-mail, hash bcrypt du mot de passe (non réversible), nom complet, rôle RBAC (admin, maintainer, uploader, auditor, reader), flag MFA, secret TOTP (chiffré), compteur d'échecs de connexion, horodatage de verrouillage, date de dernière connexion |
| Destinataires | Administrateurs Repod uniquement — aucun transfert vers des tiers |
| Transferts hors UE | Aucun (auto-hébergé) |
| Durée de conservation | Durée de la relation de travail/prestation + 1 an après désactivation du compte |
| Mesures de sécurité | bcrypt rounds=12, HMAC-SHA256 pour tokens API, MFA TOTP optionnel, lockout après 10 tentatives échouées, chiffrement au repos recommandé (LUKS/dm-crypt) |
| Fichier/base | repos/auth/users.db (SQLite WAL) |
Traitement T-02 — Journal d'authentification¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Détection des tentatives d'intrusion, forensics en cas d'incident de sécurité |
| Base légale | Obligation légale (Art. 6(1)(c)) — Article 32 RGPD (sécurité du traitement) ; intérêt légitime pour la détection d'intrusion |
| Catégories de personnes concernées | Toute personne tentant de s'authentifier sur l'instance Repod |
| Catégories de données | Adresse IP source, username saisi, résultat (SUCCESS/FAILURE), horodatage, type d'événement (LOGIN, LOGOUT, TOKEN_USE) |
| Destinataires | Administrateurs Repod, équipe SSI de l'organisation |
| Transferts hors UE | Aucun (auto-hébergé) |
| Durée de conservation | 90 jours par défaut (configurable via retention_days dans les paramètres Repod) |
| Mesures de sécurité | Logs JSONL append-only (aucune API de suppression), accès rôle auditor minimum |
| Fichier/base | repos/audit/audit_*.jsonl |
Traitement T-03 — Inventaire des clients SSH (agents)¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Inventaire des paquets installés sur les serveurs gérés, détection des paquets vulnérables |
| Base légale | Intérêt légitime (Art. 6(1)(f)) — gestion des vulnérabilités dans le parc informatique |
| Catégories de personnes concernées | Administrateurs systèmes responsables des serveurs enregistrés |
| Catégories de données | Adresse IP ou hostname du serveur, empreinte SHA-256 de la clé SSH hôte (TOFU), liste des paquets installés (nom + version), horodatage du dernier scan, OS/distribution |
| Destinataires | Administrateurs Repod, équipe SSI |
| Transferts hors UE | Aucun (auto-hébergé) |
| Durée de conservation | Durée de vie du serveur dans l'inventaire + 30 jours après suppression manuelle |
| Mesures de sécurité | Connexion SSH authentifiée par clé, politique TOFU avec détection de mismatch, aucun stockage de clé privée des serveurs cibles |
| Fichier/base | repos/auth/inventory.db (SQLite WAL) — tables clients, packages, ssh_known_hosts |
Traitement T-04 — Journal d'audit des actions métier¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Traçabilité réglementaire des opérations sur les paquets (upload, suppression, décisions RSSI, installation), conformité NIS2 Article 21 |
| Base légale | Obligation légale (Art. 6(1)(c)) pour les entités soumises à NIS2 ; intérêt légitime sinon |
| Catégories de personnes concernées | Utilisateurs Repod effectuant des actions (uploads, suppressions, décisions CVE) |
| Catégories de données | Username, rôle, action effectuée, résultat, nom du paquet concerné, version, détail technique, horodatage, adresse IP (si transmise par proxy) |
| Destinataires | Administrateurs Repod, auditeurs (auditor), équipe SSI, direction (rapports) |
| Transferts hors UE | Aucun (auto-hébergé) |
| Durée de conservation | 90 jours par défaut ; recommandé 1 an pour conformité NIS2 (retention_days=365) |
| Mesures de sécurité | Append-only, rôle auditor requis pour consultation, aucune API de modification |
| Fichier/base | repos/audit/audit_*.jsonl |
Traitement T-05 — Tokens d'API CI/CD¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Authentification des pipelines d'intégration continue sans mot de passe interactif |
| Base légale | Intérêt légitime (Art. 6(1)(f)) — automatisation sécurisée |
| Catégories de personnes concernées | Administrateurs créant les tokens (indirectement : identifiant du créateur conservé) |
| Catégories de données | Nom fonctionnel du token (ex: ci-pipeline-prod), rôle associé, identifiant du créateur (username admin), hash HMAC-SHA256 du token (non réversible), dates de création/expiration/dernière utilisation |
| Destinataires | Administrateurs Repod uniquement |
| Transferts hors UE | Aucun |
| Durée de conservation | Jusqu'à révocation explicite ou expiration ; suppression immédiate sur révocation |
| Mesures de sécurité | HMAC-SHA256 keyed sur JWT_SECRET_KEY, token jamais stocké en clair, préfixe repod_ pour identification, révocable à tout moment |
| Fichier/base | Table api_tokens dans repos/auth/users.db |
Traitement T-06 — Webhooks GitHub Advisory / CISA KEV¶
| Champ Article 30 | Détail |
|---|---|
| Finalité | Réception automatique d'alertes de vulnérabilités depuis des sources externes |
| Base légale | Intérêt légitime (Art. 6(1)(f)) — veille sur les vulnérabilités |
| Catégories de personnes concernées | Aucune personne physique directement concernée (données techniques uniquement) |
| Catégories de données | Métadonnées de CVE (ID, score CVSS, packages affectés), payload HMAC signé, timestamp de réception |
| Destinataires | Système Repod interne uniquement |
| Transferts hors UE | Données reçues depuis GitHub (US) — flux entrant uniquement, aucun renvoi |
| Durée de conservation | Identique aux CVE en base : durée de vie du paquet concerné |
| Mesures de sécurité | Vérification HMAC-SHA256 du WEBHOOK_SECRET sur chaque payload, rejet des payloads non signés |
| Fichier/base | Base CVE interne + logs d'audit |
3. Droits des personnes concernées¶
Tableau des droits applicables (Articles 15–22 RGPD)¶
| Droit | Applicable ? | Modalité d'exercice dans Repod |
|---|---|---|
| Accès (Art. 15) | ✅ | Export des données utilisateur via l'API GET /auth/users/{id} (admin) ou demande au DPD |
| Rectification (Art. 16) | ✅ | Modification via PATCH /auth/users/{id} par un admin ou le DPD |
| Effacement (Art. 17) | ⚠️ Partiel | Suppression du compte possible ; les logs d'audit sont conservés (obligation légale Art. 17(3)(b)) |
| Limitation (Art. 18) | ✅ | Désactivation du compte (is_active=false) sans suppression |
| Portabilité (Art. 20) | ✅ | Export JSON via API ou dump SQLite |
| Opposition (Art. 21) | ⚠️ | Applicable pour les logs d'authentification — demande à traiter par le DPD |
| Décision automatisée (Art. 22) | ✅ N/A | Aucune décision automatisée affectant les personnes (le lockout brute-force porte sur la sécurité système) |
Procédure d'exercice des droits¶
- La personne concernée adresse sa demande au DPD de l'organisation par e-mail ou formulaire interne.
- Le DPD dispose de 30 jours pour répondre (Art. 12(3) RGPD).
- Pour les opérations techniques (extraction, suppression), le DPD coordonne avec l'administrateur Repod.
- Toute demande d'exercice de droits est elle-même loguée dans le journal d'audit avec action
GDPR_REQUEST.
4. Mesures de sécurité techniques et organisationnelles (Article 32)¶
Mesures techniques implémentées dans Repod¶
| Mesure | Implémentation |
|---|---|
| Chiffrement des mots de passe | bcrypt avec 12 rounds de salt — irréversible |
| Chiffrement des tokens API | HMAC-SHA256 keyed sur JWT_SECRET_KEY — résistant aux rainbow tables |
| Authentification forte | MFA TOTP (RFC 6238) disponible, lockout après 10 tentatives échouées |
| Contrôle d'accès RBAC | 5 rôles avec principe de moindre privilège |
| Journalisation d'audit | Append-only JSONL, accès restreint au rôle auditor |
| SSH sécurisé | Politique TOFU avec détection de MitM (SSHHostKeyMismatchError) |
| Validation des webhooks | HMAC-SHA256 obligatoire en production (WEBHOOK_SECRET) |
| Scan antivirus | ClamAV sur chaque fichier uploadé |
| Scan de vulnérabilités | Grype (NVD + GitHub Advisory + CISA KEV) sur chaque upload |
| Transport chiffré | HTTPS/TLS recommandé via reverse proxy (voir documentation déploiement) |
| Intégrité des paquets | Signature GPG + vérification SHA-256 vs index upstream |
Mesures organisationnelles recommandées à l'organisation déployante¶
- Chiffrement du volume hébergeant
repos/(LUKS, dm-crypt, VeraCrypt) - Backup chiffré avec clé GPG dédiée (voir
backup.sh) - Cloisonnement réseau : Repod accessible uniquement depuis le réseau interne
- Politique de mot de passe (longueur minimale 12 caractères) appliquée via LDAP/AD
- Revue trimestrielle des comptes actifs et des tokens API
- Procédure de notification de violation de données (Art. 33 RGPD — 72h à la CNIL)
- Registre des incidents de sécurité tenu à jour
5. Durées de conservation — synthèse¶
| Données | Durée par défaut | Configuration | Base légale |
|---|---|---|---|
| Comptes utilisateurs actifs | Durée d'activité | Suppression manuelle | Nécessité contractuelle |
| Comptes désactivés | +1 an | Suppression manuelle | Intérêt légitime (audit) |
| Logs d'authentification | 90 jours | retention_days (settings) |
Art. 32 RGPD / NIS2 |
| Journal d'audit métier | 90 jours | retention_days (settings) |
Art. 32 RGPD / NIS2 |
| Tokens API | Jusqu'à révocation | expires_days à la création |
Nécessité fonctionnelle |
| Inventaire SSH | Durée de vie du serveur | Suppression manuelle | Intérêt légitime |
| Snapshots packages | 90 jours (anciens) | package_retention_days |
Intérêt légitime |
Recommandation NIS2
Pour les entités soumises à la directive NIS2, il est recommandé de configurer
retention_days = 365 afin de maintenir 12 mois d'historique d'audit.
6. Analyse d'impact relative à la protection des données (AIPD)¶
Évaluation du risque résiduel¶
Une AIPD formelle (Art. 35 RGPD) est requise si l'organisation déployante :
- Traite des données sensibles (Art. 9 RGPD) sur les serveurs inventoriés
- Déploie Repod pour gérer des paquets dans un contexte de santé, justice ou sécurité nationale
- Utilise Repod pour plus de 5 000 personnes concernées indirectement
Risques résiduels identifiés dans Repod v1.x :
| Risque | Probabilité | Impact | Mesure de mitigation |
|---|---|---|---|
Accès non autorisé à users.db (compromission serveur) |
Faible | Élevé | Chiffrement du volume + backup chiffré GPG |
| Exfiltration des logs d'audit via API | Très faible | Moyen | Rôle auditor requis, rate limiting |
| Réutilisation de token API compromis | Faible | Élevé | Révocation immédiate possible, expiration courte recommandée |
| Logs d'authentification contenant des IPs personnelles | Faible | Faible | Rétention 90 jours, pas d'export automatique |
| python-jose CVE-2024-33664 (JWT) | Moyen | Moyen | Migrer vers joserfc ou PyJWT — voir roadmap Sprint 3 |
7. Sous-traitants et transferts hors UE¶
Repod étant entièrement auto-hébergé, il n'y a aucun sous-traitant par défaut.
Exception — si l'organisation active les intégrations suivantes :
| Intégration | Sous-traitant | Pays | Mécanisme de transfert | Données transférées |
|---|---|---|---|---|
| GitHub Advisory webhook | GitHub, Inc. | États-Unis | SCC (Standard Contractual Clauses) | Métadonnées CVE uniquement (pas de données personnelles) |
| CISA KEV webhook | CISA (US Gov) | États-Unis | Pas de transfert (flux entrant public) | Aucune donnée personnelle |
| LDAP/Active Directory | Annuaire interne | (Interne) | N/A | Username, e-mail, groupes |
| SMTP (notifications e-mail) | Prestataire SMTP | (À compléter) | SCC si hors UE | Adresse e-mail du destinataire |
8. Politique de confidentialité utilisateur (modèle)¶
Ce modèle est à adapter et à publier à l'attention des utilisateurs de votre instance Repod.
Notice d'information — Traitement de vos données personnelles¶
Qui traite vos données ? [Nom de l'organisation], [adresse], responsable de traitement, met en œuvre Repod pour la gestion de son dépôt APT interne.
Pourquoi vos données sont-elles traitées ? Vos données (identifiant, e-mail, actions effectuées) sont traitées exclusivement pour : - Vous permettre d'accéder à l'outil selon vos habilitations ; - Assurer la traçabilité des opérations pour des raisons de sécurité et de conformité réglementaire.
Combien de temps ? Votre compte est conservé durant votre relation contractuelle avec [l'organisation] et supprimé dans l'année suivant sa désactivation. Les traces d'audit sont conservées [90 jours / 1 an — à compléter].
Quels sont vos droits ? Vous pouvez exercer vos droits d'accès, de rectification, d'effacement (dans les limites légales) et de limitation en contactant [adresse DPD]. Vous pouvez également saisir la CNIL (www.cnil.fr).
9. Annexe — Accord de traitement des données (DPA / Data Processing Agreement)¶
À utiliser si Repod est déployé par un prestataire pour le compte d'un client (relation responsable → sous-traitant).
Accord de traitement des données — modèle¶
Entre : - Le Responsable de traitement : [Nom du client], ci-après « le Client » - Le Sous-traitant : [Nom du prestataire déployant Repod], ci-après « le Prestataire »
Date d'entrée en vigueur : À compléter
Article 1 — Objet et durée¶
Le Prestataire traite des données personnelles pour le compte du Client dans le cadre du déploiement et de l'exploitation du logiciel Repod (gestionnaire de dépôt APT interne). Le présent accord entre en vigueur à la date de signature et reste en vigueur pour la durée du contrat principal.
Article 2 — Nature et finalité du traitement¶
| Paramètre | Détail |
|---|---|
| Nature | Stockage, consultation, suppression de données d'authentification et d'audit |
| Finalité | Exploitation du dépôt APT interne, traçabilité des opérations |
| Type de données | Voir registre des traitements §2 (T-01 à T-05) |
| Personnes concernées | Employés et prestataires du Client |
Article 3 — Obligations du Sous-traitant (Art. 28 RGPD)¶
Le Prestataire s'engage à :
- Ne traiter les données qu'aux seules fins définies à l'Article 2 et sur instruction documentée du Client.
- Garantir la confidentialité des données — les personnes autorisées à traiter les données sont soumises à une obligation de confidentialité.
- Mettre en œuvre les mesures de sécurité visées à l'Article 32 RGPD, notamment celles décrites au §4 du présent registre.
- Ne pas faire appel à un autre sous-traitant sans autorisation préalable écrite du Client. En cas d'autorisation, le même niveau de protection est imposé par contrat au sous-traitant ultérieur.
- Assister le Client dans l'exercice des droits des personnes concernées et dans ses obligations au titre des Articles 32 à 36 RGPD.
- Supprimer ou restituer toutes les données personnelles à l'issue du contrat, au choix du Client, et supprimer les copies existantes.
- Mettre à disposition toutes les informations nécessaires pour démontrer le respect des obligations RGPD et permettre les audits.
Article 4 — Obligations du Responsable de traitement¶
Le Client s'engage à :
- Fournir des instructions documentées et licites au Prestataire.
- Assurer l'information préalable des personnes concernées (§8 de ce document).
- S'assurer que le traitement dispose d'une base légale valide.
- Notifier toute violation de données à la CNIL dans le délai de 72 heures (Art. 33 RGPD).
Article 5 — Sécurité et violations de données¶
En cas de violation de données affectant les données personnelles du Client, le Prestataire notifie le Client dans les 24 heures suivant la détection, avec : - Nature de la violation - Catégories et volume de données concernées - Mesures prises ou envisagées
Article 6 — Droit applicable¶
Le présent accord est régi par le droit français. En cas de litige, les parties s'engagent à rechercher une solution amiable avant tout recours judiciaire.
Fin du registre des traitements et du modèle DPA.
Document à réviser annuellement ou lors de toute évolution significative des traitements.