Aller au contenu

PD-246 — Politique de conservation 50 ans — archivage WORM long terme (Code du travail)

Epic : LEGAL & COMPLIANCE (PD-217) Sprint : 10 Priorité : Medium Projet : infra


1. Contexte et motivation

1.1 GAP-4 — Obligation légale non couverte

Le document Architecture Executive (doc 43) stipule explicitement :

"Obligation légale : conservation 50 ans (Code du travail)"

Le cross-référencement des documents corporate (41, 42, 43) avec les spécifications techniques révèle qu'aucune story existante ne couvre la mise en place de cette politique de rétention à long terme au niveau infrastructure et cryptographique.

Les stories existantes traitent la production de preuves : - PD-38 — SHA3-256 (empreinte des documents) - PD-39 — TSA RFC 3161 (horodatage probatoire) - PD-40 — HSM rotation (rotation des clés de signature) - PD-52 — Ethereum ancrage (ancrage blockchain)

Mais aucune ne traite leur préservation probatoire sur un horizon de 50 ans.

1.2 Base légale

Texte Exigence
Code du travail art. R3243-5 Conservation des bulletins de paie pendant la durée de la vie active + 50 ans
ISO 14641 Systèmes d'archivage électronique à valeur probatoire
NF Z42-013 Archivage électronique — spécifications fonctionnelles
eIDAS Reconnaissance des cachets électroniques qualifiés dans le temps (LTV)

2. Objectif

Définir et implémenter la politique de conservation WORM long terme garantissant l'accès, l'intégrité et l'opposabilité juridique des documents ProbatioVault sur un horizon de 50 ans, conformément au Code du travail et aux normes ISO 14641 / NF Z42-013.


3. Périmètre

3.1 Inclus

  • Politique de rétention S3 WORM (Object Lock) — retention 50 ans non modifiable, mode COMPLIANCE
  • Long Term Validation (LTV) des signatures HSM et jetons TSA (renouvellement avant expiration)
  • Plan de renouvellement cryptographique sur 50 ans (gestion de la déprécation algorithmique)
  • Re-ancrage blockchain périodique des preuves (re-timestamping sur Ethereum L2)
  • Audit périodique d'intégrité WORM (checksum automatisé, fréquence : annuelle minimum)
  • Procédure de migration en cas de déprécation d'algorithme (SHA3-256, ECDSA P-384)
  • SLA de disponibilité des archives sur 50 ans (multi-région, multi-provider)
  • Documentation de la chaîne de custody pour usage probatoire

3.2 Exclus

  • Production des preuves initiales (PD-38, PD-39, PD-52)
  • Rotation HSM opérationnelle (PD-40)
  • Format des preuves (PD-245)
  • Droits RGPD d'effacement (conflit avec conservation 50 ans — traité séparément)

4. Composants techniques

4.1 S3 WORM Object Lock — Configuration COMPLIANCE

resource "aws_s3_bucket_object_lock_configuration" "worm_50_ans" {
  bucket = aws_s3_bucket.probatiovault_archives.id

  rule {
    default_retention {
      mode  = "COMPLIANCE"
      years = 50
    }
  }
}

Caractéristiques : - Mode COMPLIANCE : aucun utilisateur, y compris root AWS, ne peut supprimer l'objet pendant la période de rétention - Mode GOVERNANCE exclu : des privilèges spéciaux permettraient de contourner la rétention - Multi-région : réplication S3 Cross-Region (eu-west-3 Paris + eu-central-1 Frankfurt minimum)

4.2 Long Term Validation (LTV)

La LTV garantit la validité des preuves cryptographiques après expiration des certificats d'origine.

Principe : Avant qu'un certificat TSA ou HSM expire, les informations de validation (état de révocation OCSP/CRL, chaîne de certification complète) sont archivées avec la preuve, permettant une vérification ultérieure sans dépendance au service de révocation d'origine.

Processus automatisé : 1. Scanner les jetons TSA dont le certificat expire dans < 12 mois 2. Collecter et archiver la chaîne de certification complète (OCSP stappling) 3. Produire un jeton TSA de re-cachetage (re-timestamping) sur l'archive LTV 4. Mettre à jour le registre des preuves

4.3 Plan de renouvellement cryptographique

Algorithme Statut actuel Horizon déprécation estimé Action
SHA3-256 Actif (PD-38) ~2040+ Migration vers SHA3-512 si besoin
ECDSA P-384 Actif (PD-39) ~2035+ Migration vers ECDSA P-521 ou Ed448
SHA-256 (Merkle) Actif (PD-39) ~2035 Migration vers SHA-384

Règle : Tout changement d'algorithme DOIT être accompagné d'une procédure de re-scellement des preuves existantes avec le nouvel algorithme, garantissant la continuité de la chaîne de preuve.

4.4 Re-ancrage blockchain périodique

