【问题标题】:Configure Oracle JDK to use IBM JCE/JSSE providers for FIPS compliance配置 Oracle JDK 以使用 IBM JCE/JSSE 提供程序来实现 FIPS 合规性
【发布时间】:2011-08-06 09:37:02
【问题描述】:

我想将 Oracle JDK 配置为使用 IBM 的 FIPS 兼容 JCE/JSSE 安全提供程序。我需要哪些 JAR 文件以及它们应该安装在哪里? java.security 文件中的提供者列表应该是什么样的?

【问题讨论】:

  • 我很确定这将是不合规的配置(例如,未经测试)
  • 这个web page 讨论了如何在 IBM 的 JDK 上启用它们,但没有说明如何在非 IBM SDK 上执行此操作。

标签: java jce jsse fips


【解决方案1】:

我在 sun jdk5 上使用 IBMJCE,它工作正常。我猜它可能类似于fips

你需要 ibmjceprovider.jar、ibmpkcs.jar、ibmjcefips.jar

您可以在 ibm jre 中找到它们

这样的代码

static{
    //install ibm's provider
    java.security.Security.addProvider(new IBMJCE());
}

public byte[] encrypt(byte[] input)throws SecurityException{
    KeyGenerator kg = KeyGenerator.getInstance("DES");
    //call ibm's provider
    SecureRandom sr = SecureRandom.getInstance("IBMSecureRandom", new IBMJCE());
    sr.setSeed(str.getBytes());
    kg.init(sr);
    Key key = kg.generateKey();
    Cipher cipher = Cipher.getInstance("DES");
    cipher.init(1, key);
    byte[] ret = cipher.doFinal(input);
    return ret;
}

【讨论】:

    【解决方案2】:

    这是一个旧帖子,但无论如何......
    在将 IBM JVM 配置为使用 IBMJCEFIPS 提供程序时,它符合 FIPS。
    不过,这仅适用于 IBM Java。
    不要将 jars 放在 SUN JDK 中。
    对于 SUN,您应该使用同样符合 FIPS 标准的 NSS 项目

    【讨论】:

      【解决方案3】:

      根据IBM document,FIPS 批准的提供程序仅适用于 IBM SDK。

      另一个线索(因为我首先认为 Solaris 上的 WebSphere 运行在 Oracle JVM 上):在 WebSphere MQ requirements on Solaris 中,一个注释明确指出

      仅 IBM SDK 支持 FIPS 合规性

      事实上,在 Solaris 平台上,IBM SDK 是在 Sun/Oracle JVM 上构建的,但带有 many changes(ORB 和安全性...)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多