Wie installiert und verwendet man SoftHSM auf Ubuntu 16.04 LTS
Hardware/Software-Token oder Hardware-Sicherheitsmodule (HSM) werden mit verschiedenen Anwendungen verwendet, um kryptographische Schlüssel (öffentlich & privat) und Zertifikate zu speichern. Zum Beispiel sind NitroKey und Smartcard-HSM ein paar HSMs. Es gibt aber auch einige Softwarealternativen wie SoftHSM(v2), das speziell im Rahmen des OpenDNSSEC-Projekts entwickelt wird….
SoftHSM ist im Wesentlichen eine Implementierung eines kryptographischen Speichers, der über eine PKCS #11-Schnittstelle zugänglich ist. Die PKCS#11-Schnittstelle dient der Kommunikation oder dem Zugriff auf die kryptographischen Geräte wie HSM (Hardware Security Modules) und Smart Cards. Der Hauptzweck von HSM-Geräten ist es, kryptographische Schlüssel und Signatur-/Verschlüsselungsinformationen zu erzeugen, ohne den privaten Schlüssel an die anderen weiterzugeben.
Um Ihnen einen schnellen Überblick zu geben, war es OpenDNSSEC-Anwendern nicht möglich, neue Hardware-Token für die Speicherung kryptographischer Schlüssel zu kaufen. Um diesem Problem entgegenzuwirken, hat OpenDNSSEC mit „SoftHSM“ eine Softwareimplementierung einer generischen kryptographischen Vorrichtung mit PKCS#11-Schnittstelle angeboten. SoftHSM wurde entwickelt, um die Anforderungen von OpenDNSSEC zu erfüllen und auch mit anderen kryptografischen Produkten zu arbeiten.
Abhängigkeiten
Botan- oder OpenSSL-Kryptobibliotheken können mit dem SoftHSM-Projekt verwendet werden, wenn Botan mit SoftHSM verwendet wird, dann stellen Sie sicher, dass es GNU MP (–with-gnump) unterstützt, was die Leistung bei Operationen mit öffentlichen Schlüsseln verbessert.
Installation
SoftHSM ist auf der OpenDNSSEC-Website verfügbar und kann mit dem Befehl wget wie folgt heruntergeladen werden.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Entpacken Sie nun das Paket mit dem Befehl tar wie folgt.
Führen Sie nach der Extraktion das configure-Skript aus, um die Abhängigkeiten der SoftHSM-Software zu überprüfen.
./configure
Der folgende Snapshot zeigt, dass das configure-Skript einen Fehler aufgrund des fehlenden Pakets „OpenSSL header“ anzeigt.
Also beheben Sie dies, installieren Sie das Paket „openssl-dev“ wie unten beschrieben.
apt-get install openssl-dev installieren
Die Ausgabe des configure-Skripts zeigt, dass nun alle benötigten Pakete für die Kompilierung des Tools zur Verfügung stehen.
Der folgende Schnappschuss zeigt die verfügbaren Optionen für das configure-Skript des SoftHSM-Tools.
Alle vom configure-Skript angebotenen Optionen können über den folgenden Befehl aufgerufen werden:
./configure --help
--disable-ecc Disable support for ECC (default enabled)
--disable-gost Disable support for GOST (default enabled)
--disable-visibility Disable hidden visibilty link mode [enabled]
--with-crypto-backend Select crypto backend (openssl|botan)
--with-openssl=PATH Specify prefix of path of OpenSSL
--with-botan=PATH Specify prefix of path of Botan
--with-migrate Build the migration tool. Used when migrating
a SoftHSM v1 token database. Requires SQLite3
--with-objectstore-backend-db
Build with database object store (SQLite3)
--with-sqlite3=PATH Specify prefix of path of SQLite3
--disable-p11-kit Disable p11-kit integration (default enabled)
--with-p11-kit=PATH Specify install path of the p11-kit module, will
override path given by pkg-config
Führen Sie nun den make-Befehl aus, um den Quellcode von SoftHSM zu kompilieren.
make
Führen Sie anschließend „make install command“ aus, um das SoftHSM-Tool zu installieren.
make install
Konfigurationsdatei
Der Standard-Speicherort der Konfigurationsdatei ist /etc/softhsm2.conf, der durch Setzen derSOFTHSM2_CONF
Umgebungsvariablen geändert werden kann.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
Die Standardeinstellung von SoftHSM ist im folgenden Schnappschuss dargestellt.
Soft-Token initialisieren
Der allererste Schritt zur Verwendung von SoftHSM ist die Verwendung von initialize it. Für die Initialisierung des Gerätes können wir die Schnittstelle „softhsm2-util“ oder „PKCS#11“ verwenden. Der folgende Schnappschuss zeigt die Initialisierung des SoftHSM-Gerätes.
softhsm2-util --init-token --slot 0 --label "Token-1"
Die Security Officer (SO) PIN wird zur Neuinitialisierung des Token verwendet und die Benutzer-PIN wird an die Anwendung weitergegeben, damit sie mit dem Token interagieren kann (wie bei der Verwendung mit Mozilla Firefox). Deshalb sollten Sie sowohl SO als auch die Benutzer-PIN einstellen. Sobald ein Token initialisiert wurde, werden automatisch weitere Slots zu einem neuen nicht initialisierten Token hinzugefügt. Initialisierte Token werden basierend auf der Seriennummer des Token einem anderen Slot zugewiesen. Es wird empfohlen, das Token zu finden und mit ihm zu interagieren, indem man nach dem Token-Label oder der Seriennummer in der Slot-Liste/Token-Info sucht.
Weitere Optionen des „softhsm2-util“ sind nachfolgend dargestellt.
Der folgende Snapshot zeigt die Slots des Token.
Sicherung
Alle Token und ihre Objekte werden an dem von softhsm2.conf angegebenen Ort gespeichert. Die Sicherung kann somit als normale Dateikopie durchgeführt werden.
SoftHSM mit OpenSC Utilities
In diesem Tutorial werden PKCS11-Dienstprogramme des OpenSC-Projekts für den Zugriff auf das SoftHSM-Gerät verwendet. Details zur Installation und Nutzung von „OpenSC“ finden Sie auf der Howtoforge-Seite.
apt-get install opensc
Der folgende Snapshot zeigt, dass der Befehl PKCS#11 auf dem SoftHSM ausgeführt wird. Mit dem Schalter „-t“ wird der Mechanismus von SoftHSM getestet.
pkcs11-tool –modul /usr/local/lib/softhsm/libsofthsm2.so -l -t
Fazit
In diesem Artikel haben wir besprochen, wie das softwarebasierte HSM-Tool SoftHSM auf der Ubuntu-Plattform installiert und initialisiert werden kann. Es kann mit dem PKCS11-Standard konfiguriert werden, damit die HSM/Smartcard auf die Geräte zugreifen kann.