为了在 FIPS 140-2 环境下测试我的应用程序,我想到运行 fipsed 容器。
这是否可以做到,无需将整个主机置于 FIPS 模式,并且所有容器都在 FIPS 限制下运行?
我不相信这是可能的。某些库(如 openssl)不仅期望从(FIPS 模式)主机绑定安装“神奇”文件,而且它们还会检查
/proc/sys/crypto/fips_enabled
。 前者可能可以在容器中伪造,但使用后者(proc 文件)这样做听起来很危险。
参考此评论:https://github.com/containers/podman/issues/9193#issuecomment-791928427
事实上,要让容器使用 FIPS,容器主机也需要使用 FIPS。其他任何事情都不是供应商批准的程序。
对于快速开发人员测试,另一个答案中描述的安装技巧是一个非常好的技巧。可以这样做
创建一个包含“1”的本地文件
echo 1 > ~/one
将该文件安装到您的容器中,突然 OpenSSL 检测到它位于 FIPS 上并启用 FIPS 模式
% podman run \
-v ~/one:/proc/sys/crypto/fips_enabled \
--platform linux/amd64 \
--rm -it registry.access.redhat.com/ubi8/nodejs-18:1-102 node \
-p 'crypto.getFips()'
1