我打算对我的软件模块进行 FIPS 140-2 验证过程。我已经研究了相关材料,但我仍然不清楚我可以在我的要经过 FIPS 验证的模块中使用第三方 FIPS 验证批准的算法吗?或者我是否需要编写自己的已批准算法的实现并首先获得 NIST 的批准?
我很困惑,因为;在Fips 验证模块列表中,大多数公司在他们的 fips 验证模块中都有自己经过验证的算法,这给我的印象是,必须先验证自己的算法实现,然后再将其用于验证加密模块。这是正确的吗?
任何帮助,将不胜感激。
我打算对我的软件模块进行 FIPS 140-2 验证过程。我已经研究了相关材料,但我仍然不清楚我可以在我的要经过 FIPS 验证的模块中使用第三方 FIPS 验证批准的算法吗?或者我是否需要编写自己的已批准算法的实现并首先获得 NIST 的批准?
我很困惑,因为;在Fips 验证模块列表中,大多数公司在他们的 fips 验证模块中都有自己经过验证的算法,这给我的印象是,必须先验证自己的算法实现,然后再将其用于验证加密模块。这是正确的吗?
任何帮助,将不胜感激。
FIPS 认证实验室并不关心算法来自哪里,只关心您的实现是否符合 FIPS 140-2 标准。如果您的实现符合要求,那么您将获得它的证书。
例如,如果您查看AES 认证列表,您会看到很多人使用 OpenSSL 的 AES 实现。硬件实现可能使用来自供应商的加密核心,而不是每个组织在硬件中重新实现 AES。
您必须做的是使第三方实现符合 FIPS 140-2 标准。所以你可能要写开机自检和连续自检等等。您甚至可能必须修复实现中的错误以使其通过认证测试。例如,OpenSSL 的 RSA 实现高达 0.9.7j/0.9.8b(从 2006 年开始)容易受到Bleichenbacher RSA forgery attack的攻击,因此如果您使用的是旧的 RSA 实现,则必须修复它。
需要明确的是,您的第三方实施不必事先经过 FIPS 认证。您的认证实验室将在您的实施过程中对其进行测试,然后对其进行认证。