PD-36 — Acceptabilité¶
📚 Navigation User Story
| Document | | | ---------- | -- | | 📋 [Spécification](PD-36-specification.md) | | | 🛠️ [Plan d'implémentation](PD-36-plan.md) | | | ✅ **Critères d'acceptation** | *(ce document)* | | 📝 [Retour d'expérience](PD-36-rex.md) | | [← Retour à crypto-proof](../PD-189-epic.md) · [↑ Index User Story](index.md)Objectif¶
Vérifier que l’implémentation est conforme à la spécification, respecte l’ensemble des invariants ProbatioVault et ne présente aucune incohérence ou oubli critique.
Périmètre de vérification¶
La revue d’acceptabilité vérifie explicitement :
- la conformité stricte à la spécification fonctionnelle
- le respect de tous les invariants applicables
- la couverture des scénarios de test définis
- l’absence d’incohérences, oublis ou régressions
Écarts identifiés¶
Classification des écarts¶
| Niveau | Définition |
|---|---|
| BLOQUANT | Violation d’un invariant, faille de sécurité, non-conformité majeure à la spec |
| MAJEUR | Fonction incomplète, comportement non conforme mais sans rupture de sécurité |
| MINEUR | Détail, dette acceptable, amélioration non critique |
Détail des écarts¶
co
Conclusion d’acceptabilité¶
⛔ REFUSÉ — Écart bloquant sur l’authentification mTLS non opérationnelle (E-01), complété par des écarts majeurs sur la gestion RSA des CSR et la robustesse des sessions (E-02, E-03).
2026-01-05 — Suivi E-04¶
- Statut précédent : OUVERT
- Statut actuel : RÉSOLU
- Justification factuelle :
validateHsmConfig()est appelée en fail-fast danssrc/modules/crypto/hsm/hsm.service.ts(initialize) et lève sipinoulibraryPathmanquants ; validation présente danshsm.config.ts. - Preuve de vérification :
src/modules/crypto/hsm/hsm.service.ts(initialize),src/modules/crypto/hsm/hsm.config.ts
2026-01-05 — Suivi E-03¶
- Statut précédent : OUVERT
- Statut actuel : RÉSOLU
- Justification factuelle : Pool de sessions HSM implémenté (
HsmSessionPool), paramètressessionTimeout/maxSessionsutilisés, renouvellement avant expiration, méthodesacquirePooledSession/releasePooledSessionet fermeture dansfinalize(). - Preuve de vérification :
src/modules/crypto/hsm/providers/cloudhsm-pkcs11.provider.ts(HsmSessionPool, initialize/finalize/pool APIs)
2026-01-05 — Suivi E-02¶
- Statut précédent : OUVERT
- Statut actuel : RÉSOLU
- Justification factuelle : Prise en charge RSA/ECDSA dans CSR/public key :
getPublicKey()détecte CKK_RSA/CKK_EC, construit SPKI RSA viabuildRsaSpki;createCsr()détecte le type de clé, choisitSignatureAlgorithm.RSA_PSS_SHA384pour RSA,ECDSA_SHA384pour EC ; OID/paramètres ajustés. - Preuve de vérification :
src/modules/crypto/hsm/providers/cloudhsm-pkcs11.provider.ts(getPublicKey, buildRsaSpki, createCsr, getSignMechanism),src/modules/crypto/hsm/interfaces/pkcs11.interface.ts(RSA_PSS_SHA384)
2026-01-05 — Suivi E-01¶
- Statut précédent : OUVERT
- Statut actuel : RÉSOLU
- Justification factuelle :
buildMtlsAgent()utilise désormaisprivateKeyEngine+privateKeyIdentifieravec URI PKCS#11 RFC 7512, délégation de signature TLS au HSM (OpenSSL engine), TLS options/CA pass-through, métadonnées HsmMtlsAgent. - Preuve de vérification :
src/modules/crypto/hsm/hsm.service.ts(buildMtlsAgent, buildPkcs11Uri) ; tests PASShsm.service.spec.ts(22 tests E-01, 66/66)
Verdict d’acceptabilité (courant)¶
Verdict actuel : ✅ ACCEPTÉ
Date : 2026-01-05
Motif synthétique : E-01 résolu (mTLS via PKCS#11/OpenSSL engine) et E-02/E-03/E-04 déjà résolus ; plus aucun écart ouvert.
Historique des verdicts¶
| Date | Verdict | Commentaire |
|---|---|---|
| 2026-01-05 | ⛔ REFUSÉ | Verdict initial |
| 2026-01-05 | ⛔ REFUSÉ | E-02/E-03/E-04 résolus, E-01 bloquant restant |
| 2026-01-05 | ✅ ACCEPTÉ | E-01 résolu, plus d’écarts ouverts |