第 3 章 使用系统范围的加密策略

系统范围的加密策略是一个系统组件,它配置核心加密子系统,包括 TLS、IPsec、SSH、DNSSec 和 Kerberos 协议。它提供了一小组策略,管理员可以选择这些策略。

3.1. 系统范围的加密策略

设置系统范围的策略时,RHEL 中的应用程序会遵守它,并拒绝使用不符合该策略的算法和协议,除非您明确要求应用程序这样做。也就是说,在运行系统提供的配置时,策略适用于应用程序的默认行为,但在需要时您可以覆盖它。

RHEL 9 包含以下预定义的策略:

DEFAULT
默认的系统范围加密策略级别为当前威胁模型提供了安全设置。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 2048 位,则可以接受它们。
LEGACY
确保与 Red Hat Enterprise Linux 6 及更早版本的最大兼容性;由于攻击面增加而不太安全。SHA-1 允许用作 TLS 哈希、签名和算法。CBC-mode 密码可以和 SSH 一起使用。使用 GnuTLS 的应用程序允许使用 SHA-1 签名的证书。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 2048 位,则可以接受它们。
FUTURE
更严格的前瞻性安全级别,旨在测试未来可能的策略。此策略不允许在 DNSSec 或 HMAC 中使用 SHA-1。SHA2-224 和 SHA3-224 哈希被拒绝。禁用 128 位密码。CBC-mode 密码被禁用,除了 Kerberos 中。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 3072 位,则可以接受它们。如果您的系统在公共互联网上进行通信,您可能会遇到互操作性问题。
FIPS
符合 FIPS 140 要求。fips-mode-setup 工具将 RHEL 系统切换到 FIPS 模式,在内部使用此策略。切换到 FIPS 策略不能保证符合 FIPS 140 标准。在将系统设置为 FIPS 模式后,还必须重新生成所有加密密钥。这在很多情况下是不可能的。

红帽不断调整所有策略级别,以便所有库都提供安全的默认值,但使用 LEGACY 策略时除外。虽然 LEGACY 配置文件不提供安全默认值,但它不包括任何易被利用的算法。因此,在 Red Hat Enterprise Linux 生命周期内,任何所提供的策略中启用的算法或可接受的密钥大小可能会发生变化。

此变更反映了新的安全标准和新的安全研究。如果您必须确保 Red Hat Enterprise Linux 的整个生命周期内与特定系统的互操作性,对于与该系统交互的组件,您应该选择不使用系统范围的加密策略,或使用自定义加密策略重新启用特定的算法。

重要

因为客户门户网站 API 中的证书使用的加密密钥不满足 FUTURE 系统范围的加密策略的要求,所以 redhat-support-tool 程序目前无法使用这个策略级别。

要临时解决这个问题,在连接到客户门户网站 API 时使用 DEFAULT 加密策略。

注意

只有在应用程序支持它们时,策略级别中描述为允许的特定算法和密码才可用。

管理加密策略的工具

要查看或更改当前系统范围的加密策略,请使用 update-crypto-policies 工具,例如:

$ update-crypto-policies --show
DEFAULT
# update-crypto-policies --set FUTURE
Setting system policy to FUTURE

要确保应用了加密策略的修改,请重启系统。

强大的加密默认删除不安全的密码套件和协议

以下列表包含从 RHEL 中核心加密库中删除的密码套件和协议。由于它们没有在源中存在,或者其支持在构建过程中被禁用了,所以应用程序无法使用它们。

  • DES(自 RHEL 7 开始)
  • 所有导出评级密码套件(自 RHEL 7 开始)
  • 签名中的 MD5(自 RHEL 7 开始)
  • SSLv2(自 RHEL 7 开始)
  • SSLv3(自 RHEL 8 开始)
  • 所有 ECC 曲线 < 224 位(自 RHEL 6 开始)
  • 所有二进制字段 ECC curves(自 RHEL 6 开始)

在所有策略级别禁用算法

以下算法在 RHEL 9 中包括的 LEGACYDEFAULTFUTUREFIPS 加密策略中被禁用。只能通过应用一个自定义加密策略或一个明确的单个应用程序的配置来启用它们,但生成的配置在 生产支持覆盖范围 之外。

  • 早于版本 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
  • IKEv1(自 RHEL 8 开始)

加密策略中启用的算法

每个加密策略都启用特定的密码套件和协议:

 LEGACYDEFAULTFIPSFUTURE

IKEv1

3DES

RC4

DH

最少 2048 位

最少 2048 位

最少 2048 位

最少 3072 位

RSA

最少 2048 位

最少 2048 位

最少 2048 位

最少 3072 位

DSA

TLS v1.1 和更早版本

TLS v1.2 及更新版本

数字签名和证书中的 SHA-1

CBC 模式密码

[a]

[b]

[c]

密钥小于 256 位的对称密码

[a] SSH 禁用 CBC 密码
[b] 除了 Kerberos 外,所有协议都禁用了 CBC 密码
[c] 除了 Kerberos 外,所有协议都禁用了 CBC 密码

其他资源

  • update-crypto-policies(8) 手册页