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.

Das könnte Dich auch interessieren …