RHEL8:FIPS 对象模块 (fipscanister) 是不是存在?

Posted

技术标签:

【中文标题】RHEL8:FIPS 对象模块 (fipscanister) 是不是存在?【英文标题】:RHEL8: FIPS Object Module (fipscanister) existing?RHEL8:FIPS 对象模块 (fipscanister) 是否存在? 【发布时间】:2021-11-15 01:36:19 【问题描述】:

我对 RHEL8 感到困惑。它报告:

# openssl
OpenSSL> version
OpenSSL 1.1.1g FIPS  21 Apr 2020
OpenSSL> exit
# find / -name fipscanister*.*

我的系统报告正在运行符合 FIPS 的 OpenSSL,但我没有在系统上找到 FIPS 容器...我检查了 ISO (rhel-8.4-x86_64-dvd.iso),在 BaseOS/Packages 中有:openssl-devel-1.1.1g-15.el8_3.x86_64.rpm,但也不包含 FIPS 容器...

需要做什么才能在系统上安装 fipscanister 库?

BR,雷内

【问题讨论】:

【参考方案1】:

我假设您的意思是 fipscanister.o(编译 FIPS 算法的目标文件)。你不会找到它,因为它是在 libcrypto.so* 中链接的。

根据[OpenSSL]: UserGuide-2.0.pdf - User Guide for the OpenSSL FIPS Object Module v2.0(重点是我的):

请注意,除了在最不寻常的情况下,FIPS 对象模块本身 (fipscanister.o) 不直接与应用程序代码链接。 取而代之的是 FIPS 对象模块 嵌入在 OpenSSL libcrypto 库 (libcrypto.a/libcrypto.so) 中,然后应用程序代码以通常的方式引用该库。这种组合被称为“支持 FIPS”的 OpenSSL 库,并在第 2.5 节中更详细地讨论。

查看[SO]: OpenSSL FIPS_mode_set not working in Python cryptography library (@CristiFati's answer) 了解(一些有趣的)详细信息。

这是一些示例输出([SO]: How to compile python3 on RHEL with SSL? SSL cannot be imported (@CristiFati's answer) 留下的环境):

[root@cfati-5510-0:/work/q069539286]> python
Python 2.7.5 (default, Nov 16 2020, 22:23:17) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes as ct
>>> 
>>> lcr = ct.CDLL("openssl-1.1.1g/lib/libcrypto.so")  # Load a library
>>> lcr.FIPS_mode()  # Call a function exported by it (for demo purposes only, not use (like this) in production)
0

【讨论】:

如何知道 OpenSSL libcrypto.so 中嵌入的 FIPS 对象模块的版本? 嗯,不幸的是我不知道该信息。但根据您获得支持 *FIPS 的 OpenSSL* 版本的位置,他们应该将其记录在案。很可能是 2.0。

以上是关于RHEL8:FIPS 对象模块 (fipscanister) 是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章

python之hashlib模块

Linux配置本地YUM源(RHEL8)

RHEL8(红帽8正式版)新特性及使用方法

在PostgreSQL数据库上启用FIPS

nmcli管理网络 RHEL8和CentOS8怎么重启网络

基于RHEL8/CentOS8的网络IP配置详解