很多使用SafeNet ProtectServer HSM的客户,都会遇到如何将C#和PKCS11一起使用的问题。这里进行一些简单的介绍。
使用的库为GitHub的PKCS11 Interop库。
我们先来了解一下,什么是HSM?
硬件安全模块(HSM)是一种物理计算设备,可保护和管理数字密钥以进行强身份验证并提供加密处理。这些模块通常以插入卡或直接连接到计算机或网络服务器的外部设备的形式出现。
HSM长什么样子?
HSM设备有多种产品形态,分别是PCIE型、NetWork型、USB型。如下图所示:
当然,除了SafeNet ProtectServer HSM系列,还有SafeNet Luna HSM系列产品。本文仅以ProtectServer产品为例。欲了解更多,欢迎与揽阁信息联系。
为了使用Gemalto ProtectServer HSM,您首先需要下载SDK。不幸的是,它没有公开发行,因此您需要与原厂或授权经销商取得联系。目前揽阁信息可以为您提供SafeNet ProtectServer HSM最新版本的SDK,v5.8版本(截止2019年9月29日)
假设您已安装驱动程序并已安装,则应该将大多数软件放在C:\ Program Files \ SafeNet \ Protect Toolkit 5中。
在我们的应用程序中,我们将使用网络HSM,以便使用网络HSM,您需要执行SetMode.cmd的命令
必须选择“网络模式”,记住在注册表项中输入HSM的IP地址。ET_HSM_NETCLIENT_SERVERLIST,需要具有您计划连接的计算机的ip或ip地址。
然后,可以使用KMU(一种Java程序)或ctbrowse.exe(一种本地Windows应用程序)来查看HSM。
工具
这是用于创建密钥和管理HSM等的Java程序
另一个可以用来创建密钥和管理HSM的应用程序。
现在,让我们使用该工具来创建所需的密钥,为此,我将使用KMU工具并创建一个标记为demokey的AES密钥,请注意,该密钥具有属性,并且已经将其生成到计划使用的Slot中。HSM会自动分配一个可以使用的Slot。
SafeNet ProtectServer HSM上的C#PKCS11
现在,我们终于可以进入代码了,我们将使用可以使用nuget安装的interop库。
PM> Install-Package Pkcs11Interop
说明:
在上面的示例中,我们已使用演示密钥对hello世界进行了加密,并使用带有Interop库的C#对它进行了解密。密钥永远不会进入您的代码,因为HSM是对其进行加密的密钥。
联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:
数据库访问控制:揽阁LGPAC系统
通用HSM:Luna HSM、ProtectServer HSM
支付HSM:payShield 10K
您还可以得到揽阁信息所提供的优质服务。
揽阁信息 · 值得您信赖的信息安全顾问!