Hardware-/Software-Token oder Hardware-Sicherheitsmodule (HSM) werden mit verschiedenen Anwendungen verwendet, um kryptografische Schlüssel (öffentlich und privat) und Zertifikate zu speichern. Zum Beispiel sind NitroKey und Smartcard-HSM ein paar HSMs. Es gibt jedoch auch einige Software-Alternativen wie SoftHSM(v2), das speziell als Teil des OpenDNSSEC-Projekts entwickelt wird.
SoftHSM ist im Grunde eine Implementierung eines kryptografischen Speichers, auf den über eine PKCS #11-Schnittstelle zugegriffen werden kann. Die PKCS#11-Schnittstelle wird verwendet, um mit kryptografischen Geräten wie HSM (Hardware Security Modules) und Smartcards zu kommunizieren oder darauf zuzugreifen. Der Hauptzweck von HSM-Geräten besteht darin, kryptografische Schlüssel zu generieren und Informationen zu signieren/verschlüsseln, ohne den privaten Schlüssel an andere weiterzugeben.
Um Ihnen einen kurzen Hintergrund zu geben, war es für OpenDNSSEC-Benutzer nicht möglich, neue Hardware-Token für die Speicherung von kryptografischen Schlüsseln zu kaufen. Um diesem Problem entgegenzuwirken, begann OpenDNSSEC mit der Bereitstellung von „SoftHSM“, einer Softwareimplementierung eines generischen kryptografischen Geräts mit einer PKCS#11-Schnittstelle. SoftHSM wurde entwickelt, um die Anforderungen von OpenDNSSEC zu erfüllen und auch mit anderen kryptografischen Produkten zusammenzuarbeiten.
Abhängigkeiten
Botan- oder OpenSSL-Verschlüsselungsbibliotheken können mit dem SoftHSM-Projekt verwendet werden. Wenn Botan mit SoftHSM verwendet wird, 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 wget-Befehl auf folgende Weise heruntergeladen werden.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Extrahieren Sie nun das Paket mit dem tar-Befehl auf folgende Weise.
Führen Sie nach dem Extrahieren das Konfigurationsskript aus, um die Abhängigkeiten der SoftHSM-Software zu überprüfen.
./configure
Der folgende Schnappschuss zeigt, dass das Konfigurationsskript einen Fehler aufgrund des fehlenden "OpenSSL-Header"-Pakets anzeigt.
Also lösen Sie das Problem, installieren Sie das Paket "openssl-dev" wie unten hervorgehoben.
apt-get install openssl-dev
Die Ausgabe des configure-Skripts zeigt, dass nun alle erforderlichen Pakete für die Kompilierung des Tools verfügbar sind.
Der folgende Schnappschuss zeigt die verfügbaren Optionen für das Konfigurationsskript des SoftHSM-Tools.
Auf alle Optionen, die das configure-Skript bietet, kann über den folgenden Befehl zugegriffen 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 Befehl make aus, um den Quellcode von SoftHSM zu kompilieren.
make
Führen Sie als Nächstes „make install command“ aus, um das SoftHSM-Tool zu installieren.
make install
Konfigurationsdatei
Der Standardspeicherort der Konfigurationsdatei ist /etc/softhsm2.conf Dies kann geändert werden, indem Sie den SOFTHSM2_CONF
festlegen Umgebungsvariable.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
Die Standardeinstellung von SoftHSM wird im folgenden Schnappschuss gezeigt.
Soft-Token initialisieren
Der allererste Schritt zur Verwendung von SoftHSM besteht darin, es zu initialisieren. Wir können das "softhsm2-util" oder die "PKCS#11"-Schnittstelle verwenden, um das Gerät zu initialisieren. Der folgende Schnappschuss zeigt die Initialisierung des SoftHSM-Geräts.
softhsm2-util --init-token --slot 0 --label "Token-1"
Die PIN des Sicherheitsbeauftragten (SO) wird verwendet, um das Token neu zu initialisieren, und die Benutzer-PIN wird an die Anwendung übergeben, damit sie mit dem Token interagieren kann (wie bei der Verwendung mit Mozilla Firefox). Legen Sie daher sowohl SO als auch Benutzer-PIN fest. Sobald ein Token initialisiert wurde, werden einem neuen, nicht initialisierten Token automatisch weitere Slots hinzugefügt. Initialisierte Token werden basierend auf der Token-Seriennummer einem anderen Steckplatz neu zugewiesen. Es wird empfohlen, den Token zu finden und mit ihm zu interagieren, indem Sie nach dem Token-Label oder der Seriennummer in der Slot-Liste/Token-Info suchen.
Weitere Optionen des "softhsm2-util" werden unten gezeigt.
Der folgende Schnappschuss zeigt die Slots des Tokens.
Sicherung
Alle Token und ihre Objekte werden an dem von softhsm2.conf angegebenen Ort gespeichert. Die Sicherung kann somit als normale Dateikopie erfolgen.
fofthsm mit OpenSC-Dienstprogrammen
In diesem Tutorial werden PKCS11-Dienstprogramme des OpenSC-Projekts verwendet, um auf das SoftHSM-Gerät zuzugreifen. Einzelheiten zur Installation und Verwendung von "OpenSC" finden Sie auf der howtoforge-Site.
apt-get install opensc
Der folgende Schnappschuss zeigt, dass der PKCS#11-Befehl auf dem SoftHSM ausgeführt wird. Der Schalter "-t" wird verwendet, um den Mechanismus von SoftHSM zu testen.
pkcs11-tool --module /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 das HSM/die Smartcard auf die Geräte zugreifen kann.