Aller au contenu

PD-79 — Expression de Besoin

Metadata

Champ Valeur
Story ID PD-79
Epic PD-185 (B2C-MINEURS)
Titre Configurer catégorie B2C_EVIDENCE_MINOR dans PD-60
Auteur Claude (Orchestrateur)
Date 2026-02-16
Version 2.0

1. Nature du document

Ce document constitue une Expression de Besoin. Il décrit ce qui doit être garanti du point de vue fonctionnel, probatoire et juridique. Il ne décrit pas comment cela sera implémenté techniquement.


0. Décision architecturale fondamentale

Positionnement stratégique de ProbatioVault

ProbatioVault ne juge pas. ProbatioVault ne qualifie pas. ProbatioVault ne signale pas. ProbatioVault fige et prouve.

ProbatioVault est une infrastructure neutre de scellement probatoire zero-knowledge. Ce positionnement est invariant quel que soit le contexte (B2B, B2C, mineurs).

Architecture cible

Aspect Décision
Endpoint Réutiliser POST /documents/upload (PD-60)
Moteur probatoire Unique — pas de duplication
Différentiation Catégorie documentaire B2C_EVIDENCE_MINOR
Engagement Neutre — même acte juridique que tout dépôt

Ce que PD-79 N'EST PAS

  • ❌ Un nouvel endpoint /api/b2c/evidence/upload
  • ❌ Un régime probatoire différent
  • ❌ Un service de signalement
  • ❌ Un service de qualification juridique
  • ❌ Un déclencheur automatique d'action

