Guide des technologies

Installer et utiliser SoftHSM v2 sur Ubuntu

6 min read Sécurité Mis à jour 22 Sep 2025
SoftHSM v2 sur Ubuntu — installation et usage
SoftHSM v2 sur Ubuntu — installation et usage

Contexte rapide

Les tokens matériels ou Hardware Security Modules (HSM) servent à générer, stocker et utiliser des clés cryptographiques (publiques et privées) sans exposer la clé privée. SoftHSM v2 est une alternative logicielle utile pour le développement, les tests ou les déploiements où un HSM matériel n’est pas disponible. Il implémente un magasin cryptographique accessible via PKCS#11 et répond aux besoins d’OpenDNSSEC tout en restant compatible avec d’autres produits cryptographiques.

Important

  • SO : Security Officer, rôle ayant le droit de réinitialiser/administrer le token.
  • PKCS#11 : standard d’API pour accéder aux dispositifs cryptographiques tels que HSM et cartes à puce.

Intentions de cet article

  • Expliquer comment télécharger, compiler et installer SoftHSM v2 sur Ubuntu.
  • Montrer comment initialiser un token, tester le module PKCS#11 et effectuer une sauvegarde simple.
  • Fournir des alternatives, des checklists par rôle et des bonnes pratiques opérationnelles.

Dépendances

SoftHSM peut utiliser comme backend cryptographique OpenSSL ou Botan. Si vous compilez avec Botan, activez le support GNU MP (–with-gnump) pour améliorer les performances lors des opérations sur clés publiques.

Avant de compiler, assurez-vous d’avoir les en-têtes de développement d’OpenSSL (ou Botan) ainsi que sqlite3 si vous prévoyez la migration ou l’utilisation d’un stockage objet basé sur DB.

Téléchargement et extraction

Pour récupérer la source officielle :

wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz

Téléchargement de l'archive SoftHSM depuis dist.opendnssec.org

Extrayez l’archive :

Extraction de l'archive SoftHSM avec tar

Configuration et compilation

Lancez le script de configuration pour vérifier les dépendances :

./configure 

Exécution du script configure pour SoftHSM

Si des en-têtes manquent, le script le signalera :

Erreur du script configure : en-têtes OpenSSL manquants

Sur Ubuntu, installez les paquets de développement nécessaires (exemple générique) :

sudo apt-get install libssl-dev build-essential pkg-config

Installation du paquet openssl-dev via apt-get

Après résolution des dépendances, relancez ./configure ; il devrait maintenant détecter toutes les bibliothèques requises :

Le script configure détecte les dépendances requises

Les options du script configure incluent le choix du backend crypto, l’activation/désactivation d’ECC ou GOST, et l’intégration avec p11-kit. Pour voir toutes les options :

./configure --help 

Options disponibles du script configure

Exemple d’options importantes :

  • –with-crypto-backend=openssl|botan
  • –with-migrate (pour migrer une base de tokens v1)
  • –with-objectstore-backend-db (utiliser SQLite3 pour l’object store)

Compilez ensuite :

make 

Compilation du code SoftHSM avec make

Puis installez :

sudo make install

Installation de SoftHSM avec make install

Fichier de configuration

Par défaut, le fichier de configuration se trouve dans /etc/softhsm2.conf. Vous pouvez changer ce chemin via la variable d’environnement SOFTHSM2_CONF :

export SOFTHSM2_CONF=chemin/vers/softhsm2.conf

Le contenu par défaut définit principalement l’emplacement du répertoire des tokens et le backend objet. Exemple d’affichage :

Fichier de configuration par défaut /etc/softhsm2.conf

Note : sauvegardez une copie de ce fichier après personnalisation.

Initialiser un token

Pour créer et initialiser un token SoftHSM, utilisez softhsm2-util :

softhsm2-util --init-token --slot 0 --label "Token-1"

Initialisation d'un token SoftHSM avec softhsm2-util

  • Le Security Officer (SO) PIN sert à administrer/réinitialiser le token.
  • Le user PIN est fourni à l’application cliente pour l’utilisation normale (ex. Firefox pour un certificat client).

Après l’initialisation, SoftHSM gère automatiquement l’ajout de nouveaux slots et la réaffectation de tokens selon le numéro de série. Identifiez les tokens par label ou numéro de série pour les retrouver de façon fiable.

Autres options utiles de softhsm2-util :

Autres options de softhsm2-util

Pour lister les slots et l’état des tokens :

softhsm2-util --show-slots

Liste des slots du token SoftHSM

Sauvegarde et restauration

Tous les tokens et leurs objets sont stockés dans le répertoire indiqué par softhsm2.conf. Une sauvegarde peut se faire par simple copie de fichiers (rsync ou cp) vers un emplacement sécurisé. Pour la restauration, remplacez les fichiers puis ajustez les permissions si nécessaire.

Important

  • Chiffrez et restreignez l’accès au stockage de sauvegarde. Les fichiers contiennent des objets sensibles même si les clés privées sont protégées par PIN.

Tests avec OpenSC

OpenSC fournit des utilitaires PKCS#11 utiles pour tester un module :

sudo apt-get install opensc

Installation du paquet OpenSC via apt-get

Testez le module PKCS#11 et les mécanismes :

pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t

Le paramètre -t teste le module et les mécanismes pris en charge.

Test du module PKCS#11 avec pkcs11-tool et -t

Bonnes pratiques opérationnelles

  • Séparez les rôles : Admin système (installe/maintient), SO (gère PINs administratifs), Opérateur d’application (utilise user PIN).
  • Ne stockez pas les PIN en clair dans des dépôts de code ou des scripts non sécurisés.
  • Automatisez les sauvegardes et testez régulièrement les restaurations.
  • Limitez l’accès au répertoire d’objets (permissions Unix strictes).
  • Pour un usage en production, préférez un HSM matériel si vous avez des exigences de conformité ou une menace élevée.

Alternatives et cas d’usage

Quand SoftHSM est adapté :

  • Développement et tests locaux.
  • Déploiements non critiques où un HSM matériel n’est pas disponible.

Quand ce n’est pas adapté :

  • Exigences réglementaires fortes (FIPS, PCI-DSS) souvent demandent HSM certifié matériel.
  • Menaces élevées où la séparation physique des clés est nécessaire.

Alternatives : NitroKey, Smartcard-HSM (HSM matériels), modules cloud (Cloud HSM) ou services KMS fournis par les clouds.

Migration depuis SoftHSM v1

SoftHSM v2 propose un outil de migration si vous disposez d’une base de tokens v1. Pour cela, compilez avec –with-migrate et utilisez l’outil fourni. La migration requiert SQLite3 si la nouvelle base est configurée en DB.

Checklists par rôle

Checklist pour l’administrateur système :

  • Installer dépendances build (libssl-dev, build-essential, pkg-config).
  • Compiler et installer SoftHSM.
  • Configurer /etc/softhsm2.conf et définir SOFTHSM2_CONF si besoin.
  • Restreindre permissions du répertoire des tokens.
  • Mettre en place sauvegarde chiffrée.

Checklist pour le Security Officer :

  • Initialiser tokens via softhsm2-util.
  • Définir SO PIN et user PIN sécurisés.
  • Documenter labels et numéros de série des tokens.
  • Planifier réinitialisations et rotations de clés.

Checklist pour le développeur/application owner :

  • Tester l’accès PKCS#11 avec pkcs11-tool.
  • Vérifier compatibilité de la bibliothèque cliente (par ex. NSS, OpenSSL avec engine pkcs11).
  • Automatiser les tests de connexion et de signature.

Mini-méthodologie de déploiement (pas à pas)

  1. Vérifier prérequis système et installer paquets de dev.
  2. Télécharger et extraire l’archive SoftHSM.
  3. ./configure –with-crypto-backend=openssl
  4. make && sudo make install
  5. Configurer /etc/softhsm2.conf et droits d’accès.
  6. Initialiser token(s) avec softhsm2-util.
  7. Tester avec pkcs11-tool et intégrer l’application.
  8. Mettre en place sauvegarde et procédure de restauration.

Exemples rapides de commandes utiles

  • Lister slots :
softhsm2-util --show-slots
  • Initialiser token :
softhsm2-util --init-token --slot 0 --label "Token-1"
  • Test PKCS#11 :
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t

Fiche récapitulative (fact box)

  • Produit : SoftHSM v2 (logiciel)
  • Interface : PKCS#11
  • Usage typique : Développement, tests, environnements non prod
  • Remplace : HSM matériel pour tests, non pour conformité stricte
  • Sauvegarde : Copie sécurisée des fichiers du répertoire des tokens

Décision rapide

flowchart TD
  A[Démarrer] --> B{Besoin de conformité matérielle?}
  B -- Oui --> C[Utiliser HSM matériel ou Cloud HSM]
  B -- Non --> D{Production critique?}
  D -- Oui --> E[Évaluer HSM matériel]
  D -- Non --> F[SoftHSM pour dev/tests ou petits services]

Résumé final

SoftHSM v2 est une solution pratique pour simuler un HSM via PKCS#11, idéale pour le développement et les environnements de test. Pour la production sensible, évaluez les exigences réglementaires et la menace avant de remplacer un HSM matériel par une solution logicielle.

Notes

  • N’inventez pas de clés en clair dans vos scripts.
  • Testez la restauration des sauvegardes avant de vous en remettre en production.

Критерии приёмки

  • SoftHSM s’installe sans erreur avec les dépendances requises.
  • Un token s’initialise et apparaît dans la liste des slots.
  • Les tests PKCS#11 (pkcs11-tool -t) réussissent.
Auteur
Édition

Matériaux similaires

Capturer le trafic réseau sur Android
Sécurité Mobile

Capturer le trafic réseau sur Android

Bug iOS 12.1.2 : perte données cellulaires iPhone
Mobile

Bug iOS 12.1.2 : perte données cellulaires iPhone

Sniffer URL sur Android — Capture de paquets facile
Sécurité Mobile

Sniffer URL sur Android — Capture de paquets facile

Transformer un PC en console de salon
Jeux vidéo

Transformer un PC en console de salon

Vitesse de charge Android — mesurer et interpréter
Batterie

Vitesse de charge Android — mesurer et interpréter

SoftHSM v2 sur Ubuntu — installation et usage
Sécurité

SoftHSM v2 sur Ubuntu — installation et usage