Repository navigation
docs(conformance): « couvert » exige une preuve de mise en service (D-2) - #79
Merged
Merged
Conversation
Constat D-2 de l'audit du 2026-09-25 : la matrice prouvait l'existence d'un test, pas la mise en service du mécanisme. C'est ainsi que §7.11 avait pu rester « couvert » alors qu'aucun binaire ne l'appelait. - Nouveau statut « implémenté, pas en service » (mécanisme et test présents, aucun binaire ne l'appelle) : §7.11 (oe-crosstsa, oe-replicate) y passe. - Entry gagne `in_service` : pour une ligne couverte, un test qui exerce un binaire (bin/…) ou une étape d'un job de démonstration réelle (.github/workflows/…). validate() refuse une ligne couverte sans elle. - tests/references.rs résout chaque référence `test` et `in_service` : fichier présent, fonction définie et non #[ignore], étape de workflow existante. La ligne REQ-7.5-01 citait un test #[ignore] : elle cite désormais le test du binaire. - bin/tsa-server/tests/serve.rs, premier test du binaire tsa-server : vrai token SoftHSM, refus d'un certificat hors profil TSU, suspension en enforce (/healthz 503, timeNotAvailable), jeton vérifié par openssl ts -verify, SHA-1 refusé (badAlg). C'est ce test qui a révélé l'encodage fautif du failInfo (commit précédent, PR #62). - ca-server : undersized_ca_keys_are_refused_by_the_binary. - CI : SoftHSM2 installé dans le job de tests ; OE_REQUIRE_SOFTHSM fait échouer le test du binaire au lieu de l'ignorer. - 36 exigences : 17 couvertes, 1 implémentée, 16 écarts, 2 hors périmètre. `/api/v1/conformance` expose `en_service`. Co-authored-by: Claude <noreply@anthropic.com>
6 tasks
PhilippeVienne
added a commit
that referenced
this pull request
Oct 1, 2026
…a matrice (#84) Les correctifs de l'audit du 2026-09-25 sont tous sur dev (#52 à #59, via #76, #80, #82) : la matrice le dit, avec pour chaque ligne repassée en « couvert » une preuve de mise en service (règle D-2, #79) — pas seulement un test de bibliothèque. - bin/tsa-server/tests/serve.rs, le test du binaire, prouve désormais aussi : le refus de démarrer quand OPENEIDAS_ACCURACY ne couvre pas la dérive tolérée (T-1), le refus d'émettre avec une clé TSU expirée mais un certificat encore valide (T-3), la fraction de seconde de genTime (T-1), et le journal du jeton relu (série, empreinte soumise, état de l'horloge : J-3), en relisant audit-monitor.log après un horodatage réel. - Le job de démonstration Helm/kind interroge le répondeur OCSP pour un numéro jamais émis et exige `unknown` (O-1). - C-1 : preuve par les tests du binaire ca-server (ARL et certificat de la racine servis aux adresses gravées) ; R-2 : étape Helm qui refuse l'approbation automatique en production ; R-1 : actions signées relayées par ra-console et revue de la voie de secours, toutes deux testées sur les binaires. - Restent en écart, cible resserrée : l'authentification multifacteur (GEN-6.5.5-04 : la voie de secours CLI n'a pas de second facteur, son contrôle compensatoire — RBAC de l'hôte, trace non authentifiée, revue — est nommé dans le mécanisme, décision de l'utilisateur), la durée de conservation côté tsa-server (§7.10) et la nouvelle bi-clé à chaque renouvellement TSU (TIS-7.6.7). docs/ARCHITECTURE.md décrit le journal tel qu'il est. Bilan : 23 couvertes, 1 implémentée, 10 écarts, 2 hors périmètre (avant : 17 / 1 / 16 / 2). docs/CONFORMITE-ETSI.md régénéré. Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Objet
Constat D-2 de l'audit du 2026-09-25 : la matrice prouvait l'existence d'un test, pas la mise en service du mécanisme — c'est ainsi que §7.11 avait pu rester « couvert » sans qu'aucun binaire ne l'appelle. Tranche c, dernière du découpage D (a : #60 → b : #61 → c : cette PR).
Empilement : base
docs/matrix-versions-ids(#61, têted25ee8cà l'ouverture). La branche contient aussi, en premier commit, le correctif #62 (encodage dufailInfo), trouvé par le test du binaire écrit ici et nécessaire à ses assertions. Ordre de merge : #62 (indépendante), #60, #61, puis cette PR ; au rebase surdev, le commit de #62 déjà mergé disparaît de lui-même.Changements
oe-crosstsa,oe-replicate) y passe.in_service, obligatoire pour une ligne couverte (choix de l'utilisateur) : un test qui exerce un binaire (bin/…) ou une étape d'un job de démonstration réelle (.github/workflows/ci.yml, kind/compose).validate()refuse une ligne couverte sans elle.crates/oe-conformance/tests/references.rsrésout mécaniquement chaque référencetestetin_service: fichier présent, fonction définie et non#[ignore], étape de workflow existante. Il a trouvé que la ligneREQ-7.5-01citaitpkcs11_integration.rs, entièrement#[ignore](jamais exécuté en CI) — elle cite désormais le test du binaire.bin/tsa-server/tests/serve.rs— premier test du binairetsa-server: vrai token SoftHSM (clé générée dedans), certificat émis par une CA de test ; refus au démarrage d'un certificat au profil OCSP (EN 319 422 §6) ; enenforcesans heure traçable,/healthz503 et refustimeNotAvailable(EN 319 421TIS-7.7.1-07) ; enmonitor, jeton vérifié paropenssl ts -verify(EN 319 422 §7) et SHA-1 refusé enbadAlg(TS 119 312 §5.1).bin/ca-server/tests/bootstrap_cli.rs::undersized_ca_keys_are_refused_by_the_binary(TS 119 312 §8.4).OE_REQUIRE_SOFTHSM=1fait échouer le test du binaire au lieu de l'ignorer — une preuve de mise en service ne peut plus sauter en silence./api/v1/conformanceexposeen_service. README à jour.Limites
OPENEIDAS_TIME_POLICY=monitor: la suspension enenforcen'est prouvée que par le test du binaire, pas en démonstration réelle.OE_CASTORE_TEST_DSN, absente du job de tests CI (inchangé ici).Vérifications
cargo fmt --check,cargo clippy --workspace --all-targets -- -D warnings(1.97 et 1.98.1),cargo test --workspaceavec PostgreSQL etOE_REQUIRE_SOFTHSM=1,cargo audit --ignore RUSTSEC-2023-0071,cargo deny check licenses: verts.make conformance-docrégénéré.in_service,detects_missing_versions_ids_and_mismatched_clauseséchoue.libsofthsm2à/usr/lib/softhsm/libsofthsm2.so, vérifié sous Ubuntu).Revue humaine obligatoire
Voir PROVENANCE.md. Chaque case est cochée par le
contributeur humain qui valide la PR, après l'avoir fait lui-même.
make licenses)Assistance par IA
Co-authored-by: Claude <noreply@anthropic.com>, auteur et committer restent humains, etscripts/provenance.py archivea été lancé