
Construire des plugins Rust cdylib signés, hashés et horodatés pour satisfaire les exigences de performance et de preuve probante de NIS2.
La preuve dans le contexte d'un plugin cdylib
- authenticité : binaire signé avec UUID v4 unique ;
- intégrité : hash SHA-256 détecte toute modification post-déploiement ;
- traçabilité : manifest Cargo inclut crate-type=["cdylib"] et version ;
- horodatage : service TSA appose un certificat garantissant la date exacte ;
- attribution : champs metadata.authors et BUILD_ID contiennent l'identifiant du développeur.
Crates et primitives cryptographiques
| Crate | Rôle |
|---|---|
| zeroize (1) | Effacement sécurisé des clés privées en mémoire |
| sha2 (0.10) | Digest SHA-256 pour la preuve d'intégrité |
| uuid (1) v4 | Identifiant unique par build |
| ring (0.16) | Primitives RSA / Ed25519 pour le code signing |
Ces crates sont auditées et maintenues selon les exigences de qualité NIS2.
Ce qu'un auditeur cherchera à vérifier
- chaque binaire .so ou .dll possède un UUID v4 unique et immuable ;
- hash SHA-256 signé par une clé reconnue apparaît dans le manifest ;
- timestamp provient d'une TSA qualifiée (RFC 3161) ;
- secrets utilisés à la compilation zeroisés immédiatement ;
- binaire stocké en mode WORM avec politique de rétention adéquate.
Chaîne de conservation d'un plugin cdylib
Compilation cargo avec métadonnées (UUID, version Cargo, commit Git). Hash SHA-256 envoyé à la TSA. Dépôt dans un bucket S3 Object Lock (mode Compliance). Tags type=plugin, retention=7y. Contrôle d'accès IAM restrictif. Vérification quotidienne : calcul du hash, comparaison avec la valeur enregistrée. Export d'audit sous forme d'archive ZIP signée contenant binaires, métadonnées et rapport de validation.
Limites à ne pas masquer
- l'immuabilité n'élimine pas une génération erronée à la source ;
- qualité de la source primordiale ;
- horodatage local vs qualifié : seul le second a une force juridique ;
- coût des services WORM et TSA peut être notable pour les PME.
Pour aller plus loin
Pour aller plus loin :
Lire l'article Challenges sur KARL →


