【发布时间】:2016-03-29 19:43:55
【问题描述】:
我已打开 OpenSSL 提供的第三方二进制文件(libeay32.dll 和 ssleay32.dll)。我需要检查并验证那些提供的运行时库是否使用符合 FIPS 140-2 的加密算法。有没有办法检查这个?
【问题讨论】:
我已打开 OpenSSL 提供的第三方二进制文件(libeay32.dll 和 ssleay32.dll)。我需要检查并验证那些提供的运行时库是否使用符合 FIPS 140-2 的加密算法。有没有办法检查这个?
【问题讨论】:
有什么方法可以检查吗?
是的,有很多方法。最简单的方法是从命令行运行openssl version。如果它的 FIPS 验证加密,那么它会这样说:
> openssl version
Version: OpenSSL 1.0.1f-fips 6 Jan 2014
在 Linux 上这样做的一个相关问题是How to check FIPS 140-2 support in OpenSSL?。 Windows 有很大的不同,所以这个问题应该保持开放。
虽然前一个问题是 Linux,但您可以在 Windows 上使用dumpbin、find 和strings 执行相同的操作。确保打开开发人员提示(而不是常规命令提示)以确保诸如 dumpbin 之类的工具在路径上。
以下是您可以检查的一些内容(来自下面讨论的幻灯片):
这是一个二进制字符串的示例,该示例将来自fips/rand/fips_drbg_selftest.h:
0x2e,0xbf,0x98,0xf9,0x85,0x27,0x8b,0xff,
0x36,0xb9,0x40,0x0b,0xc0,0xa1,0xa0,0x13,
0x20,0x06,0xcc,0xe6,0x2a,0x03,0x77,0x7d,
0xee,0xde,0xcc,0x34,0xe3,0xcd,0x77,0xea,
0xd0,0x3e,0xbe,0xdd,0xf6,0x15,0xfb,0xa7,
0xd7,0x8e,0xd0,0x2e,0x2f,0x82,0x4c,0xc7,
0x87,0xb1,0x6f,0xc5,0xf8,0x5c,0x78,0xde,
0x77,0x9b,0x15,0x9a,0xb9,0x3c,0x38,0x38
我还向 OpenSSL wiki 上传了关于该主题的幻灯片。它称为Building Applications using OpenSSL Validated Cryptography: Notes from the Field for Developers and Auditors。您需要从幻灯片 18 开始查看材料。
我为OWASP 制作了幻灯片,但没有兴趣接收它。我知道 Stack Overflow 不喜欢 OpenSSL wiki 上的链接,但我不知道如何在这里提供 35+ 幻灯片。
【讨论】:
libcrypto 提供(我不确定在 Windows 上叫什么)。 libssl 使用 libcrypto,所以它只依赖于 libcrypto(同样,我不确定在 Windows 上调用的是什么)。由于某些 SSL 功能受 FIPS 的影响,因此存在一些放弃。但它确实减少到libcrypto。