Aller au contenu

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)