Aller au contenu

PD-282 -- Revue documentaire

1. Verification des invariants

INV Description Verdict Evidence
INV-282-01 Enveloppe finalisee contient envelopeSeal valide crypto FAIL src/modules/legal-pre/services/envelope-seal.service.ts signe avec SignatureAlgorithm.ECDSA_SHA384 alors que l’etiquette impose ECDSA-P384-SHA3-384; src/modules/legal-pre/services/offline-verification.service.ts reverifie via createVerify('SHA3-384') sur un hash deja calcule (double-hash probable), risque de verification nominale invalide.
INV-282-02 Calcul du sceau exclut strictement envelopeSeal PASS Exclusion explicite dans seal() et computeHash() (const { envelopeSeal, ...payloadWithoutSeal }) dans src/modules/legal-pre/services/envelope-seal.service.ts.
INV-282-03 Mutation 1 octet invalide la verification FAIL Le pipeline sign/verify n’est pas coherent (algo/hash/encoding), donc l’invariant d’integrite n’est pas demontre de maniere fiable sur implementation actuelle (envelope-seal.service.ts, offline-verification.service.ts).
INV-282-04 verificationMaterial suffisant pour Mode A FAIL generateProof() appelle assemble(..., ocspRequests=[]) dans src/modules/legal-pre/services/legal-composite-proof.service.ts; verification-material-assembler.service.ts peut produire validationPolicy=GENERATION_TIME_SNAPSHOT avec ocspResponses=[] (non aligne ERR-05 degrade).
INV-282-05 validationPolicy explicite et presente PASS validationPolicy toujours renseigne et valide via regex enum dans src/modules/legal-pre/services/envelope-format-validator.service.ts.
INV-282-06 Heuristique anti-secrets obligatoire PASS Scan obligatoire avant scellement avec patterns minimaux (privateKey, secretKey, sessionToken, hmacSecret, dek) dans src/modules/legal-pre/services/secret-detection.service.ts.
INV-282-07 Artefacts crypto temporaires chiffres au repos RESERVE Verifiable seulement partiellement par lecture statique: aucun chemin evident de persistance temporaire, mais absence de preuve runtime/HSM et stockage infra.
INV-282-08 Immutabilite post-persistance RESERVE Depend du trigger PD-272 externe (non fourni dans le livrable); migration mentionne la protection mais preuve executable absente.
INV-282-09 SEALED terminal (SEALED -> * interdit) RESERVE Meme reserve: enforce via trigger DB PD-272 non auditable ici.
INV-282-10 SEALED -> UNSEALED interdit RESERVE Aucune API d’unseal visible; blocage DB revendique via PD-272 non verifiable dans corpus fourni.
INV-282-11 Verification historique apres rotation via kid + chaine PASS kid transporte et verification basee sur certificateChain embarquee dans src/modules/legal-pre/services/offline-verification.service.ts.
INV-282-12 Format/longueur invalides => rejet explicite PASS Validation regex/tailles complete sur envelopeSeal et verificationMaterial avec exception ERR-282-FORMAT-INVALID dans src/modules/legal-pre/services/envelope-format-validator.service.ts.
## 2. Verification des code contracts
CC Fichier Sections Diagrammes
---- --------- ---------- ------------
CC-01 Ensemble PD-282 N/A N/A
CC-02 Ensemble PD-282 N/A N/A
CC-03 Ensemble PD-282 N/A N/A
CC-04 Ensemble PD-282 N/A N/A
CC-05 Ensemble PD-282 N/A N/A
CC-06 Ensemble PD-282 N/A N/A
CC-07 Ensemble PD-282 N/A N/A
CC-08 Ensemble PD-282 N/A N/A
CC-09 Ensemble PD-282 N/A N/A
CC-10 Ensemble PD-282 N/A N/A
CC-11 Ensemble PD-282 N/A N/A
CC-12 Ensemble PD-282 N/A N/A
Notes: le fichier de contrat YAML PD-282 n’est pas present dans le corpus fourni (impossible de comparer structure reelle vs contrat par CC individuellement).
## 3. Coherence inter-chapitres
Verification Resultat
------------- ----------
Statuts et regles OCSP revoked entre specification/tests/plan Coherent au niveau documentaire (ERR-09, tests dedies, plan d’action explicite).
Coherence plan vs code sur pipeline crypto (raw vs algo effectif) Incoherent: plan annonce pre-hash + raw sign; code utilise ECDSA_SHA384 et verification SHA3-384 non alignee.
Coherence structure d’enveloppe entre interfaces/service/verifier Incoherent: SealedProofEnvelope stocke sous envelopeSeal en DB (legal-composite-proof.service.ts), alors que le verificateur attend envelope.envelopeSeal de type EnvelopeSeal.
Liens relatifs inter-chapitres RESERVE: documents sources injectes hors arborescence documentaire complete, validation de liens non exhaustive impossible.
## 4. Ecarts identifies
ID Type Criticite Description
---- ------ ----------- -------------
E-01 ECT BLOQUANT Incoherence crypto sign/verify (algo/hash) entre envelope-seal.service.ts et offline-verification.service.ts, compromettant CA-01/CA-02/CA-03.
E-02 ECT BLOQUANT Structure persistee envelope_seal non alignee avec consommation du verificateur (objet imbrique vs attendu plat).
E-03 DIV MAJEUR Politique OCSP degradee non strictement appliquee: GENERATION_TIME_SNAPSHOT possible avec ocspResponses=[].
E-04 AMB MAJEUR Code contracts PD-282 YAML absents: verification CC-01..CC-NN non auditables individuellement.
E-05 ECT MAJEUR verificationMaterial persiste en version legacy (buildVerificationMaterial) pendant que l’enveloppe scellee embarque une autre structure.
E-06 AMB MINEUR Validation structurelle outillage docs incomplete (markdownlint indisponible localement; mkdocs.yml absent dans ce repo).
## 5. Verdict
Verdict : REJETE
Justification : presence de 2 ecarts BLOQUANTS (coherence cryptographique et structure de donnees envelope/verifier) empechant la validation probatoire de base; reserves documentaires supplementaires sur les code contracts et la validation structurelle outillee.