代码之家  ›  专栏  ›  技术社区  ›  e2rabi

为什么Cryptoki.C\u OpenSession有时会与HSM断开连接

  •  1
  • e2rabi  · 技术社区  · 7 年前

    我创建了一个web服务isAlive来检查我是否可以使用Cryptoki创建与HSM软件的会话,我使用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");
    

    这是日志:

        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\u OpenSession是如何工作的,以及为什么我要从HSM断开连接

    1 回复  |  直到 7 年前
        1
  •  3
  •   Maarten Bodewes    7 年前

    C_CloseSession . 您应该像处理资源一样处理会话,并且资源可能是稀疏的。

    C_TokenInfo 可用于检查令牌状态的。确保你使用的是正确的功能。你不想在不需要的时候使用密码。

    推荐文章