是否有任何工具可以用来测试实现是否遵循FIPS 140-2法规?
发布于 2015-09-18 16:22:41
请注意,"FIPS 140-2法规“具有误导性,而且通常无关紧要。兼容意味着您的软件使用FIPS 140-2认证密码模块,并使您的软件认证成本从20美元到200 K不等,需要6-18个月。仅仅因为您的系统通过了标准规定的自我测试和统计检查,并不意味着它是符合标准的:标准规定您必须获得认证。
(就其价值而言,强制测试通常由几个测试向量和一些PRNG上的统计检查组成,实际上编写代码并不太困难,但它们不足以要求满足。为此,您需要证书。)
还要注意,FIPS遵从性并不能保证安全性,甚至意味着您的系统更安全。事实上,通过强制关闭更安全(但未经认证)算法,这很容易导致安全性降低。此外,FIPS遵从性在几个级别上都是可用的,软件本身只能被认证为1级。级别2要求您的软件成为防篡改硬件模块的一部分,并且相应地更昂贵。
在商业环境中,典型的解决方案只是授权一个已经获得认证的密码模块,但你很幸运: OpenSSL团队已经获得了某些版本的源代码,当以某种方式编译时,它得到了认证,而且由于它是开源的,所以您也可以免费使用它--以及它的认证。
我不是指整个OpenSSL库,请注意,只是密码模块;这意味着它提供了AES和RSA之类的东西,但没有TLS或X.509。这些只是建立在密码原语之上的协议,FIPS 140-2只适用于原语。只要您使用认证模块来满足您的所有密码和PRNG需要,您就可以使用您想要的任何东西;OpenSSL是一个显而易见的选择,但您也可以使用您自己的。唯一的限制,除了一些相当具体的编译时选项和过程,是模块必须静态链接。
请注意,OpenSSL FIPS模块的认证版本通常是相当旧的;如果您使用库的其余部分具有相同的版本,您就会遇到麻烦,因为上次我检查过它时仍然包含诸如心脏出血之类的bug。(请注意,心脏出血是OpenSSL的TLS部分中的一个bug,因此FIPS与它毫无关系。)幸运的是,通常可以使用带有更新版本的OpenSSL副本的旧版本化模块。
编辑:哦,耶!请注意,FIPS 140-3将很快发布(阅读:应该在2013年8月发布),这将取代140-2,需要新的认证,可能意味着你必须切换密码模块版本。
编辑2:此外,要注意,使用符合FIPS密码通常发送性能到厕所,因为所有的自我测试。(例如,OpenSSL iPhone上的FIPS模块比内置密码慢100到1000倍。)如果这鼓励您使用更短的密钥或加密更少的东西,或使用天真的预加密压缩算法,这是一件坏事(Tm),只是降低了您的安全性。
发布于 2015-09-16 23:39:00
不,没有。外面有太多不同的系统来制造一个通用的工具。
https://crypto.stackexchange.com/questions/29194
复制相似问题