如何在Ubuntu 16.04 LTS上安装和使用SoftHSM

SoftHSM基本上是一个通过PKCS#11接口访问的加密存储的实现。 PKCS#11接口用于通信...

如何在Ubuntu 16.04 LTS上安装和使用SoftHSM

硬件/软件令牌或硬件安全模块(HSM)与不同的应用程序一起使用来存储加密密钥(公共和私人)和证书。 例如,NitroKey和Smartcard-HSM是一对HSM。 但是,也存在一些像 SoftHSM (v2) 这样的软件替代品 ,具体地说,它正在开发作为OpenDNSSEC项目的一部分。

SoftHSM基本上是一个通过PKCS#11接口访问的加密存储的实现。 PKCS#11接口用于通信或访问加密设备,如HSM(硬件安全模块)和智能卡。 HSM设备的主要目的是生成加密密钥和签名/加密信息,而不会泄露私钥给其他人。

为了给你一个快速的背景,OpenDNSSEC用户不可能购买新的硬件令牌来存储加密密钥。 因此,为了解决这个问题,OpenDNSSEC开始提供“SoftHSM”,这是一个带PKCS#11接口的通用加密设备的软件实现。 SoftHSM旨在满足OpenDNSSEC的要求,并可与其他加密产品一起使用。

依赖

Botan或OpenSSL密码库可以用于SoftHSM项目。 如果Botan与SoftHSM一起使用,那么确保它支持GNU MP(--with-gnump),这将提高公钥操作期间的性能。

安装

SoftHSM可以从OpenDNSSEC网站获得,可以通过以下方式使用wget命令进行下载。

wget https://dist.opendnssec.org/source/softhsm-2.3.0.tar.gz

现在,使用tar命令以下面的方式提取软件包。

解压后,运行configure脚本检查SoftHSM软件的依赖关系。

./configure

以下快照显示配置脚本由于缺少“OpenSSL头”包而显示错误。

所以解决这个问题,按照下面突出显示的方式安装“openssl-dev”包。

apt-get install openssl-dev

配置脚本的输出显示所有必需的软件包现在都可用于编译工具。

以下快照显示了SoftHSM工具的配置脚本的可用选项。

配置脚本提供的所有选项都可以通过以下命令访问:

./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

现在运行make命令来编译SoftHSM的源代码。

make

接下来运行“make install command”来安装SoftHSM工具。

make install

配置文件

配置文件的默认位置是/etc/softhsm2.conf ,可以通过设置SOFTHSM2_CONF环境变量来进行更改。

export SOFTHSM2_CONF=Path_of_SoftHSM_Conf_file

SoftHSM的默认设置显示在下面的快照中。

初始化软令牌

使用SoftHSM的第一步是使用初始化它。 我们可以使用“softhsm2-util”或“PKCS#11”界面来初始化设备。 以下快照显示了SoftHSM设备的初始化。

softhsm2-util --init-token --slot 0 --label "Token-1"

安全官(SO)PIN用于重新初始化令牌,并将用户PIN发给应用程序,以便与令牌​​交互(如使用Mozilla Firefox)。 这就是为什么设置SO和用户PIN。 一旦令牌被初始化,更多的socket将自动添加到一个新的未初始化的令牌。 初始化令牌将根据令牌序列号重新分配给另一个socket。 建议通过在槽列表/令牌信息中搜索令牌标签或序列号来查找并与令牌交互。

下面显示了“softhsm2-util”的其他选项。

以下快照显示了令牌的socket。

备用

所有的令牌及其对象都存储在softhsm2.conf给出的位置。 因此备份可以作为常规文件副本来完成。

SoftHSM与OpenSC实用程序

在本教程中,OpenSC项目的PKCS11实用程序用于访问SoftHSM设备。 有关“OpenSC”的安装和使用的详细信息,请访问howtoing网站

apt-get install opensc

以下快照显示在SoftHSM上运行PKCS#11命令。 “-t”开关用于测试SoftHSM的机制。

pkcs11-tool --module /usr/local/lib/softhsm/libsofthsm2.so -l -t

结论

在本文中,我们讨论了如何在Ubuntu平台上安装和初始化基于软件的HSM工具SoftHSM。 可以使用PKCS11标准对HSM /智能卡进行配置以访问设备。


分享按钮