问题标签 [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 投票
2 回答
4468 浏览

java - SoftHSM2 java不工作

我正在尝试在 SoftHSM 2 上进行 POC,但是我遇到了一些问题。

HSM 配置文件:

如果我评论 slot=1 ,那么我会得到

由于某种原因,它没有得到 intizlized。有没有人可以帮助我让它与 Java 一起运行。

我的 PC 详细信息:Winn 10:64 位我已根据 softHSM 的要求添加了可分发的 VC++。

我正在附加我的 java 源文件

请帮帮我。

似乎我没有任何初始化令牌的插槽。所以试图初始化令牌。但低于错误。有人可以帮我找出我犯的错误。

解决方案:

我根据 Jariq 验证了 Windows 事件日志,它说应用程序已损坏。我确实为 Windows“softhsm2.msi”重新安装了该应用程序。

并且执行的脚本在下面,供像我这样的人参考。

在此之后,我初始化了多个令牌。非常感谢Jariq

0 投票
2 回答
1601 浏览

c# - 使用 SoftHSM 2.2.0 (ECDSA with SHA256) C# .net 从 Pkcs11Interop 为 CKM_ECDSA_SHA256 签署 PDF

我正在尝试使用Pkcs11Interop .net 库签署 Pdf 文档。我需要使用ECDSA 加密算法和SHA256 哈希算法。我正在使用SoftHSM 2.2.0来存储私钥。

我找到了一个 CKM 枚举CKM_ECDSA_SHA256,我在创建用于调用 Session 的 Sign 方法的类机制对象时传递了它。

我从“Signdata”方法得到响应,但是,在打开签名后生成的 Pdf 文件时,会出现错误“Signature Invalid”。这是 Signdata 方法调用的代码片段。我在代码中没有收到任何错误或异常,但是,我提到的 pdf 显示签名无效。

  • 请告诉我 SoftHSM 2.2.0 是否支持带有 SHA256 的 ECDSA_P256?
  • 如果没有,那么有什么方法可以启用支持吗?
  • 如果它确实支持,请帮助我如何解决这个问题?
  • 看起来它希望我通过 ECDSA_Param,有没有人有任何代码片段来传递 ECDSA_Param
0 投票
1 回答
842 浏览

java - 在 Java 中使用 SSL 的 Pkcs#11

如何在 java 中使用 pkcs#11 和 softhsm2 进行 ssl 握手。我在使用存储在 softhsm2 中的密钥实现 ssl 上下文工厂时遇到问题。请提供我可以使用的样本。

0 投票
2 回答
3071 浏览

security - 使用 HSM 的对称加密密钥

我想使用 HSM 加密/解密将存储在数据库中的敏感数据。HSM 设备/服务器可以创建对称和非对称密钥。我想以尽可能高的安全性存储数据。所以我有两种方法:

1)让HSM生成一个公钥/私钥对,它将私钥保存在其中,永远不会离开。现在我可以为每个要加密的条目创建一个随机对称密钥。我使用随机 AES 密钥加密数据,使用 HSM 中生成的公钥加密 AES 密钥,并将加密数据 + 加密密钥数据的结果存储在数据库中的每一行中。现在每次我想访问数据时,我都会将加密的密钥数据发送到 HSM,HSM 将对其进行解密并将解密后的 AES 密钥发回给我,我用它来实际解密数据。

2)每行/每个条目,我让 HSM 生成 AES 密钥并将对称密钥令牌存储在其中。我以明文形式向它发送数据,它以加密形式发回给我。每次我想访问数据时,我都会将加密数据发送到 HSM,它会解密并将其发送回给我。

HSM 服务器将是像 Thales 一样专业且快速的服务器,因此它可以快速处理流量(希望如此)。

第一个问题是我只需以 SO(安全官)身份登录即可在 HSM 中生成和存储我的公钥/私钥对,从现在开始,我只需以只读用户身份登录。但与 2 号相比,它的过程更慢、更漫长。

2号(据我所知)将要求我一直拥有对设备的访问权限。

你有什么建议?请指教。

0 投票
1 回答
1506 浏览

java - pkcs11-tool 在 java 中生成的密钥没有被加载到 pkcs11 密钥库中

当密钥由 pkcs11-tool 生成时,我在尝试从 java pkcs11 密钥库获取私钥时看到空指针异常。如果密钥是使用 keytool 生成的,这可以正常工作。我也可以从 pkcs11-tool 中列出密钥,但不能从 keytool 中列出。导入或生成 keytool 以外的密钥的正确方法是什么,以便它们对 java pkcs11 密钥库可见?

生成密钥:

从 java 加载并访问密钥(代码片段):

尝试获取上面的私钥时,请参阅异常。

0 投票
1 回答
1832 浏览

c# - 通过 PKCS#11 提取公钥值

我正在使用 Pkcs11 库从设备中检索密钥: public_keys

我能够检索公钥的 ObjectHandle。我尝试提取公钥值:

不幸的是,objectAttributeCannotBeRead设置为true并且值无法读取。即使我以用户或 SO 身份登录。

我理解这种情况,当密钥是私有的 - 由于安全原因,我无法在 HSM 设备之外获得价值。但是为什么我不能提取公钥值呢?

0 投票
1 回答
624 浏览

c# - 为什么我无法使用 PKCS#11 验证签名?

考虑一下,我创建了 PKCS#7 消息:

现在,我很想签名。以下场景有效(使用BounceCastleand PKCS11.Interop):

但是当我使用CKM_RSA_PKCS并手动计算 HASH 时,出现了问题:

我错过了什么?为什么手动计算的哈希无效?

0 投票
1 回答
562 浏览

pkcs#11 - PKCS#11 - 创建 ECDSA 密钥

考虑我有具有以下参数的示例样本 ECDSA 公钥:

这些值是用 openssl 直接提取的私钥,我相信是 ASN.1 编码的。

在 HSM 上创建 ECDSA 公钥时,我应该在CKA_EC_POINTCKA_EC_PARAMS中输入什么值?如果我将这些值直接放到属性中不起作用(我无法验证签名)。

0 投票
1 回答
109 浏览

c# - Session.GetOperationState() 方法抛出异常“方法 C_GetOperationState 在 SoftHSM 中返回 CKR_FUNCTION_NOT_SUPPORTED”

我们在我们的应用程序中使用SoftHSM。我们已经在其中生成了令牌和导入的密钥。现在我们创建了一个作业来监控我们的 SoftHSM 是否已启动并正在运行。

为此,似乎 Session.GetOperationState() 方法应该能够工作。但是我收到如下错误消息:

方法 C_GetOperationState 返回 CKR_FUNCTION_NOT_SUPPORTED。

请帮忙,如果这种方法适合我的需要,或者我应该使用其他一些功能。提前致谢。

0 投票
0 回答
90 浏览

security - 使用 SoftHSM 签署 vmlinuz?

我们正在开发 Secureboot 以保护我们的系统免受恶意女仆攻击。作为保护系统的一部分,我们对内核和相关驱动程序进行签名。我们使用 pesign 工具对内核进行签名(vmlinuz)。我尝试从 openssl 调用 PKCS 引擎,以使用存储在 SoftHSM 中的私钥对 vmlinuz 内核进行签名。但是它失败了,抱怨初始化没有完成。是否可以使用 SoftHSM 中的密钥对内核进行签名?