【问题标题】:Error occure when nCipherKM test instalationnCipherKM 测试安装时出现错误
【发布时间】:2020-03-04 23:43:48
【问题描述】:

当我运行 java com.ncipher.provider.InstallationTest 以检查正确的安装提供程序 nCipherKM 时发生错误。

> java com.ncipher.provider.InstallationTest
talled providers:
nCipherKM
SUN
SunRsaSign
SunEC
SunJSSE
SunJCE
SunJGSS
SunSASL
XMLDSig
 SunPCSC
 SunMSCAPI

Exception in thread "main" java.lang.ExceptionInInitializerError
        at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:378)
        at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:323)
        at javax.crypto.JceSecurity.access$000(JceSecurity.java:50)
        at javax.crypto.JceSecurity$1.run(JceSecurity.java:85)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:82)
        at javax.crypto.JceSecurityManager.<clinit>(JceSecurityManager.java:65)
        at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2586)
        at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2610)
        at com.ncipher.provider.InstallationTest.unlimitedStrengthJurisdictionPolicyFilesInstalled(InstallationTest.java:130)
        at com.ncipher.provider.InstallationTest.main(InstallationTest.java:70)
Caused by: java.lang.SecurityException: Framework jar verification can not be initialized
        at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:228)
        ... 11 more
Caused by: com.ncipher.provider.nCCommunicationException: Error NoUsableModules while opening channel for MessageDigest mech 44 (SHA1Hash)
        at com.ncipher.provider.nCHash.openChannel(nCHash.java:208)
        at com.ncipher.provider.nCHash.updateChannel(nCHash.java:215)
        at com.ncipher.provider.nCHash.flush(nCHash.java:175)
        at com.ncipher.provider.nCHash.engineDigest(nCHash.java:91)
        at java.security.MessageDigest$Delegate.engineDigest(Unknown Source)
        at java.security.MessageDigest.digest(Unknown Source)
        at javax.crypto.JarVerifier.getSystemEntropy(JarVerifier.java:857)
        at javax.crypto.JarVerifier.testSignatures(JarVerifier.java:744)
        at javax.crypto.JarVerifier.access$400(JarVerifier.java:37)
        at javax.crypto.JarVerifier$1.run(JarVerifier.java:222)
        at javax.crypto.JarVerifier$1.run(JarVerifier.java:187)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.crypto.JarVerifier.<clinit>(JarVerifier.java:186)
        ... 11 more

我做什么:

  1. 将 nCipherKM.jar 文件从 /java/classes 复制到 /jre/lib/ext。
  2. 从 oracle 下载 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 并将 local_policy.jar 和 US_export_policy.jar 复制到 jre/lib/security
  3. 首先添加到 jre/lib/security/java.security nCipherKM 提供程序:

    security.provider.1=com.ncipher.provider.km.mCipherKM security.provider.2=sun.security.provider.Sun security.provider.3=sun.security.rsa.SunRsaSign ...

  4. 运行:

    java com.ncipher.provider.InstallationTest

然后出错。

【问题讨论】:

  • (1) 对于 Oracle 8u161,您不再需要安装无限策略,它已经存在(对于 OpenJDK 一直存在)(2) 尝试将 ncipher 作为 last提供者不是第一个,测试至少应该加载并告诉你(它认为)发生了什么

标签: java hsm


【解决方案1】:

问题在于您的 HSM 不可用,这意味着它们无法访问、处于错误模式或处于其他无法使用的状态:

引起:com.ncipher.provider.nCCommunicationException:错误 NoUsableModules 同时为 MessageDigest mech 44 打开通道 (SHA1Hash)

运行 /opt/nfast/bin/enquiry 以找出模块的状态并进行相应修复。

您将 nCipherKM 作为列表中的第一个(正如它在手册中所说的那样),这意味着您的 JVM 将使用它进行所有加密操作,包括散列。

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2020-12-04
    • 2021-11-18
    • 2014-05-01
    相关资源
    最近更新 更多