Les preuves ancrées sur Ethereum L2 (via PD-52) DOIVENT faire l'objet d'un re-ancrage périodique pour maintenir leur opposabilité dans le temps.

Fréquence recommandée : tous les 5 ans (configurable selon évolution réglementaire).

Processus : 1. Récupérer le Merkle root des preuves de la période 2. Calculer un hash agrégé des archives WORM 3. Soumettre une nouvelle transaction Ethereum L2 avec ce hash 4. Archiver la preuve de re-ancrage avec les archives existantes

4.5 Audit d'intégrité WORM

Objectif : Détecter toute corruption silencieuse des archives (bit rot, défaillance matérielle).

Processus automatisé (annuel minimum) :

1. Lister tous les objets S3 avec leur checksum (MD5 + SHA-256)
2. Comparer avec les checksums archivés au moment du dépôt
3. Alerter sur tout écart (PagerDuty + Jira ticket automatique)
4. Rapport d'intégrité archivé et signé TSA


4bis. Diagrammes Mermaid

4bis.1 Diagramme d'états — Cycle de vie d'une preuve archivée (50 ans)

Une preuve archivée traverse plusieurs états au cours de sa conservation longue durée. Les transitions sont déclenchées par les processus automatisés (LTV, re-ancrage, audit, migration).

stateDiagram-v2
    [*] --> ARCHIVED : Dépôt WORM S3 COMPLIANCE
    ARCHIVED --> LTV_PENDING : Certificat TSA expire < 12 mois
    LTV_PENDING --> LTV_RENEWED : Re-cachetage TSA réussi [INV-246-02]
    LTV_RENEWED --> ARCHIVED : Registre mis à jour
    ARCHIVED --> REANCHOR_PENDING : Cycle 5 ans atteint
    REANCHOR_PENDING --> REANCHORED : Tx Ethereum L2 confirmée
    REANCHORED --> ARCHIVED : Preuve re-ancrage archivée
    ARCHIVED --> AUDIT_OK : Audit intégrité annuel — checksums valides [INV-246-03]
    AUDIT_OK --> ARCHIVED : Rapport signé TSA archivé
    ARCHIVED --> CORRUPTED : Audit intégrité — checksum divergent
    CORRUPTED --> INCIDENT : Alerte PagerDuty + ticket Jira
    ARCHIVED --> MIGRATION_PENDING : Algorithme déclaré déprécié
    MIGRATION_PENDING --> MIGRATED : Re-scellement nouvel algo [INV-246-04]
    MIGRATED --> ARCHIVED : Chaîne de preuve vérifiée

    note right of ARCHIVED
        État nominal — objet WORM
        non supprimable [INV-246-01, INV-246-05]
    end note

    note right of CORRUPTED
        État terminal anomalie
        Procédure incident obligatoire
    end note

4bis.2 Diagramme de séquence — Processus LTV (renouvellement avant expiration)

Le processus LTV implique le scheduler, le service LTV, le TSA, le HSM, le stockage S3 WORM et le registre de preuves. Ce flux garantit INV-246-02 (LTV avant expiration) et INV-246-01 (conservation WORM).

sequenceDiagram
    participant Scheduler as LTV Scheduler
    participant LTV as LTV Service
    participant S3 as S3 WORM (COMPLIANCE)
    participant TSA as TSA RFC 3161
    participant HSM as HSM PKCS#11
    participant Registry as Registre Preuves

    Scheduler->>LTV: Déclenchement périodique (cron)
    LTV->>Registry: Scanner jetons TSA expirant < 12 mois
    Registry-->>LTV: Liste jetons à renouveler

    loop Pour chaque jeton expirant
        LTV->>TSA: Récupérer chaîne certification complète (OCSP stapling)
        TSA-->>LTV: Chaîne + état révocation
        LTV->>S3: Archiver informations LTV avec preuve originale [INV-246-01]
        S3-->>LTV: Confirmation Object Lock COMPLIANCE
        LTV->>HSM: Signer archive LTV (ECDSA P-384)
        HSM-->>LTV: Signature
        LTV->>TSA: Produire jeton re-cachetage [INV-246-02]
        TSA-->>LTV: Nouveau jeton TSA
        LTV->>S3: Archiver jeton re-cachetage [INV-246-05]
        LTV->>Registry: Mettre à jour registre
    end

    LTV-->>Scheduler: Rapport LTV (nb renouvelés, erreurs)

4bis.3 Diagramme de séquence — Re-ancrage blockchain périodique (5 ans)

Le re-ancrage maintient l'opposabilité des preuves sur Ethereum L2 dans le temps, conformément à INV-246-04 (chaîne de preuve valide après migration).

