Los tokens de hardware/software o los módulos de seguridad de hardware (HSM) se utilizan con diferentes aplicaciones para almacenar claves criptográficas (públicas y privadas) y certificados. Por ejemplo, NitroKey y Smartcard-HSM son un par de HSM. Sin embargo, también existen algunas alternativas de software como SoftHSM(v2), que, específicamente, se está desarrollando como parte del proyecto OpenDNSSEC.
SoftHSM es básicamente una implementación de un almacén criptográfico accesible a través de una interfaz PKCS #11. La interfaz PKCS#11 se utiliza para comunicar o acceder a dispositivos criptográficos como HSM (Hardware Security Modules) y tarjetas inteligentes. El objetivo principal de los dispositivos HSM es generar claves criptográficas y firmar/cifrar información sin revelar la clave privada a los demás.
Para brindarle información general rápida, los usuarios de OpenDNSSEC no podían comprar un nuevo token de hardware para el almacenamiento de claves criptográficas. Entonces, para contrarrestar este problema, OpenDNSSEC comenzó a proporcionar "SoftHSM", una implementación de software de un dispositivo criptográfico genérico con una interfaz PKCS#11. SoftHSM está diseñado para cumplir con los requisitos de OpenDNSSEC y también funciona con otros productos criptográficos.
Dependencias
Las bibliotecas criptográficas Botan u OpenSSL se pueden utilizar con el proyecto SoftHSM. Si utiliza Botan con SoftHSM, asegúrese de que sea compatible con GNU MP (--with-gump), algo que mejorará el rendimiento durante las operaciones de clave pública.
Instalación
SoftHSM está disponible en el sitio web de OpenDNSSEC y se puede descargar con el comando wget de la siguiente manera.
wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz
Ahora, extraiga el paquete usando el comando tar de la siguiente manera.
Después de la extracción, ejecute el script de configuración para verificar las dependencias del software SoftHSM.
./configure
La siguiente instantánea muestra que el script de configuración muestra un error debido a que falta el paquete "Encabezado OpenSSL".
Resuelva esto, instale el paquete "openssl-dev" de la forma resaltada a continuación.
apt-get install openssl-dev
La salida del script de configuración muestra que todos los paquetes requeridos ahora están disponibles para la compilación de la herramienta.
La siguiente instantánea muestra las opciones disponibles para el script de configuración de la herramienta SoftHSM.
Se puede acceder a todas las opciones que ofrece el script de configuración a través del siguiente 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
Ahora, ejecute el comando make para compilar el código fuente de SoftHSM.
make
A continuación, ejecute "make install command" para instalar la herramienta SoftHSM.
make install
Archivo de configuración
La ubicación predeterminada del archivo de configuración es /etc/softhsm2.conf que se puede cambiar configurando SOFTHSM2_CONF
variable de entorno.
export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file
La configuración predeterminada de SoftHSM se muestra en la siguiente instantánea.
Inicializar token de software
El primer paso para utilizar SoftHSM es inicializarlo. Podemos usar la interfaz "softhsm2-util" o "PKCS#11" para inicializar el dispositivo. La siguiente instantánea muestra la inicialización del dispositivo SoftHSM.
softhsm2-util --init-token --slot 0 --label "Token-1"
El PIN del oficial de seguridad (SO) se usa para reinicializar el token y el PIN de usuario se entrega a la aplicación para que pueda interactuar con el token (como el uso con Mozilla Firefox). Por eso, establezca SO y PIN de usuario. Una vez que se ha inicializado un token, se agregarán automáticamente más ranuras a un nuevo token no inicializado. Los tokens inicializados se reasignarán a otra ranura según el número de serie del token. Se recomienda encontrar e interactuar con el token buscando la etiqueta del token o el número de serie en la lista de ranuras/información del token.
Otras opciones de "softhsm2-util" se muestran a continuación.
La siguiente instantánea muestra las ranuras del token.
Copia de seguridad
Todos los tokens y sus objetos se almacenan en la ubicación proporcionada por softhsm2.conf. Por lo tanto, la copia de seguridad se puede realizar como una copia de archivo normal.
SOFTHSM con Utilities OpenSC
En este tutorial, las utilidades PKCS11 del proyecto OpenSC se utilizan para acceder al dispositivo SoftHSM. Los detalles sobre la instalación y el uso de "OpenSC" están disponibles en el sitio de howtoforge.
apt-get install opensc
La siguiente instantánea muestra que el comando PKCS#11 se ejecuta en SoftHSM. El modificador "-t" se utiliza para probar el mecanismo de SoftHSM.
pkcs11-herramienta --módulo /usr/local/lib/softhsm/libsofthsm2.so -l -t
Conclusión
En este artículo, discutimos cómo la herramienta SoftHSM de HSM basada en software puede instalarse e inicializarse en la plataforma Ubuntu. Se puede configurar utilizando el estándar PKCS11 para que HSM/Smartcard acceda a los dispositivos.