Hardwarové/softwarové tokeny nebo hardwarové bezpečnostní moduly (HSM) se používají s různými aplikacemi k ukládání kryptografických klíčů (veřejných a soukromých) a certifikátů. Například NitroKey a Smartcard-HSM jsou pár HSM. Existují však také některé softwarové alternativy, jako je SoftHSM(v2), který je konkrétně vyvíjen jako součást projektu OpenDNSSEC..
SoftHSM je v podstatě implementace kryptografického úložiště přístupného přes rozhraní PKCS #11. Rozhraní PKCS#11 se používá pro komunikaci nebo přístup ke kryptografickým zařízením, jako jsou HSM (Hardware Security Modules) a čipové karty. Primárním účelem HSM zařízení je generovat kryptografické klíče a podepisovat/šifrovat informace, aniž by byl soukromý klíč odhalen ostatním.
Abychom vám poskytli rychlý přehled, nebylo možné pro uživatele OpenDNSSEC zakoupit nový hardwarový token pro ukládání kryptografických klíčů. Aby se tedy tomuto problému zabránilo, začala OpenDNSSEC poskytovat „SoftHSM“, softwarovou implementaci generického kryptografického zařízení s rozhraním PKCS#11. SoftHSM je navržen tak, aby splňoval požadavky OpenDNSSEC a také spolupracoval s dalšími kryptografickými produkty.
Závislosti
S projektem SoftHSM lze použít kryptografické knihovny Botan nebo OpenSSL. Pokud se Botan používá se SoftHSM, pak se ujistěte, že má podporu pro GNU MP (--with-gnump), něco, co zlepší výkon při operacích s veřejným klíčem.
Instalace
SoftHSM je k dispozici na webu OpenDNSSEC a lze jej stáhnout pomocí příkazu wget následujícím způsobem.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Nyní extrahujte balíček pomocí příkazu tar následujícím způsobem.
Po extrakci spusťte konfigurační skript pro kontrolu závislostí softwaru SoftHSM.
./configure
Následující snímek ukazuje, že konfigurační skript zobrazuje chybu kvůli chybějícímu balíčku "OpenSSL header".
Takže to vyřešte, nainstalujte balíček "openssl-dev" způsobem zvýrazněným níže.
apt-get install openssl-dev
Výstup konfiguračního skriptu ukazuje, že všechny požadované balíčky jsou nyní k dispozici pro kompilaci nástroje.
Následující snímek ukazuje možnosti dostupné pro konfigurační skript nástroje SoftHSM.
Všechny možnosti nabízené konfiguračním skriptem jsou přístupné pomocí následujícího příkazu:
./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
Nyní spusťte příkaz make pro kompilaci zdrojového kódu SoftHSM.
make
Dále spusťte příkaz "make install" a nainstalujte nástroj SoftHSM.
make install
Konfigurační soubor
Výchozí umístění konfiguračního souboru je /etc/softhsm2.conf který lze změnit nastavením SOFTHSM2_CONF
proměnná prostředí.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
Výchozí nastavení SoftHSM je zobrazeno na následujícím snímku.
Inicializovat softwarový token
Úplně prvním krokem k použití SoftHSM je použít jej inicializovat. K inicializaci zařízení můžeme použít rozhraní „softhsm2-util“ nebo „PKCS#11“. Následující snímek ukazuje inicializaci zařízení SoftHSM.
softhsm2-util --init-token --slot 0 --label "Token-1"
PIN bezpečnostního úředníka (SO) se používá k opětovné inicializaci tokenu a uživatelský PIN je předán aplikaci, aby mohla s tokenem interagovat (jako při použití s Mozilla Firefox). Proto nastavte SO i uživatelský PIN. Jakmile je token inicializován, budou k novému neinicializovanému tokenu automaticky přidány další sloty. Inicializované tokeny budou znovu přiřazeny do jiného slotu na základě sériového čísla tokenu. Doporučuje se najít token a pracovat s ním vyhledáním štítku tokenu nebo sériového čísla v seznamu slotů/informacích o tokenu.
Další možnosti "softhsm2-util" jsou uvedeny níže.
Následující snímek ukazuje pozice tokenu.
Záloha
Všechny tokeny a jejich objekty jsou uloženy v umístění dané softhsm2.conf. Zálohování tak může být provedeno jako běžná kopie souboru.
SOFTHSM s OpenSC Utilities
V tomto tutoriálu se pro přístup k zařízení SoftHSM používají nástroje PKCS11 projektu OpenSC. Podrobnosti o instalaci a používání "OpenSC" jsou k dispozici na stránce howtoforge.
apt-get install opensc
Následující snímek ukazuje, že příkaz PKCS#11 je spuštěn na SoftHSM. Přepínač "-t" se používá k testování mechanismu SoftHSM.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t
Závěr
V tomto článku jsme diskutovali o tom, jak lze nainstalovat a inicializovat softwarový nástroj HSM SoftHSM na platformě Ubuntu. Lze jej nakonfigurovat pomocí standardu PKCS11 pro přístup k zařízením HSM/Smartcard.