问题标签 [hsm]

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 回答
1620 浏览

sign - 使用 SoftHSM 签署数据

我想使用 SoftHSMv2 和 pkcs11-tool 对一些数据进行签名(或加密)。

到目前为止,我生成了一个 RSA 密钥对:

但是当我尝试签署一些东西时:

我收到以下错误消息:

根据我阅读文档的理解,我应该可以使用 SoftHSM 签名,但也许我错了?

是否有在编译期间添加的选项或其他解决我的问题的选项?如果没有,市场上是否还有其他 SSM 产品?

0 投票
0 回答
2383 浏览

spring-boot - 使用 HSM 提供的密钥库使用 HTTPS 配置 Spring Boot 会导致错误

使 Java 能够使用基于 PKCS#11 HSM 的密钥库的标准配置是不对密钥库路径配置任何内容(保持为空)并配置 java 安全性以获取 PKCS 11 安全性提供程序。此处提供了更多信息(使用 Sun/Oracle JVM)。Keystore 上的 Java 文档指定 - 为了创建一个空的密钥库,或者如果无法从流中初始化密钥库,请将 null 作为流参数传递。(参考:here)但是使用 Spring Boot 这样做会导致以下异常:

看来“org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory”类不允许密钥库路径为空。它尝试从给定路径加载资源。

Spring Boot 版本为 1.3.0。我查看了最新版本,https://github.com/spring-projects/spring-boot/blob/master/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory .java并且代码似乎没有更改(第 343 行) 有趣的是,当代码尝试加载信任存储时,它受到了很好的保护(允许空信任存储路径),请参见第 358 行。

这是一个简单的修复 - 检查密钥库路径是否为空和/或空并让它保持不变。

对于希望解决此问题的任何其他人,存在解决方法 - 通过覆盖“org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory”的“configureSsl”方法并将此实例配置为应用程序配置中的 EmbeddedServletContainerFactory。

问题是:是否有另一种方法可以在 Spring Boot 中配置安全/密钥库,这样我就不需要覆盖 TomcatEmbeddedServletContainerFactory?或者我应该考虑在 Spring Boot 上记录问题并建议一个补丁?

0 投票
2 回答
1096 浏览

smartcard - 使用 PKCS#11 API 的 C 应用程序链接错误

我正在尝试编译仅执行 PKCS#11 初始化但出现以下错误的示例基本代码;

rpm 命令显示以下路径

我的代码粘贴在下面

但仍然收到错误

请指导如何解决此问题

0 投票
3 回答
3966 浏览

java - HSM 错误 | 私钥必须是 RSAPrivate(Crt)Key 的实例或具有 PKCS#8

从 HSM 检索私钥时解密数据时收到错误。

我在 java.security 中添加了 sunpkcs11 提供程序。因此,不要通过代码添加提供者。文本已成功加密。但是,在解密加密文本时,我在以下行出现以下错误:

我在这里缺少什么?

错误:

下面是代码:

0 投票
2 回答
5597 浏览

hsm - 从 tr31 密钥块中提取密钥(从 HSM Thales 9000 导出)

使用 HSM 命令 A0(生成密钥),我得到以下响应。

我的问题是:

如何从 tr31 密钥块中提取密钥(在 tmk 下)?

有谁知道如何解码 tr31 密钥块?

0 投票
1 回答
985 浏览

encryption - l 使用 HSM 存储密钥解密时出现哈希不匹配错误

在解密加密密钥时,我收到 lhash 不匹配错误。密钥使用RSA/ECB/OAEPWithSHA-1AndMGF1Padding 加密。我使用 PKCS#11 provider 。这是我的代码。请为此提供解决方案..

}

我收到的错误如下。

0 投票
1 回答
838 浏览

oracle - Oracle TDE 找不到新的 PKCS#11 库

我以前使用过带有 Oracle 数据库的 Utimaco HSM,但我想将 pcks#11-spy orpkcs#11-logger` 放在 hsm 之间。Utimaco HSM 库正在运行,我使用了以下命令:

但现在我正在尝试使用pkcs11-spy. 但 Oracle 找不到新库并返回以下内容:

我不清楚如何C:\oracle\extapi\32\hsm\...为间谍设置文件夹。将来我想构建自己的 pkcs11 库,我也会遇到同样的问题,即不知道如何设置 pkcs11 库。

0 投票
3 回答
7047 浏览

java - SunPKCS11 Provider 初始化后如何完成?

我已通过以下方式初始化 SunPKCS11 提供程序:

然后我使用这个提供程序来初始化 KeyStore 以使用密钥进行密码操作。

完成密码操作后,我应该如何使用 PKCS11 令牌完成会话?

我已经尝试删除提供程序,但它没有工作。

下次我尝试与令牌通信时,我从令牌CKR_CRYPTOKI_ALREADY_INITIALIZED中得到这个异常

更新

我努力了

但它也没有用。

我有一个用例,我必须同时使用 PKCS#11 Wrapper 和 Provider。为了能够使用包装器,我必须最终确定提供程序,否则CKR_CRYPTOKI_ALREADY_INITIALIZED 当包装器尝试与令牌通信时,令牌会引发错误。

更新代码:

我正在使用 Sun 的 PKCS#11 Provider 和 IAIK 的 PKCS#11 Wrapper。

由于 Sun 的提供商没有注销和关闭会话,因此 IAIK 无法访问令牌。并且 Java 的Keystoreapi 没有注销的方法。

0 投票
0 回答
107 浏览

linux - 在远程机器上运行 make build 时出错

因此,我开发了一个 python 性能测试来在 HSM 上运行一些测试。我正在按照说明下载 PyKCS11,这是我在远程机器上需要的一个重要模块。我安装了最新版本的 swig,我正在尝试在我下载到机器目录中的 PyKCS11 文件夹上运行构建。运行 make 构建时,我遇到了非常多的错误。关于这些错误发生了什么的建议?

抱歉,堆栈跟踪太长了。不确定如何压缩它,因此它显示了可能解决方案的正确错误消息。无论如何,这就是我在远程机器上运行我的 python 脚本时得到的结果。我认为问题在于找到正确的编译器,但我并不完全确定。

此外,我在调用解释器时尝试导入 PyKCS11 以查看更简化的错误版本。

0 投票
0 回答
84 浏览

security - HSM RNG - 符合 FIPS 186-2

如果说 HSM 的 RNG 符合 FIPS 140-2(已批准的 DRBG - SP 800-90 CTR 模式)是否也意味着它符合 FIPS 186-2?

谢谢你的帮助。