Je vais analyser les deux documents en tant qu'auditeur technique indépendant.
PD-252 — Specification Review¶
Résultats de l'audit¶
Point 1¶
Type : Contradiction
Référence : §5.7 (matrice légale, ligne "Données techniques") vs INV-252-03 + §5.4b
Description : La ligne "Données techniques" affiche le niveau "COMPLETE/BITSTREAM" dans la colonne Niveau. Or INV-252-03 exige "chaque format DOIT être associé à un niveau de preservation unique". Bien que §5.4b détaille les niveaux par format (JSON=COMPLETE, CSV=BITSTREAM, etc.), la matrice §5.7 agrège en "COMPLETE/BITSTREAM" — ce qui introduit une valeur composite absente de l'enum §5.1 (`COMPLETE|BITSTREAM`). Un auditeur tiers lisant uniquement §5.7 ne peut pas déterminer quel format a quel niveau.
Impact : Ambiguïté contractuelle — la matrice §5.7 prise isolément viole INV-252-03.
Gravité : Majeur
Point 2¶
Type : Ambiguïté
Référence : §5.7 (ligne "Preuves numériques (mineurs)"), §5.1 (retentionDuration)
Description : La durée "variable" n'est pas une valeur ISO 8601 et ne satisfait pas la regex contractuelle `^P(\d+Y|\d+M|\d+D)$`. Aucune borne min/max n'est définie. La spec ne précise pas quel mécanisme ou quelle source détermine la durée effective, ni si "variable" signifie "définie au cas par cas", "dépendante de la majorité du mineur", ou "sans limite".
Impact : Règle non testable et non auditable — un auditeur ISO 14641 ne peut pas vérifier la conformité de cette ligne.
Gravité : Majeur
Point 3¶
Type : Incohérence Spec↔Tests
Référence : TC-NOM-09 vs §5.1 (normativeReference regex `^[A-Z0-9 .:_-]+ §[0-9.]+$`)
Description : TC-NOM-09 exige la présence de "ISO 19005-1", "ISO 19005-2", "ISO 19005-3" et "RFC-PV-PACK". Aucune de ces chaînes ne satisfait la regex du champ `normativeReference` (qui requiert `§section`). Deux lectures possibles : (a) ces références sont des citations documentaires hors champ `normativeReference`, auquel cas la spec ne distingue pas les deux usages ; (b) elles sont des valeurs du champ, auquel cas TC-NOM-09 valide des données non conformes au contrat §5.1.
Impact : Le test passe sur des données qui violent le format contractuel, ou le contrat de données est trop restrictif pour les références réellement utilisées.
Gravité : Majeur
Point 4¶
Type : Ambiguïté
Référence : §5.1 (champ normativeReference) vs §5.4b (tableau formats)
Description : Le champ `normativeReference` est défini en §5.1 avec format, regex et comportement si invalide, mais le tableau canonique §5.4b ne contient pas de colonne `normativeReference`. Aucun mapping format→référence normative n'est contractualisé. Le champ est défini mais jamais instancié dans le catalogue.
Impact : INV-252-06 ("toute donnée structurée utilisée dans la policy doit avoir format/contrainte définis en §5.1") est satisfait pour la définition, mais l'absence d'instanciation rend le champ inutile et non vérifiable.
Gravité : Mineur
Point 5¶
Type : Ambiguïté
Référence : §5.4b (FACTUR-X, mimeType `application/pdf`) vs §5.6 (validation MIME)
Description : FACTUR-X et PDF/A-1B, PDF/A-2B, PDF/A-3B partagent le même `mimeType=application/pdf`. La validation MIME "déclaré vs contenu réel" ne peut pas distinguer ces 4 formats. La policy ne documente pas le mécanisme de discrimination (présence XML embarqué pour FACTUR-X, validation PDF/A-level pour les sous-ensembles). Pour un document "Facture" (§5.7), PDF/A-1B, PDF/A-2B et FACTUR-X sont tous acceptés avec le même mimeType — aucun critère documentaire ne permet de classer un PDF entrant dans l'un ou l'autre.
Impact : L'exhaustivité de la policy (INV-252-02) est formellement satisfaite, mais le classement effectif à l'ingestion est indéterminé entre ces formats.
Gravité : Mineur
Point 6¶
Type : Incohérence Spec↔Tests
Référence : TC-NOM-08 vs §5.7 (ligne "Preuves numériques (mineurs)")
Description : TC-NOM-08 exige de vérifier "les valeurs exactes" de chaque ligne de la matrice. Or la durée "variable" n'est pas une valeur exacte — le test ne peut pas évaluer la conformité de cette cellule. Le test valide une donnée non déterministe sans critère d'acceptation.
Impact : TC-NOM-08 ne peut pas atteindre un verdict binaire pour cette ligne.
Gravité : Majeur
Point 7¶
Type : Hypothèse dangereuse
Référence : §5.5 (conversions, statut "PLANIFIÉ (PD-NEW)") + H-05
Description : Plusieurs validations critiques (PDF/A, malware) et conversions sont en statut "PLANIFIÉ (PD-NEW)" avec la note "Story non encore créée dans le backlog". La policy documente des obligations de conformité (scan malware "obligatoire avant stockage") dont l'implémentation n'existe pas et dont la story n'est pas encore créée. Aucune échéance ni condition de déclenchement n'est contractualisée. Le risque est qu'un audit ISO 14641 considère que l'obligation documentée mais non implémentée constitue un écart de conformité, précisément parce que la policy affirme le caractère "obligatoire".
Impact : La policy crée une obligation contractuelle sans implémentation ni planification ferme — risque d'auto-incrimination en audit.
Gravité : Majeur
Point 8¶
Type : Non testable
Référence : §5.1 (champ `integrityHashAlgorithm`, valeur constante `SHA3-384`)
Description : Le champ est défini comme constante avec regex `^SHA3-384$`. Tout écart est "rejet". Mais la policy est documentaire — il n'y a pas de moteur de validation (§5.9). Le test TC-NOM-05 vérifie que "SHA3-384" est mentionné, mais le "rejet" en cas de non-conformité n'a pas d'exécuteur dans le périmètre PD-252. Le comportement "si invalide → rejet" n'est actionnable que par revue humaine.
Impact : Cohérent avec la nature documentaire de la story, mais le terme "rejet" peut induire en erreur un lecteur qui attendrait un mécanisme technique.
Gravité : Mineur
Point 9¶
Type : Risque sécu/conformité
Référence : §5.7 (ligne "Preuves numériques (mineurs)"), §5.6 (scan malware PLANIFIÉ)
Description : Les preuves numériques de mineurs (JPEG, PNG, MP4, WAV, MOV) sont les formats les plus exposés aux vecteurs d'attaque embarqués (stéganographie, malware dans métadonnées EXIF/MP4). Le scan malware est en statut "PLANIFIÉ (PD-NEW)" — non implémenté. La policy autorise donc l'ingestion de ces formats sans protection malware effective. La combinaison "formats à risque + durée variable + scan absent" concentre le risque.
Impact : Fenêtre de vulnérabilité entre publication de la policy et implémentation du scan.
Gravité : Mineur
Point 10¶
Type : Incohérence Spec↔Tests
Référence : TC-NEG-02 vs §5.1 (mimeType)
Description : TC-NEG-02 teste `Application/PDF` (casse mixte) et attend "normalisation en application/pdf, puis validation conforme". La spec §5.1 définit la normalisation lowercase comme obligatoire avant validation, ce qui est cohérent. Cependant, aucun test négatif ne vérifie le cas où le mimeType est conforme en format MAIS absent du catalogue §5.4b (ex: `audio/mpeg`). ERR-252-01 couvre ce cas ("format non listé") mais aucun TC-ERR ne le teste avec un mimeType valide-mais-hors-catalogue.
Impact : Couverture partielle de ERR-252-01 — le scénario "format valide en syntaxe mais non autorisé" manque en tant que test dédié.
Gravité : Mineur
Synthèse¶
| Gravité | Nombre |
|---|---|
| Bloquant | 0 |
| Majeur | 5 (Points 1, 2, 3, 6, 7) |
| Mineur | 5 (Points 4, 5, 8, 9, 10) |
Les 5 écarts majeurs portent sur : la valeur composite "COMPLETE/BITSTREAM" dans la matrice (contradiction avec INV-252-03), la durée "variable" non contractualisée, l'incohérence entre la regex normativeReference et les références réellement utilisées, la non-testabilité de TC-NOM-08 pour la ligne "mineurs", et le risque d'auto-incrimination en audit pour les obligations "PLANIFIÉ" sans story créée.