Ce que PD-79 EST

  • ✅ Une catégorie documentaire déclarative (B2C_EVIDENCE_MINOR)
  • ✅ Des formats autorisés spécifiques (images, audio, vidéo)
  • ✅ Des règles de configuration (taille max, types MIME)
  • ✅ Une journalisation renforcée (audit d'accès)
  • ✅ Des permissions configurables (supervision parentale future)

Justification juridique

Si ProbatioVault spécialisait le cas mineur avec un régime probatoire différent : - Risque d'endosser une responsabilité implicite - Perception comme "acteur de protection" - Obligations supplémentaires potentielles

Le modèle actuel garantit une robustesse face aux autorités, parents, avocats et contestations futures.


2. Contexte stratégique

ProbatioVault a pour mission de garantir la preuve d'existence et d'intégrité des documents numériques dans un contexte souverain et conforme eIDAS / NF Z42-013.

Dans le cadre de l'EPIC PD-185 — B2C-MINEURS, la plateforme doit permettre à un mineur (ou à son représentant légal) de :

  • Déposer une preuve numérique sensible
  • Obtenir un scellement probatoire immédiat
  • Garantir l'intégrité, la traçabilité et la recevabilité future

Cas d'usage prioritaires

Cas Description
Harcèlement scolaire Screenshots de messages, conversations
Cyberharcèlement Captures réseaux sociaux, menaces
Diffusion non consentie Images/vidéos partagées sans accord
Preuve d'échanges Conversations audio/vidéo

3. Objectif fonctionnel

Permettre à un utilisateur B2C (mineur ou représentant légal) de :

  1. Transmettre une preuve numérique via un endpoint sécurisé
  2. Faire valider automatiquement la nature du fichier
  3. Obtenir un scellement probatoire immédiat (< 1 seconde)
  4. Recevoir un identifiant de preuve vérifiable ultérieurement

4. Périmètre fonctionnel

4.1 Endpoint cible (réutilisation PD-60)

POST /documents/upload
Content-Type: multipart/form-data
Authorization: Bearer <JWT>

Body (multipart):
- file: <binary>
- category: "B2C_EVIDENCE_MINOR"  // <-- Nouveau champ
- description: "..." (optionnel)

L'endpoint existant /documents/upload est réutilisé. La différenciation se fait via le champ category.

4.2 Types de preuves acceptées (catégorie B2C_EVIDENCE_MINOR)

Type Extensions MIME Types
Image PNG, JPEG, JPG image/png, image/jpeg
Audio M4A, MP3, WAV audio/mp4, audio/mpeg, audio/wav
Vidéo MP4, MOV video/mp4, video/quicktime

4.3 Limites techniques

Paramètre Valeur Justification
Taille maximale 100 Mo Permet vidéos 1-2 min qualité moyenne
Délai scellement < 1 seconde Expérience utilisateur instantanée
Formats exécutables REJETÉS Sécurité anti-malware

4.4 Données associées à l'upload

Donnée Source Obligatoire
Identifiant utilisateur JWT (sub claim) Oui
Identifiant coffre JWT (coffre par défaut) Oui
Type MIME Header Content-Type Oui
Taille fichier Calculée Oui
Timestamp réception Serveur (UTC) Oui
Description courte Body (optionnel) Non

5. Exigences fonctionnelles

5.1 Catégorie documentaire (F-79-01)

Créer une nouvelle catégorie documentaire dans le système PD-60 :

category: B2C_EVIDENCE_MINOR
label: "Preuve B2C - Mineur"
description: "Preuves sensibles dans un contexte de protection mineur"

Cette catégorie DOIT être : - Déclarative (pas de régime probatoire différent) - Configurable (formats, tailles, permissions) - Auditable (journalisation renforcée)

5.2 Formats autorisés par catégorie (F-79-02)

Pour la catégorie B2C_EVIDENCE_MINOR, les formats autorisés sont restreints :

Type Extensions MIME Types
Image PNG, JPEG, JPG image/png, image/jpeg
Audio M4A, MP3, WAV audio/mp4, audio/mpeg, audio/wav
Vidéo MP4, MOV video/mp4, video/quicktime

Le système DOIT : - Valider le type MIME contre la whitelist de la catégorie - Analyser les magic bytes pour détecter les fichiers déguisés - Rejeter les formats non autorisés avec message explicite

5.3 Taille maximale par catégorie (F-79-03)

Pour la catégorie B2C_EVIDENCE_MINOR : - Taille maximale : 100 Mo - Rejet avec HTTP 413 si dépassement

5.4 Scellement probatoire (F-79-04 — héritée de PD-60)

Le moteur probatoire de PD-60 s'applique sans modification :

  1. Générer empreinte SHA-3-256
  2. Inscrire dans journal append-only (PD-31)
  3. Intégrer à l'ancrage périodique (Merkle tree)
  4. Retourner confirmation

Objectif de performance : < 1 seconde (SLA spécifique à cette catégorie)

5.5 Réponse API (F-79-05 — identique à PD-60)

En cas de succès (HTTP 201 Created) :

{
  "evidenceId": "ev_01HXYZ...",
  "status": "SEALED",
  "hash": "sha3-256:abc123...",
  "timestamp": "2026-02-16T14:30:00.000Z",
  "cofferId": "coffre_01HXYZ...",
  "metadata": {
    "mimeType": "image/png",
    "size": 1234567,
    "filename": "screenshot.png"
  }
}

En cas de rejet (HTTP 400/413/415) :

{
  "error": "VALIDATION_FAILED",
  "code": "FILE_TOO_LARGE",
  "message": "File size exceeds maximum allowed (100 MB)",
  "maxSize": 104857600
}

6. Contraintes spécifiques au cas mineur

Conformément à l'architecture B2C-MINEURS, le système DOIT :

Contrainte Description
Paternité probatoire La preuve est rattachée au mineur (sub du JWT)
Supervision parentale Le représentant légal peut accéder aux preuves via son propre compte
Journalisation complète Tout accès ou transfert est journalisé (append-only)
Confidentialité Aucun tiers ne peut accéder aux preuves sans autorisation explicite

7. Invariants non négociables

ID Invariant Type
INV-79-01 Aucun fichier en clair ne doit être accessible côté serveur SÉCURITÉ
INV-79-02 Aucun upload non scellé ne doit persister PROBATOIRE
INV-79-03 Aucune modification ultérieure du fichier original ne doit être possible INTÉGRITÉ
INV-79-04 Aucun effacement silencieux ne doit être autorisé TRAÇABILITÉ
INV-79-05 Chaque preuve doit être traçable indépendamment de la plateforme PORTABILITÉ
INV-79-06 Le scellement doit être complété en moins d'1 seconde PERFORMANCE

8. Tensions identifiées (arbitrages requis)

8.1 Rapidité vs profondeur d'analyse

Aspect Contrainte
Besoin Scellement immédiat (< 1s)
Risque Analyse antivirus complète peut prendre > 1s
Arbitrage proposé Analyse légère synchrone + analyse complète asynchrone

8.2 Confidentialité vs supervision parentale

Aspect Contrainte
Besoin Mineur protégé, preuve sensible
Besoin concurrent Parent responsable légal, droit de regard
Arbitrage proposé Accès parent journalisé, notification au mineur

8.3 Taille des fichiers vs usage réel

Aspect Contrainte
Besoin Vidéos potentiellement volumineuses
Contrainte Limite 100 Mo imposée
Arbitrage proposé Upload multipart pour fichiers > 100 Mo (future US)

9. Résultats attendus

À l'issue de l'appel POST réussi :

  • ✅ Statut clair (201 Created ou erreur motivée)
  • ✅ Identifiant unique de preuve
  • ✅ Confirmation de scellement avec hash
  • ✅ Disponibilité immédiate dans le coffre

10. Résultats inacceptables

  • ❌ Upload accepté sans scellement
  • ❌ Scellement différé sans traçabilité
  • ❌ Fichier modifiable après dépôt
  • ❌ Absence d'horodatage certifié
  • ❌ Absence de journalisation append-only
  • ❌ Délai de scellement > 1 seconde

11. Dépendances identifiées

Story Module Type Description
PD-60 Document EXTENSION Réutilisation complète du moteur probatoire
PD-31 Audit Log Transitive (via PD-60) Journal append-only, hash chain
PD-38 Crypto Transitive (via PD-60) Hash probatoire SHA-3
PD-43 Storage Transitive (via PD-60) Upload S3, streaming

PD-60 est la dépendance principale. PD-79 ne crée pas de nouveau moteur probatoire mais configure une nouvelle catégorie dans le système existant.


12. Enjeux stratégiques

Cette user story est structurante car elle :

  • Concrétise l'offre B2C-MINEURS
  • Rend ProbatioVault utilisable en situation d'urgence
  • Donne une valeur probatoire immédiate
  • Renforce la crédibilité face aux cas de harcèlement

Elle constitue un point d'entrée stratégique pour la phase 2026–2027.


13. Synthèse finale

PD-79 configure une catégorie documentaire B2C_EVIDENCE_MINOR dans le moteur probatoire existant (PD-60), permettant de déposer des preuves numériques sensibles (images, audio, vidéo) avec validation de format, scellement immédiat (< 1s), et garantie de recevabilité future.

Positionnement stratégique : ProbatioVault reste une infrastructure neutre de preuve. La catégorie B2C mineur n'implique aucun régime probatoire différent, aucune qualification juridique, aucun signalement automatique.


Validation PO

Critère Status
Clarifications complètes
Décision architecturale validée ✅ (réutilisation PD-60)
Positionnement stratégique ✅ (neutralité)
Validation finale ✅ (2026-02-16)