I token hardware/software o Hardware Security Modules (HSM) vengono utilizzati con diverse applicazioni per archiviare chiavi crittografiche (pubbliche e private) e certificati. Ad esempio, NitroKey e Smartcard-HSM sono un paio di HSM. Tuttavia, esistono anche alcune alternative software come SoftHSM(v2), che, in particolare, è in fase di sviluppo come parte del progetto OpenDNSSEC..
SoftHSM è fondamentalmente un'implementazione di un archivio crittografico accessibile tramite un'interfaccia PKCS #11. L'interfaccia PKCS#11 viene utilizzata per comunicare o accedere ai dispositivi crittografici come HSM (Hardware Security Modules) e smart card. Lo scopo principale dei dispositivi HSM è generare chiavi crittografiche e firmare/crittografare le informazioni senza rivelare la chiave privata agli altri.
Per darti un rapido background, non è stato possibile per gli utenti OpenDNSSEC acquistare nuovo token hardware per la memorizzazione delle chiavi crittografiche. Quindi, per contrastare questo problema, OpenDNSSEC ha iniziato a fornire "SoftHSM", un'implementazione software di un dispositivo crittografico generico con un'interfaccia PKCS#11. SoftHSM è progettato per soddisfare i requisiti di OpenDNSSEC e funzionare anche con altri prodotti crittografici.
Dipendenze
Le librerie crittografiche Botan o OpenSSL possono essere utilizzate con il progetto SoftHSM. Se Botan viene utilizzato con SoftHSM, assicurati che abbia il supporto per GNU MP (--with-gnump), qualcosa che migliorerà le prestazioni durante le operazioni con chiave pubblica.
Installazione
SoftHSM è disponibile dal sito Web di OpenDNSSEC e può essere scaricato utilizzando il comando wget nel modo seguente.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Ora estrai il pacchetto usando il comando tar nel modo seguente.
Dopo l'estrazione, esegui lo script di configurazione per verificare le dipendenze del software SoftHSM.
./configure
La seguente istantanea mostra che lo script di configurazione mostra un errore dovuto alla mancanza del pacchetto "OpenSSL header".
Quindi risolvi il problema, installa il pacchetto "openssl-dev" nel modo evidenziato come di seguito.
apt-get install openssl-dev
L'output dello script di configurazione mostra che tutti i pacchetti richiesti sono ora disponibili per la compilazione del tool.
La seguente istantanea mostra le opzioni disponibili per lo script di configurazione dello strumento SoftHSM.
È possibile accedere a tutte le opzioni offerte dallo script configure tramite il seguente comando:
./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
Ora esegui il comando make per compilare il codice sorgente di SoftHSM.
make
Quindi, esegui "make install command" per installare lo strumento SoftHSM.
make install
File di configurazione
Il percorso predefinito del file di configurazione è /etc/softhsm2.conf che può essere modificato impostando il SOFTHSM2_CONF
variabile di ambiente.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
L'impostazione predefinita di SoftHSM è mostrata nell'istantanea seguente.
Inizializza il token software
Il primo passo per utilizzare SoftHSM è utilizzare inizializzarlo. Possiamo usare l'interfaccia "softhsm2-util" o "PKCS#11" per inizializzare il dispositivo. L'istantanea seguente mostra l'inizializzazione del dispositivo SoftHSM.
softhsm2-util --init-token --slot 0 --label "Token-1"
Il PIN del responsabile della sicurezza (SO) viene utilizzato per reinizializzare il token e il PIN dell'utente viene distribuito all'applicazione in modo che possa interagire con il token (come l'utilizzo con Mozilla Firefox). Ecco perché, imposta sia SO che il PIN utente. Una volta che un token è stato inizializzato, più slot verranno aggiunti automaticamente a un nuovo token non inizializzato. I token inizializzati verranno riassegnati a un altro slot in base al numero di serie del token. Si consiglia di trovare e interagire con il token cercando l'etichetta del token o il numero di serie nell'elenco degli slot/informazioni sul token.
Di seguito sono mostrate altre opzioni di "softhsm2-util".
La seguente istantanea mostra gli slot del token.
Backup
Tutti i token e i relativi oggetti sono archiviati nella posizione fornita da softhsm2.conf. Il backup può quindi essere eseguito come una normale copia di file.
SOFTHSM con utility OpenSC
In questo tutorial, le utilità PKCS11 del progetto OpenSC vengono utilizzate per accedere al dispositivo SoftHSM. I dettagli sull'installazione e l'utilizzo di "OpenSC" sono disponibili sul sito howtoforge.
apt-get install opensc
La seguente istantanea mostra che il comando PKCS#11 viene eseguito su SoftHSM. L'interruttore "-t" viene utilizzato per testare il meccanismo di SoftHSM.
pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t
Conclusione
In questo articolo, abbiamo discusso di come lo strumento HSM basato su software SoftHSM può essere installato e inizializzato sulla piattaforma Ubuntu. Può essere configurato utilizzando lo standard PKCS11 per l'HSM/Smartcard per accedere ai dispositivi.