问题标签 [softhsm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
295 浏览

c++ - PKCS11 - 为 SHA256_HMAC 生成密钥

我使用 Botan2 库来访问 SoftHSM2。我设法生成了一些 AES/DES 密钥,但我想为 SHA256 HMAC 生成一个秘密。

我的代码(在创建会话、登录并检测到我的令牌之后):

抛出 0xd1 CKR_TEMPLATE_INCONSISTENT

我检查了 SofthHSM2 日志,但没有更多信息。

编辑

我有一些使用 nCipher 的其他示例实现,并且类似的态度与供应商机制一起使用CKM_NC_SHA256_HMAC_KEY_GEN。但是,这个不在 pkcs11 标准中,因此我不能使用它。

0 投票
1 回答
35 浏览

hsm - 当我们使用 pkcs11.C_EncryptInit 时,cbc_param 是什么

从 PTK 移动到 Luna,现在在代码中,我需要cbc_param在内部对象是唯一机制之前传递 ,。

有人能解释一下这是怎么回事吗?PTK如何管理cbc_param?有和没有有什么区别cbc_param

0 投票
1 回答
177 浏览

security - 使用 HSM 存储“主密钥” - 如何?

我正在使用softHSM(带有go库的FWIW https://github.com/ThalesIgnite/crypto11,此处的文档https://pkg.go.dev/github.com/ThalesIgnite/crypto11?tab=doc)。

我的目标是存储一个用于加密对象的“主密钥”(AES256),类似于 AWS S3 在 HSM 设备中所做的事情(因为它更安全)。从该密钥中,只需派生我需要加密我的对象(或解密它们)的任何其他密钥。

我无法理解 HSM 中生成的密钥以后如何被同一个软件程序检索。我看到 API 提到了一个context..

改写:当我像这样在 HSM 中生成密钥时:

我如何将这些密钥之一与我的程序数据(例如 S3 存储桶或客户)“关联”?如何再次检索相同的密钥(即使我无法将其从 HSM 中转储)以在以后解密数据?

我错过了这个看似愚蠢但至关重要的联系:以后如何再次检索先前生成的密钥?

0 投票
0 回答
412 浏览

windows-10 - 如何在 git bas windows 10 上安装 automake、autoconf、libtool、pkg-config

我正在尝试从这里安装 SoftHSMv2 。

在构建 SoftHSM 之前,我需要在 Windows 10 上的 git bash 上安装 GNU Autotools,例如 automake、autoconf、libtool 和 pkg-config。我将从那里获得这些工具,我尝试了 cygwin,但之后我得到了依赖错误,而构建 SoftHSMv2

0 投票
0 回答
58 浏览

hyperledger-fabric - 具有 SoftHSM2 的 Hyperledger Fabric

嗨,我一直在尝试让 Hyperledger Fabric (v2.0.1) 连接到 SoftHSM2 (v2.5.0),但没有成功。主要目的是为对称加密/解密创建一个密钥,并将密钥安全地存储在 SoftHSM2 中。我计划从 Fabric 智能合约发送未加密的数据,由 SoftHSM2 加密,然后发送回智能合约以存储在区块链账本上。同样,我计划将来自区块链的加密数据发送给 SoftHSM2 解密,将未加密的数据发送回智能合约,然后发送给用户。

我的问题是当我打包我的链码并调用智能合约方法时,Fabric 无法找到扩展名为 .so 的文件。就我而言,该文件是 libsofhsm2.so。我已经在 Fabric 之外测试了我的代码,以确保密钥生成、加密和解密功能正常工作。

我应该尝试将 Fabric 链码手动打包到 .tar.gz 文件中吗?那会是正确的方法吗?我最初认为 Fabric 智能合约可以在我的计算机上找到外部文件,但也许我错了?我还研究了将 Fabric 配置为使用 PKCS11,但没有成功(https://hyperledger-fabric.readthedocs.io/en/release-2.0/dev-setup/build.html?highlight=softhsm2)。我认为这种配置是让 Fabric 将用户私钥存储在 SoftHSM2 中,但我想要存储的只是一个与此分开的密钥。我不知道这是否相关,但智能合约是用 Javascript 而不是 Go 编写的。

任何帮助或建议将不胜感激。谢谢!

0 投票
1 回答
119 浏览

security - 如何在我的设备周围编写 PKCS#11 Wrapper?

我制作了一个非常基本的 Soft-HSM - 仅用于个人学习目的。我想给它添加一个 PKCS#11 接口。我在哪里可以了解这一点,或者也许可以找到一些已经为学习而编写的开源内容?

我意识到这可能只是因为提出这个问题(安全性差等)而被否决,但我想确保它严格用于学习目的。

0 投票
0 回答
180 浏览

python - softhsm v2 与 Utimaco 模拟器

我需要选择一个 HSM 模拟器来管理我的密钥。
你能帮我在模拟器softhsm v2Utimaco模拟器之间做出选择吗?

理想的情况是模拟器是 dockerized。我还想开发一个 Python 库,PKCS#11用于管理所选HSM.

0 投票
1 回答
50 浏览

reference - 在检查 Softhsmv2 的 OSSLEDDSATests 时不能参考 EVP_DigestSign 和 EVP_DigestVerify

我正在尝试使用 openssl 1.1.1j 和 SoftHSMv2 v2.6.1 更新我的安装,命令“make”通过,但“make check”失败。不能参考 OSSLEDDSA.cpp 中的 EVP_DigestSign 和 EVP_DigestVerify。日志是:

我尝试从 makefile 中删除 OSSLEDDSA,“make check”通过了。

另外,基于相同的服务器环境,我写了一个demo简单地调用“EVP_DigestSign”,也通过了。

所以,我不知道我的环境出了什么问题,需要一些帮助,谢谢。

0 投票
0 回答
222 浏览

hyperledger-fabric - softHSM 与 Hyperledger Fabric 的集成

我正在尝试将 softHSM 与 Hyperledger Fabric 集成。我已按照以下步骤操作:

  1. 我已经从这个链接 https://github.com/hyperledger/fabric-ca (main-branch)克隆了 repo

  2. 从上述目录执行以下 3 个命令。执行后,我得到了新的二进制文件和新的 Fabric-CA 映像。

    制作fabric-ca-server GO_TAGS=pkcs11

    制作fabric-ca-client GO_TAGS=pkcs11

    使 docker GO_TAGS=pkcs11

  3. 我已经替换了旧的二进制文件(fabric-ca-client 和 fabric-ca-server)

  4. 我正在尝试在 docker 容器中启动 Fabric-CA 并按照官方文档传递环境变量。

    ORG1_RCA:

出于安全目的,我没有提供 PIN 和标签。当我运行此容器时,私钥仍会保存到 msp/keystore 文件夹而不是 HSM 中。

0 投票
1 回答
601 浏览

java - 使用 softhsm 配置 SunPKCS11 时出现 CKR_GENERAL_ERROR

使用 softhsm 配置 SunPKCS11 时出现 CKR_GENERAL_ERROR。

平台:

环境变量:

虚拟机参数:

Java代码:

控制台输出:

softhsm2-util.exe:

在此之前,我尝试过使用pkcs11-mock。提供程序已成功配置,但在执行 keystore.load() 时它永远不会结束。

提前致谢!