sequenceDiagram
    participant Scheduler as Re-anchor Scheduler
    participant Audit as Integrity Audit Service
    participant S3 as S3 WORM (COMPLIANCE)
    participant Merkle as Merkle Service
    participant ETH as Ethereum L2 (PD-52)
    participant Registry as Registre Preuves

    Scheduler->>Audit: Déclenchement cycle 5 ans
    Audit->>S3: Calculer hash agrégé archives WORM [INV-246-03]
    S3-->>Audit: Checksums objets période
    Audit->>Merkle: Récupérer Merkle root preuves période
    Merkle-->>Audit: Merkle root
    Audit->>Audit: Construire payload (hash agrégé + Merkle root)
    Audit->>ETH: Soumettre transaction re-ancrage
    ETH-->>Audit: Tx hash + block confirmation
    Audit->>S3: Archiver preuve re-ancrage [INV-246-01, INV-246-05]
    Audit->>Registry: Enregistrer re-ancrage (tx hash, block, date)
    Audit-->>Scheduler: Rapport re-ancrage

5. Invariants

ID Règle
INV-246-01 Tout document archivé DOIT être conservé en mode WORM pendant 50 ans minimum
INV-246-02 Les signatures et jetons TSA DOIVENT faire l'objet d'une LTV avant expiration
INV-246-03 Un audit d'intégrité automatisé DOIT être effectué au minimum annuellement
INV-246-04 La chaîne de preuve DOIT rester valide après migration cryptographique
INV-246-05 Aucune suppression physique NE PEUT intervenir pendant la période de rétention légale

6. Critères d'acceptation

  • CA-246-01 : Les buckets S3 sont configurés avec Object Lock en mode COMPLIANCE, retention 50 ans
  • CA-246-02 : Un processus LTV renouvelle les preuves de signature avant expiration des certificats
  • CA-246-03 : Un audit d'intégrité annuel automatisé vérifie les checksums WORM
  • CA-246-04 : Un plan de migration cryptographique documenté couvre les scénarios de déprécation algo
  • CA-246-05 : La politique de rétention est documentée et opposable (certification ISO 14641)

7. Scénarios de test

Scénario 1 — Configuration WORM non contournable

Given un bucket S3 configuré en mode COMPLIANCE avec rétention 50 ans When une tentative de suppression d'un objet est effectuée (y compris par root AWS) Then la suppression est refusée avec erreur ObjectLockConfigurationNotFoundError

Scénario 2 — Processus LTV déclenché avant expiration

Given un jeton TSA dont le certificat expire dans 11 mois When le processus LTV automatisé s'exécute Then un re-cachetage TSA est produit et archivé avec la preuve originale

Scénario 3 — Audit d'intégrité — checksum valide

Given une archive WORM déposée avec son checksum SHA-256 When l'audit annuel s'exécute Then le checksum calculé correspond au checksum archivé et aucune alerte n'est levée

Scénario 4 — Audit d'intégrité — corruption détectée

Given une archive WORM dont les bits ont été corrompus (simulation) When l'audit annuel s'exécute Then une alerte PagerDuty est levée et un ticket Jira est créé automatiquement

Scénario 5 — Migration cryptographique

Given l'algorithme SHA3-256 est déclaré déprécié When la procédure de migration est exécutée Then toutes les preuves existantes sont re-scellées avec le nouvel algorithme et la chaîne de preuve reste vérifiable


8. Fichiers impactés

Fichier Type de modification
terraform/modules/storage/s3-worm.tf Configuration Object Lock COMPLIANCE 50 ans
terraform/modules/storage/s3-replication.tf Réplication multi-région
src/modules/ltv/ltv.service.ts Service LTV — renouvellement automatique
src/modules/ltv/ltv.scheduler.ts Scheduler — déclenchement périodique
src/modules/audit/integrity-audit.service.ts Audit d'intégrité WORM
src/modules/audit/integrity-audit.scheduler.ts Scheduler audit annuel
docs/legal/politique-retention-50-ans.md Documentation opposable ISO 14641

9. Dépendances

Story Direction Nature
PD-38 ← backward SHA3-256 — empreinte à conserver
PD-39 ← backward TSA RFC 3161 — jetons à renouveler (LTV)
PD-40 ← backward HSM rotation — clés de signature à maintenir
PD-52 ← backward Ethereum ancrage — merkleroot à re-ancrer périodiquement

10. Références normatives

  • Code du travail art. R3243-5Conservation des bulletins de paie
  • ISO 14641 — Systèmes d'archivage électronique à valeur probatoire
  • NF Z42-013 — Archivage électronique — spécifications fonctionnelles
  • eIDAS art. 42 — Cachets électroniques qualifiés (Règlement UE 910/2014)
  • RFC 3161 — Time-Stamp Protocol (TSP) — renouvellement LTV
  • AWS S3 Object Lock — Mode COMPLIANCE pour rétention immuable

Fin de la spécification PD-246.