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 utilisentinvariantssans 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)