gpt4 book ai didi

java - 为什么 Cryptoki.C_OpenSession 有时会与 HSM 断开连接

转载 作者:行者123 更新时间:2023-11-30 02:01:13 25 4
gpt4 key购买 nike

我创建了一个 Web 服务 isAlive 来检查是否可以使用 Cryptoki 创建与 HSM 软件的 session ,我使用 SoapUI 自动执行我的 Web 服务,因此我每 40 秒循环执行一次服务,它运行良好,但是经过多次通话后,我无法连接到 HSM,直到重新启动我的应用程序:这是我用来连接到 HSM 的代码部分

// create session handle 
CK_SESSION_HANDLE session= new CK_SESSION_HANDLE();

// return code
CK_RV retcode;

// get session
retcode=Cryptoki.C_OpenSession(safeNetSlot, CKF.RW_SESSION, null, null, session);
checkRetCode(retcode, "Could not open session on HSM");

log.debug("Session [{}]",session.longValue());

// do login
final String recovHsmPassword = PasswordManagement.recoverPassword(hsmPassword);
retcode=Cryptoki.C_Login(session, CKU.USER, recovHsmPassword.getBytes(), recovHsmPassword.length());
checkRetCode(retcode, "Could not login as user");

在服务执行期间,我观察日志,发现 session.longValue() 随着每次调用而递增:

这是日志:

    INFO 5056 --- [nio-8191-exec-5] ccom.test.app.V1Controler  : Request for isAlive API
DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService : Session [1]
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler : Request for isAlive API
DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService : Session [2]
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler : Request for isAlive API
DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService : Session [3]
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler : Request for isAlive API
......
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler : Request for isAlive API
DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService : Session [1176]
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler : Request for isAlive API
2018-08-14 10:39:06.550 ERROR 1 --- [nio-8443-exec-3] com.test.app.hsm.HsmService : HSM return error [MSG_ERROR general error]

我询问是否有人知道 Cryptoki.C_OpenSession 的工作原理以及为什么我与 HSM 断开连接

最佳答案

一般来说,HSM 的可用 session 数量有限。当前您正在打开 session ,但您永远不会使用 C_CloseSession 关闭它们。您应该将 session 视为资源来处理,而资源可能是稀疏的。

请注意,还有一个名为 C_TokenInfo 的函数可用于检查 token 状态。确保您使用适合该工作的正确功能。您不想在不需要时使用密码。

关于java - 为什么 Cryptoki.C_OpenSession 有时会与 HSM 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52784082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com