我有一个 OpenSSL 版本,它使用 FIPS 对象模块进行 FIPS 验证加密。某些应用程序(如 Tomcat)支持使用这种专门的 FIPS OpenSSL。您可以针对 OpenSSL 加密库进行编译,然后在某个配置文件中设置一个选项(对于 Tomcat,这将是server.xml 中的 FIPSMode=on)。
我想将 FIPS OpenSSL 与 MySQL 结合使用。我知道你可以构建 MySQL 以使用 OpenSSL,但我没有发现任何迹象表明您可以通过配置文件或其他方式启用 FIPS 模式。这可能吗?
一些背景知识:要在 FIPS 模式下使用 OpenSSL,应用程序必须调用 FIPS_mode_set(),并且必须返回非零值。如果您在 server.xml 中正确设置了 FIPSMode 标志,Tomcat 将为您执行此操作。MySQL 似乎没有这样的标志。也许还有其他方法可以实现这一点。
答案1
带有 OpenSSL 的 MySQL 可以在 FIPS 模式下运行吗?
可能不是。FIPS 140-2 不允许使用算法 MD5 和 SHA-1(有些手动放弃,因为在例如 TLS 中使用的 PRF 中提供了明确的豁免)。
不幸的是,某些版本的 MySQL 仍然依赖 SHA-1 来实现密码哈希等一些内部功能。其中包括最新版本的 MySQL,即本文撰写时的 5.7 版。
过去我见过允许 MySQL 满足 FIPS 140-2 标准的补丁,但它们是由第三方提供的。但是,一旦应用程序能够真正通过 FIPS 140-2 的复选框项目,它本身可能仍需要正式评估。