【问题标题】:Creating OpenPGP messages in Java using FIPS 140-2 library使用 FIPS 140-2 库在 Java 中创建 OpenPGP 消息
【发布时间】:2011-08-25 01:36:45
【问题描述】:

我目前正在升级一个生成 OpenPGP 消息的应用程序以符合 FIPS 140-2。目前,我生成使用 RSA/AES-256 加密的 PGP 消息,这两种加密算法都是使用 BouncyCastle 及其 OpenPGP 提供程序的认可算法。我不再能够使用 BouncyCastly,因为它不是 FIPS 140-2 验证,所以我正在查看来自 RSA 的 BSAFE 库。

这个库没有让你直接生成 OpenPGP 消息的高级抽象。有谁知道可以使用能够生成 OpenPGP 消息的现有 JCE 提供程序(例如我的 BSAFE 库)的库?我真的很想避免自己实现 OpenPGP 规范,因为这似乎很耗时。或者对格式化我的加密文件的其他方法有什么建议吗?

提前感谢您的任何意见!

【问题讨论】:

    标签: java encryption public-key-encryption openpgp


    【解决方案1】:

    经过大量研究,如果不自己实现 OpenPGP 格式,似乎没有办法做到这一点。然而,加密消息语法似乎是一个合适的替代品。

    【讨论】:

    • 我认为这个结论是错误的。请看my answer.
    【解决方案2】:

    S/MIME(加密消息语法)和 OpenPGP 之间存在重大差异。

    http://mozilla-enigmail.org/forum/viewtopic.php?t=67

    主要是 S/MIME 以证书的形式交换密钥(必须使用证书颁发机构,限制为 1024 位,并在 1 年后过期),而 OpenPGP 使用 PGP 密钥(可以点对点交换,或使用免费的密钥服务器,或托管您自己的密钥服务器)。

    【讨论】:

    【解决方案3】:

    FIPS 140-2 不适用于 SSL、PGP、S/MIME 或 SSH 等协议。这些是使用 RSA 和 AES 等加密算法的安全协议。 (不过,商业加密货币供应商不太可能指出这种区别)。

    FIPS 140-2 列出了批准的算法。它还为实现这些算法的“加密模块”指定了测试标准。但是,它并没有说明这些算法的应用。

    因此,您可以使用 BouncyCastle 的 PGP 提供程序。安装您的 FIPS 140-2 认证实施,而不是安装 Bouncy Castle 作为加密提供者。 Bouncy Castle 的 PGP 将为其底层加密算法使用首选加密提供商。您可以以同样的方式使用他们的 S/MIME 支持。

    【讨论】:

    • 对,我知道理论上我可以将 BouncyCastle PGP 提供程序与另一个 FIPS 140-2 提供程序一起使用,并且仍然符合要求。但是,当我尝试这样做时,它不起作用,因为 BouncyCastle PGP 提供程序试图调用 bcprov JAR 中的 BouncyCastle 特定类。如果有办法让它发挥作用,那对我来说并不是很明显。
    • @Michael - 我明白了。我们确实有这个工作,但是我们已经有一段时间没有弄清楚所有的问题了,所以我不记得它们都是什么。我知道我们没有安装 BC 作为提供程序,但我不确定提供程序库是否不在类路径中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多