PD-282 — Dossier de conformite (Gate 3, CONFORMITY_CHECK, v3)¶
- Story : PD-282 — ProofEnvelope : scellement HSM (PROOF-14) + materiel validation eIDAS (PROOF-05b)
- Gate : 3 (CONFORMITY_CHECK)
- Iteration : v3
- Date : 2026-03-02
- P1 (Review) : Claude Opus 4.6
- P2 (Confrontation) : ChatGPT gpt-5.3-codex
- Score v2 precedent : 7.25 (RESERVE)
Corrections v2 → v3 appliquees¶
Les 2 BLOQUANTS Gate 5 ont ete corriges dans la spec et les tests : - §5.4 : Machine d'etats UNSEALED/SEALED — UNSEALED explicitement transitoire en memoire, INSERT-only, testabilite au niveau service, justification PD-272 - §5.6 : Migration DDL documentee — ADD COLUMN envelope_seal JSONB NULL, colonnes existantes non modifiees, trigger PD-272 couvre la nouvelle colonne - TC-NOM-06 : Reformule pour construction en memoire puis INSERT direct SEALED - TC-INV-07 : Reformule pour verification d'absence de persistance crypto (audit statique) - TC-INV-09 : Precise deux niveaux (trigger PD-272 + service) - TC-INV-10 : Precise absence de methode unseal + trigger PD-272 - Section 8 Observabilite : UNSEALED observable en logs service uniquement
Synthese des ecarts v3¶
| Gravite | Nombre |
|---|---|
| BLOQUANT | 0 |
| MAJEUR | 3 |
| MINEUR | 3 |
| Total | 6 |
Amelioration : 7 ecarts (v2) → 6 ecarts (v3). BLQ 2→0, MAJ 3→3, MIN 2→3.
Aucun nouveau probleme introduit par les corrections v3. Les ecarts restants sont tous pre-existants.
Ecarts BLOQUANTS¶
Aucun.
Ecarts MAJEURS¶
ECT-01 — OCSP revoked/unknown non contractualise dans la spec¶
- Source : Review ECR-02, Confrontation ZO-01
- Type : Lacune spec
- Description : La spec ne contractualise pas le comportement quand ocspResponses[].status = revoked ou unknown. Le plan (Gate 5) adresse revoked (rejet OCSP_CERT_REVOKED) mais la spec ne l'explicite pas.
- Impact : L'implementation suivra le plan (rejet sur revoked). La spec sera amendee lors d'une iteration future si necessaire.
- Note : Ecart pre-existant (v1, v2). Deja adresse dans le plan d'implementation.
- Criticite : MAJEUR
ECT-02 — ERR-03 double sortie (rejet finalisation vs valid=false)¶
- Source : Review ECR-01, Confrontation DIV-01
- Type : Ambiguite spec/tests
- Description : La spec ERR-03 dit "Rejet finalisation" alors que TC-ERR-03 dit "Rejet finalisation ou valid=false". Deux contextes differents : finalisation (rejet) vs verification tierce (valid=false).
- Impact : L'implementation distinguera naturellement les deux chemins. Pas de risque d'implementation.
- Criticite : MAJEUR
ECT-03 — Mode B sans test nominal¶
- Source : Review ECR-03, Confrontation DIV-02
- Type : Couverture tests
- Description : Mode B (verification online publique) est declare "Inclus" mais aucun test nominal Mode B n'existe. Seul TC-ERR-08 couvre un echec commun A/B.
- Impact : Le test nominal Mode B sera ajoute lors de l'implementation (agent-verifier). Non bloquant pour la spec.
- Criticite : MAJEUR
Ecarts MINEURS¶
MIN-01 — INV-282-07 preuve partielle (audit statique)¶
- Source : Review ECR-06, Confrontation DIV-03
- Description : L'invariant INV-282-07 demande le chiffrement au repos. La preuve est basee sur l'absence de persistance (audit statique). Demonstration incomplète mais mitigee par le plan.
- Criticite : MINEUR (mitigation plan acceptee)
MIN-02 — Monitoring OCSP hors perimetre sans test¶
- Source : Review ECR-10, Confrontation DIV-04
- Description : Le monitoring 10% OCSP_UNAVAILABLE est declare "hors perimetre fonctionnel de PD-282" dans la spec. Pas de test.
- Criticite : MINEUR (hors perimetre explicite)
MIN-03 — P95 non testable sans environnement de reference¶
- Source : Review ECR-04, Confrontation ZO-03
- Description : Les bornes P95 ne sont pas objectivables sans Q-02 (environnement de reference).
- Criticite : MINEUR (deja reconnu dans les regles non testables)
Verification des corrections v3¶
| Correction | Introduit un probleme ? | Statut |
|---|---|---|
| §5.4 UNSEALED transitoire en memoire | Non — coherent avec plan DA-02 et trigger PD-272 | OK |
| §5.6 Migration DDL documentee | Non — coherent avec plan DA-01 | OK |
| TC-NOM-06 reformule | Non — teste la construction en memoire + INSERT SEALED | OK |
| TC-INV-07 reformule | Non — teste l'absence de persistance crypto | OK |
| TC-INV-09/10 precises | Non — deux niveaux de test (trigger + service) | OK |
| Observabilite | Non — clarifie UNSEALED en logs service uniquement | OK |
Scoring¶
| Critere | Score | Justification |
|---|---|---|
| completeness | 8.0 | 12/12 INV mappes. 12/12 CA mappes. Corrections v3 resolvent DDL et state machine. Reste : OCSP revoked (-1), Mode B nominal (-1). |
| testability | 7.5 | Tests reformules coherents. TC-INV-07 audit statique accepte. Reste : Mode B nominal absent (-1), P95 non testable (-0.5). |
| clarity | 8.5 | §5.4 et §5.6 significativement ameliores. ERR-03 ambigu (-0.5), OCSP revoked/unknown implicite (-0.5). |
| traceability | 9.0 | Matrice complete. References PD-272, PD-280, PD-81 tracees. Reste : monitoring OCSP non trace (-0.5), root CA non tranchee (-0.5). |
Score moyen : (8.0 + 7.5 + 8.5 + 9.0) / 4 = 8.25
Delta v2→v3 : 8.25 - 7.25 = +1.00 (amelioration significative)