Red Hat Training

A Red Hat training course is available for RHEL 8

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

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

3.1. 系统范围的加密策略

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

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

DEFAULT
默认的系统范围加密策略级别为当前威胁模型提供了安全设置。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 2048 位,则可以接受它们。
LEGACY
确保与 Red Hat Enterprise Linux 5 及更早版本的最大兼容性;由于攻击面增加而不太安全。除了 DEFAULT 级别算法和协议外,它还包括对 TLS 1.0 和 1.1 协议的支持。允许算法 DSA、3DES 和 RC4,如果 RSA 密钥和 Diffie-Hellman 参数至少是 1023 位,则可以接受它们。
FUTURE
更严格的前瞻性安全级别,旨在测试未来可能的策略。此策略不允许在签名算法中使用 SHA-1。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果 RSA 密钥和 Diffie-Hellman 参数至少是 3072 位,则可以接受它们。如果您的系统在公共互联网上进行通信,您可能会遇到互操作性问题。
FIPS
符合 FIPS 140 要求。将 RHEL 系统切换到 FIPS 模式的 fips-mode-setup 工具在内部使用此策略。切换到 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 开始)

在所有策略级别禁用密码套件和协议

以下密码套件和协议在所有加密策略中被禁用。它们只能通过明确配置各个应用来启用。

  • DH 带有参数 < 1024 位
  • RSA 带有密钥大小 < 1024 位
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 仅完整性密码套件
  • 使用 SHA-384 HMAC 的 TLS CBC 模式密码组合
  • AES-CCM8
  • 所有 ECC curves 与 TLS 1.3 不兼容,包括 secp256k1
  • IKEv1(自 RHEL 8 开始)

在加密策略中启用的密码套件和协议

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

 LEGACYDEFAULTFIPSFUTURE

IKEv1

3DES

RC4

DH

最少 1024 位

最少 2048 位

最少 2048 位[a]

最少 3072 位

RSA

最少 1024 位

最少 2048 位

最少 2048 位

最少 3072 位

DSA

TLS v1.0

TLS v1.1

数字签名中的 SHA-1

CBC 模式密码

[b]

密钥小于 256 位的对称密码

证书中的 SHA-1 和 SHA-224 签名

[a] 您只能使用 RFC 7919 和 RFC 3526 中定义的 Diffie-Hellman 组。
[b] TLS 禁用 CBC 密码。在非 TLS 场景中,AES-128-CBC 被禁用,但启用了 AES-256-CBC。要禁用 AES-256-CBC,请应用自定义子策略。

其它资源

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