Aller au contenu

PD-282 — Dossier de conformite (Gate 5, AMBIGUITY, v3)

  • Story : PD-282 — ProofEnvelope : scellement HSM (PROOF-14) + materiel validation eIDAS (PROOF-05b)
  • Gate : 5 (AMBIGUITY)
  • Iteration : v3
  • Date : 2026-03-02
  • P1 (Review) : ChatGPT gpt-5.3-codex
  • P2 (Confrontation) : Claude Opus 4.6
  • Score v2 precedent : 7.50 (RESERVE)

Corrections v2 → v3 appliquees

  • Spec §5.4 amendee : UNSEALED transitoire en memoire, INSERT-only, testabilite service, justification PD-272
  • Spec §5.6 amendee : Migration DDL documentee (ADD COLUMN envelope_seal JSONB NULL)
  • Tests TC-NOM-06, TC-INV-07, TC-INV-09, TC-INV-10, section 8 Observabilite : alignes avec spec v3
  • Plan : Mode B corrige "optionnelle" → "constitutive" (l.188), ref Gate 3 mise a jour (8.25 v3)
  • Gate 3 re-executee : RESERVE 8.25/10 v3 (0 BLQ)

Synthese des ecarts v3

Gravite Nombre
BLOQUANT 1
MAJEUR 4
MINEUR 2
Total 7

Amelioration : 7 ecarts (v2) → 7 ecarts (v3). BLQ 2→1 (DDL et state machine resolus, signedAt reste). MAJ 3→4. MIN 2→2.

Ecarts BLOQUANTS

ECT-01 — signedAt non couvert par le sceau vs INV-282-03

  • Source : Review v3 ligne 1, Confrontation DIV-01
  • Type : Contradiction spec/plan
  • Description : INV-282-03 dit "tout octet modifie dans l'enveloppe scellee DOIT rendre la verification invalide". Or signedAt est dans envelopeSeal, qui est exclu du hash par INV-282-02. Modifier signedAt n'invalide PAS la verification. Contradiction entre INV-282-02 et INV-282-03.
  • Impact : INV-282-03 est formule trop largement. Il devrait dire "tout octet hors envelopeSeal" (coherent avec INV-282-02). Mitigation existante : validationTimestamp est dans le hash, token TSA PD-81 protege l'horodatage.
  • Resolution proposee : Amender INV-282-03 pour exclure explicitement envelopeSeal du perimetre, ou reformuler "tout octet du payload signe (hors envelopeSeal)".
  • Note : Cet ecart est une imprecision de formulation dans la spec, pas un defaut du plan. Le plan documente la decision comme acceptable avec mitigation.
  • Criticite : BLOQUANT (contradiction entre deux invariants non negociables)

Ecarts MAJEURS

DIV-01 — OCSP revoked non contractualise dans la spec

  • Source : Review v3 ligne 2, Confrontation DIV-02
  • Description : Le plan ajoute le rejet sur status=revoked, mais la spec ne le contractualise pas. Resolution de reserve Gate 3, spec non encore amendee.
  • Criticite : MAJEUR

DIV-02 — Validation format verificationMaterial incomplete dans contract C7

  • Source : Review v3 ligne 3, Confrontation DIV-03
  • Description : Le contract C7 ne liste pas explicitement les regex de tous les champs §5.1.2 (tsaCertificateChain, eidasCertificateChain elements, ocspResponses[].response).
  • Criticite : MAJEUR

DIV-03 — Test Mode B nominal absent

  • Source : Review v3 ligne 4, Confrontation DIV-05
  • Description : Aucun test nominal Mode B n'existe. Le plan mentionne TC-NOM-xx-MODE-B mais le document tests ne le contient pas.
  • Criticite : MAJEUR

DIV-04 — Interoperabilite SHA3-384 sign(HSM) / verify(Node.js)

  • Source : Confrontation DIV-04
  • Description : La compatibilite pre-hash SHA3-384 + raw ECDSA HSM avec crypto.createVerify Node.js n'est pas testee explicitement. Le pattern existe avec SHA3-256 (LegalAuditTrailService) mais pas SHA3-384.
  • Criticite : MAJEUR

Ecarts MINEURS

MIN-01 — Nomenclature invariants non harmonisee dans contracts

  • Source : Confrontation DIV-07
  • Description : Certains contracts utilisent invariants_normatifs/invariants_techniques, d'autres utilisent invariants sans distinction.
  • Criticite : MINEUR

MIN-02 — Math.random() forbidden sans justification spec

  • Source : Review v3 ligne 6, Confrontation DIV-08
  • Description : Convention projet (Sonar S2245, REX PD-63), pas justifiee par la spec PD-282.
  • Criticite : MINEUR

Ecarts v2 resolus en v3

Ecart v2 Resolution v3
ECT-01 — DDL migration vs spec §5.6 Spec §5.6 amendee : migration documentee
ECT-02 — Machine d'etats non demonstrable Spec §5.4 amendee : UNSEALED transitoire, tests reformules

Scoring

Critere Score Justification
feasibility 8.0 Plan faisable. DDL et state machine resolus. INV-282-07 adresse. Reste : signedAt/INV-282-03 imprecision spec (-1), interop SHA3-384 (-1).
coverage 7.5 12/12 INV mappes. Reste : OCSP revoked hors spec (-0.5), Mode B nominal absent (-0.5), format validation incomplete (-0.5), interop test manquant (-0.5).
risk_mitigation 8.5 HSM, OCSP, ESM/CJS documentes. Jest + CI explicites. Crash simulation outillee. Reste : inter-PD statuts (-0.25), Math.random hors spec (-0.25).
coherence 7.5 Bon alignement apres corrections v3. Reste : signedAt/INV-282-03 contradiction (-1.5), nomenclature contracts (-0.5), OCSP revoked non amende (-0.5).

Score moyen : (8.0 + 7.5 + 8.5 + 7.5) / 4 = 7.875

Delta v2→v3 : 7.875 - 7.50 = +0.375 (amelioration moderee)