Aller au contenu

PD-282 — Plan d’implémentation : Revue

1. Références

  • Spécification : PD-282-specification.md
  • Tests contractuels : PD-282-tests.md
  • Plan d’implémentation : PD-282-plan.md
  • Date de revue : 2026-03-02
  • Reviewer : Auditeur technique indépendant (OpenCode / gpt-5.3-codex)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
Non-conformité Spec INV-282-03, CA-03 / Plan §3 (Reserve DIV-01), §4.2, §4.4 Le plan accepte explicitement que signedAt ne soit pas couvert par le sceau global (champ dans envelopeSeal exclu du hash), alors que la spec impose qu’une modification d’un octet de l’enveloppe scellée invalide la vérification. Rupture de l’intégrité contractuelle bout-en-bout ; contradiction directe avec invariant non négociable et critère d’acceptation. BLOQUANT
Non-conformité Spec Spec §4 (règles non négociables), §6 ERR-* / Plan §3 (OCSP revoked — “ajout contractuel”, “spec sera amendée”) Le plan introduit une règle de rejet status=revoked en indiquant qu’elle n’est pas encore contractualisée dans la spec actuelle. Dérive contractuelle Plan↔Spec ; comportement implémenté potentiellement contestable en audit tiers tant que non présent dans le contrat canonique. MAJEUR
Couverture manquante INV-282-12, Spec §5.1.2 / Plan §4.2, §4.3, Code contracts module format-validation La couverture explicite des validations format/longueur/casse n’est pas démontrée pour l’ensemble des champs verificationMaterial (notamment tsaCertificateChain[], eidasCertificateChain[], ocspResponses[].response, ocspResponses[].producedAt, ocspResponses[].status, validationTimestamp). Invariant de rejet explicite hors format potentiellement incomplet ; exposition à des acceptations partielles non conformes. MAJEUR
Test irréalisable TC-NOM-04, CA-08, section “Observabilité requise” / Plan §7 Le plan ne définit pas de point d’observabilité explicite prouvant l’absence totale d’appels réseau ProbatioVault en Mode A (preuve technique de “zero dépendance PV”). Le test contractuel d’air-gap peut rester non démontrable en audit externe. BLOQUANT
Hypothèse implicite Plan §2 DA-03, §4.4 (steps hash + verify), Code contracts offline-verification Le couplage “pré-hash SHA3-384 + signature raw HSM” avec vérification Node (createVerify/verify) n’est pas spécifié de façon non ambiguë sur l’entrée exacte vérifiée (digest vs message canonicalisé). Risque d’écart cryptographique (double-hash ou non-interopérabilité) non détecté avant exécution ; fragilise la testabilité contractuelle. MAJEUR
Code Contract — Invariant Code contracts (hash-extension, envelope-seal-pipeline, offline-verification) / règle d’audit axe 6 Plusieurs “invariants” des code contracts dépassent le sous-ensemble des invariants de la spec (ex. format interne de hash, contraintes d’implémentation non contractuelles). Rupture de traçabilité normative : invariants techniques mélangés aux invariants contractuels ; ambiguïté d’audit. MAJEUR
Code Contract — Forbidden Code contracts (envelope-seal-pipeline forbidden: Math.random() etc.) / Spec §4-§10 Certains patterns forbidden ne sont pas justifiés explicitement par la spec ou une exigence sécurité contractualisée. Sur-contrainte non contractuelle ; risque de non-conformité documentaire en revue tierce. MINEUR
Contrainte technique non documentée Exigence §7 (statut dépendances inter-PD DONE/TODO/STUB) / Plan §6 Les dépendances inter-PD sont listées avec statut “Disponible”, mais pas selon le statut demandé (DONE/TODO/STUB acceptable). Ambiguïté de statut de dépendances ; traçabilité de préparation technique incomplète. MINEUR

3. Synthèse

  • Nombre d’écarts par gravité : BLOQUANT = 2, MAJEUR = 5, MINEUR = 2
  • Points critiques :
  • Contradiction directe avec l’invariant d’intégrité globale (octet modifié) sur signedAt.
  • Réalisabilité non démontrée du test air-gapped (absence de preuve d’observabilité “zero réseau PV”).

4. Verdict de la revue

  • Statut : ⛔ Rejeté
  • Motif synthétique : Le plan présente des écarts contractuels et de testabilité incompatibles avec une validation tierce stricte, incluant une contradiction explicite avec un invariant non négociable (INV-282-03) et des tests contractuels non démontrables en l’état (TC-NOM-04).