Menu Close

10.2. crypto-policies、RHEL 内核加密组件和协议

弃用了 SHA-1

在 RHEL 9 中,使用 SHA-1 签名在 DEFAULT 系统范围的加密策略中受到限制。除了 HMAC 外,TLS、DTLS、SSH、IKEv2、DNSSEC 和 Kerberos 协议中不再允许使用 SHA-1。没有由 RHEL 系统范围的加密策略控制的单个应用程序也在 RHEL 9 中使用 SHA-1 哈希。

如果您的场景需要使用 SHA-1 来验证现有或第三方加密签名,您可以输入以下命令启用它:

# update-crypto-policies --set DEFAULT:SHA1

或者,您可以将系统范围的加密策略切换到 LEGACY 策略。请注意,LEGACY 也启用了很多不安全的其他算法。如需更多信息,请参阅 RHEL 9 安全强化文档中重新启用 SHA-1 部分。

有关仍需要 SHA-1 的系统的兼容性问题的解决方案,请查看以下 KCS 文章:

在所有策略级别禁用算法

以下算法在 RHEL 9 提供的 LEGACYDEFAULTFUTURE 加密策略中被禁用:

  • 早于版本 1.2 的 TLS (自 RHEL 9 开始,在 RHEL 8 中为 < 1.0)
  • 早于 版本 1.2 的 DTLS (自 RHEL 9 开始,在 RHEL 8 中为 < 1.0)
  • DH 的参数 < 2048 位(自 RHEL 9 开始,在 RHEL 8 中是 < 1024 位)
  • RSA 的密钥大小 < 2048 位(自 RHEL 9 开始,在 RHEL 8 中是 < 1024 位)
  • DSA(自 RHEL 9 开始,在 RHEL 8 中是 < 1024 位)
  • 3DES(自 RHEL 9 开始)
  • RC4(自 RHEL 9 开始)
  • FFDHE-1024 (自 RHEL 9 开始)
  • RbacConfig-DSS(自 RHEL 9 开始)
  • Camellia(自 RHEL 9 开始)
  • ARIA
  • SEED
  • IDEA
  • 仅完整性密码套件
  • 使用 SHA-384 HMAC 的 TLS CBC 模式密码组合
  • AES-CCM8
  • 所有 ECC curves 与 TLS 1.3 不兼容,包括 secp256k1
  • IKEv1(自 RHEL 8 开始)
小心

如果您的场景需要禁用的策略,您可以通过应用自定义加密策略或明确配置单个应用程序来启用它,但不支持生成的配置。

对 TLS 的更改

在 RHEL 9 中,TLS 配置是使用系统范围的加密策略机制执行的。不再支持 1.2 以下的 TLS 版本。DEFAULTFUTURELEGACY 加密策略只允许 TLS 1.2 和 1.3。如需更多信息,请参阅 使用系统范围的加密策略

RHEL 9 中包含的库所提供的默认设置对于大多数部署来说已经足够安全了。TLS 实现尽可能使用安全算法,而不阻止来自或到旧客户端或服务器的连接。在具有严格安全要求的环境中应用强化设置,在这些环境中,不支持安全算法或协议的旧客户端或服务器不应连接或不允许连接。

RHEL 9 不支持 SCP

安全复制协议(SCP)协议不再被支持,因为它很难安全。它已经造成了安全问题,如 CVE-2020-15778。在 RHEL 9 中,SCP 默认由 SSH 文件传输协议(SFTP)替代。

小心

默认情况下,SSH 无法从 RHEL 9 系统连接到旧的系统(例如,RHEL 6)或从旧的系统连接到 RHEL 9。这是因为旧版本中使用的加密算法现在被视为不安全。如果您的用例需要连接到旧的系统,您可以使用 ECDSA 和 ECDH 算法作为旧系统上的密钥,或者在 RHEL 9 系统中使用旧的加密策略。详情请查看从 RHEL 9 到 RHEL 6 系统 SSH 的解决方案无法正常工作与 SSH 服务器和客户端连接不支持"server-sig-algs"扩展

默认禁用 OpenSSH root 密码登录

RHEL 9 中 OpenSSH 的默认配置不允许用户以 root 身份使用密码登录,以防止攻击者获得对密码的暴力攻击。

gnutls 不再支持 TPM 1.2

GnuTLS 库不再支持受信任的平台模块(TPM)1.2 技术。通过 GnuTLS API 使用 TPM 的应用程序必须支持 TPM 2.0。

gnutls 对 GOST 的支持已被删除

在 RHEL 8 中,通过系统范围的加密策略禁用了 GOST 密码。在 RHEL 9 中,GnuTLS 库中删除了对这些加密机制的支持。

cyrus-sasl 现在使用 GDBM 而不是 Berkeley DB

cyrus-sasl 软件包构建时没有 libdb 依赖项,sasldb 插件使用 GDBM 数据库格式而不是 Berkeley DB。要迁移以旧 Berkeley DB 格式存储的现有简单身份验证和安全层(SASL)数据库,请使用 cyrusbdb2current 工具,语法如下:

cyrusbdb2current <sasldb_path> <new_path>

NSS 不再支持 DBM 和 pk12util 默认值更改

网络安全服务(NSS)库不再支持对信任数据库的 DBM 文件格式。在 RHEL 8 中,SQLite 文件格式是默认格式,现有的 DBM 数据库以只读模式打开,并自动转换为 SQLite。升级到 RHEL 9 之前,请将所有信任数据库从 DBM 更新到 SQLite。

另外,pk12util 工具现在在导出私钥时默认使用 AES 和 SHA-256 算法而不是 DES-3 和 SHA-1。

请注意,RHEL 9 中所有签名的默认系统范围的加密策略禁用了 SHA-1。

FIPS 模式不支持 openssl ENGINE 扩展 API

传统的适用于 OpenSSL 的扩展系统(ENGINE API)与新供应商 API 不兼容。因此,依赖于 OpenSSL 引擎提供功能的应用程序,如 openssl-pkcs11openssl-ibmca 模块无法在 FIPS 模式中使用。