使用FIPS 140-2库在Java中创建OpenPGP消息

3

我正在升级一个生成符合FIPS 140-2标准的OpenPGP消息的应用程序。目前,我使用BouncyCastle及其OpenPGP提供程序来生成使用RSA/AES-256加密的PGP消息,这两种算法都是已批准的算法。由于BouncyCastly未经过FIPS 140-2验证,因此我不能再使用它,因此我正在研究RSA的BSAFE库。

该库没有高级抽象,无法直接生成OpenPGP消息。有人知道是否有一个库可以使用现有的JCE提供程序(例如我的BSAFE库),能够生成OpenPGP消息吗?我真的很想避免自己实现OpenPGP规范,因为那似乎会非常耗时。或者,有没有其他方式来格式化我的加密文件?

非常感谢您提供的任何帮助!

3个回答

0
经过大量研究,似乎没有办法在不自己实现OpenPGP格式的情况下完成此操作。然而,密码消息语法似乎是一个合适的替代品。

我认为这个结论是错误的。请查看我的答案 - erickson

0

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

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

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

信任等级体系 vs 信任网络。http://www.gpg4win.org/doc/zh/gpg4win-compendium_10.html - Duke

0

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
@Michael - 我明白了。我们确实已经解决了这个问题,但是自从我们解决了所有的小问题以来已经有一段时间了,所以我不记得它们都是什么了。我知道我们没有安装BC作为提供程序,但我不确定提供程序库是否在类路径之外。 - erickson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接