6.2. 安全性
RHEL 10.1 crypto-policies 默认启用 PQC 算法
RHEL 10.1 中的系统范围的加密策略扩展对 post-quantum 加密(PQC)的支持,并在所有预定义的策略中默认启用 PQC 算法。与 RHEL 10.0 中的版本相比,最显著改进和修复包括:
- 混合模块型密钥封装机制(ML-KEM)和纯模块型数字签名标准(ML-DSA)在 LEGACY、DEFAULT 和 FUTURE 加密策略中启用,具有最高优先级。
- 新的 NO-PQ 子策略简化了关闭 PQC 算法。
- TEST-PQ 子策略不再启用 PQC 算法作为技术预览,但您可以在 OpenSSL 中启用纯 ML-KEM。
- FIPS 加密策略启用混合 ML-KEM 和 pure ML-DSA post-quantum 加密算法。
- 新的 OpenSSL 组选择语法将 post-quantum 组优先于类组。早期版本的行为只能通过禁用所有 PQ 组来实现。
- PQC 算法为所有策略中的 Sequoia PGP 工具启用。
-
默认情况下,为 GnuTLS TLS 连接启用 ML-DSA 算法,您可以通过
MLDSA44、MLDSA65和MLDSA87值来控制它们。 - ML-DSA-44、ML-DSA-65 和 ML-DSA-87 PQC 算法为所有加密策略中的 NSS TLS 连接启用。
-
为 NSS TLS 协商启用了
mlkem768x25519、secp256r1mlkem768和secp384r1mlkem1024混合 ML-KEM 组。
JIRA:RHEL-113008,JIRA:RHEL-101123,JIRA:RHEL-97763,JIRA:RHEL-92148,JIRA:RHEL-86059,JIRA:RHEL-103962,JIRA:RHEL-106868,JIRA:RHEL-85078,JIRA:RHEL-98732
ad-SUPPORT-LEGACY 子策略重新添加到 crypto-policies
AD-SUPPORT-LEGACY 加密子策略(用于支持传统的 RC4 加密)与过时的 Active Directory 实现互操作性,被重新添加到 RHEL。
Jira:RHEL-93323[1]
openssl rebase 到 3.5
OpenSSL 被 rebase 到上游版本 3.5。此版本提供重要的修复和增强,最重要的是:
- 添加了对 ML-KEM、ML-DSA 和 SLH-DSA 后量算法的支持。
- 将混合 ML-KEM 算法添加到默认的 TLS 组列表中。
- 增强的 TLS 配置选项。
- 根据 IETF RFC 9000 草案添加了对 QUIC 传输协议的支持。
- 添加了对 EVP_SKEY 数据结构形式不透明对称密钥对象的支持。
- 禁用 SHA-224 摘要。
-
SHAKE-128 和 SHAKE-256 实现不再具有默认的摘要长度。因此,这些算法不能与
EVP_DigestFinal/_ex ()函数一起使用,除非设置了xoflen参数。 - 添加了客户端在 TLS 1.3 连接中发送多个密钥共享的功能。
NSS rebase 到 3.112
NSS 加密工具包软件包已更新到上游版本 3.112,它提供很多改进和修复。最值得注意的是,以下内容:
- 添加了对基于 Module-Lattice 的数字签名算法(ML-DSA)的支持,它是一个 post-quantum 加密(PQC)标准。
- 添加了对 MLKEM1024 键封装机制的 SSL 的混合支持。
这个版本中出现以下已知问题:* 更新 NSS 数据库密码会破坏 ML-DSA seed。如需更多信息,请参阅 RHEL-114443。
libreswan rebase 到 5.3
libreswan 软件包被 rebase 到 5.3 上游版本。
Jira:RHEL-102733[1]
gnutls rebase 到 3.8.10
gnutls 软件包被 rebase 到 3.8.10 上游版本,其中包括以下改进:
-
您可以使用
gnutls优先级文件中的cert-compression-alg配置选项设置 TLS 证书压缩方法。 -
您可以使用
draft-ietf-lamps-dilithium-certificates-12文档中定义的 ML-DSA 私钥格式的所有变体。 - 您可以在 TLS 中使用 ML-DSA-44、ML-DSA-65 和 ML-DSA-87 签名算法。
-
您可以使用 PKCSxdg 模块来覆盖默认的加密后端作为技术预览。您可以通过在系统范围的配置中指定
[provider]部分来设置路径并固定到模块来测试此功能。
Jira:RHEL-102557[1]
Sequoia PGP 已更新,以支持 OpenPGP v6
在这个版本中,sequoia-sq 和 sequoia-sqv 可以处理 post-quantum 加密(PQC)密钥。rpm-sequoia 软件包现在支持 OpenPGP v6 签名的验证。因此,您可以使用符合 Commercial National Security Algorithm Suite (CNSA) 2.0 标准的量子数字签名。
JIRA:RHEL-101952,JIRA:RHEL-101906,JIRA:RHEL-92148,JIRA:RHEL-101905
selinux-policy rebase 到 42.1
selinux-policy 软件包被 rebase 到上游版本 42.1。此版本包含许多修复和增强,包括软件包改进。值得注意的是,与 systemd 生成器相关的 SELinux 类型已添加到 SELinux 策略中。
openssl 支持 sslkeylogfile
OpenSSL 支持 TLS 的 sslkeylogfile 格式。因此,您可以通过设置 SSLKEYLOGFILE 环境变量来记录 SSL 连接生成的所有 secret。
启用 SSLKEYLOGFILE 变量会带来明确的安全风险。在 SSL 会话中记录交换密钥可让任何人对文件具有读取访问权限,以解密通过该会话发送的应用程序流量。仅在测试和调试环境中使用此功能。
NSS 支持 ML-DSA 密钥
在这个版本中,网络安全服务(NSS)数据库支持使用基于 Module-Lattice 的数字签名算法(ML-DSA)密钥。ML-DSA 是美国国家标准与技术研究院(NIST)批准的新签名算法,以免于来自加密机机机(CRQC)的攻击。
混合 ML-KEM 加密在 FIPS 模式下工作
在这个版本中,在 RHEL 的 FIPS 模式中支持混合模块的基于密钥封装机制(ML-KEM) post-quantum 加密算法。当系统以 FIPS 模式运行时,OpenSSL 可以从 FIPS 供应商获取新混合 post-quantum 组一部分的 Elliptic Curve Diffie-Hellman (ECDH)部分。因此,OpenSSL 库对混合子密钥交换的 ECDH 部分使用 FIPS 兼容加密。
OpenSSL 3.5 为 ML-KEM 和 ML-DSA 使用标准格式
在 RHEL 10.0 中,oqsprovider 库对基于 Module-Lattice 的 Key-Encapsulation Mechanism (ML-KEM)和基于 Module-Lattice Signature Algorithm (ML-DSA)私钥使用预标准格式。当 rebase 到 OpenSSL 3.5 时,您必须使用以下命令将 ML-KEM 和 ML-DSA 密钥转换为标准格式:
openssl pkcs8 -in <old_private_key> -nocrypt -topk8 -out <standard_private_key>
# openssl pkcs8 -in <old_private_key> -nocrypt -topk8 -out <standard_private_key>
将 <old_private_key > 替换为非标准私钥的路径,将 & lt;standard_private_key > 替换为保存标准密钥的路径。
SCAP 安全指南 rebase 到 0.1.78
如需更多信息,请参阅 SCAP 安全指南发行注记。
与 EPEL 软件包相关的 SELinux 策略模块在 CRB 存储库中移到 -extra 子软件包
在 RHEL 10.0 中,与 Extra Packages for Enterprise Linux (EPEL)存储库中包含的软件包相关的 SELinux 策略模块,而不是任何 RHEL 软件包都从 selinux-policy 软件包移到 selinux-policy-epel 软件包中。这减少了 selinux-policy 的大小,使系统能够更快地执行操作,如重建和加载 SELinux 策略。
在 RHEL 10.1 中,selinux-policy-epel 的模块被移到 RHEL CodeReady Linux Builder (CRB)存储库中的以下 -extra 子软件包中:
-
selinux-policy-targeted-extra -
selinux-policy-mls-extra
当用户启用 EPEL 存储库时,这个更改启用了 -extra SELinux 策略模块的自动安装。
setroubleshoot-server 不再需要 initscripts
在此次更新之前,setroubleshoot-server SELinux 诊断工具的 %post 和 %postun scriptlets 称为 /sbin/service。有了这个更新,scriptlets 现在直接调用 auditctl 来重新加载 auditd 服务,并绕过 /sbin/service 的使用。此功能增强简化了依赖项结构,并简化了 scriptlet 的执行。
OpenSSH 忽略 known_hosts中的无效的 RSA hostkeys
在此次更新之前,如果 known_hosts 只包含错误的 hostkey,则 SSH 连接会失败并显示错误的 hostkey:在 OpenSSH 收到服务器 hostkey 时无效密钥长度 消息,即使服务器有有效的 hostkeys 可用。在这个版本中,OpenSSH 会忽略因为 known_hosts 文件中太短的 RSA hostkeys 无效。因此,OpenSSH 接收新密钥并可以建立连接,而不是失败的 SSH 连接。
Jira:RHEL-83644[1]
三个 RHEL 服务从 SELinux permissive 模式中删除
RHEL 服务的以下 SELinux 域已从 SELinux permissive 模式中删除:
-
gnome_remote_desktop_t -
pcmsensor_t -
samba_bgqd_t
在以前的版本中,最近添加到 RHEL 10 的软件包中的这些服务被临时设置为 SELinux permissive 模式,允许在系统的其余部分处于 SELinux enforcing 模式时收集有关附加拒绝的信息。现在,这个临时设置已被删除,因此这些服务现在在 SELinux enforcing 模式下运行。
Jira:RHEL-82672[1]
gnutls 在 TLS 连接中支持 ML-DSA 密钥。
在这个版本中,GnuTLS 库支持在 TLS 1.3 连接中使用带有 Module-Lattice-Based digital Signature Algorithm (ML-DSA)密钥的 X.509 证书。为了防止量子计算机攻击,证书链和 TLS 握手必须使用 post-quantum 算法进行身份验证,如 ML-DSA。
OpenSSH 服务器支持 Kerberos 身份验证指标
在 Match 配置中,OpenSSH 服务器支持来自 Kerberos 票据的身份验证指标。如果在 sshd 配置中定义 GSSAPIIndicators 选项,则带有指示器但与策略不匹配的 Kerberos 票据将被拒绝。如果至少配置一个指示符,无论是访问还是拒绝,在没有验证指示器的情况下,在没有验证指标的情况下的票据都会被明确拒绝。如需更多信息,请参阅您系统上的 sshd_config (5) 手册页。
RHEL 10.1 中通常提供 TLS 的 DNS
加密 DNS (eDNS)通常可使用 DNS-over-TLS (DoT)协议来保护所有 DNS 通信。您可以使用 eDNS 在引导时保护新的 RHEL 安装,这样可确保不会发送明文 DNS 流量。您还可以将现有 RHEL 系统转换为使用 eDNS。
要执行带有 eDNS 的新安装,请使用内核命令行指定启用了 DoT 的 DNS 服务器。如果您需要一个自定义 CA 证书捆绑包,则您只能通过在 Kickstart 文件中使用 %certificate 部分来安装它。目前,自定义 CA 捆绑包只能通过 Kickstart 安装来安装。
在现有系统上,将 NetworkManager 配置为使用新的 DNS 插件 dnsconfd,后者为 eDNS 管理本地 DNS 解析器(unbound)。添加内核参数来为早期引导过程配置 eDNS,并选择性地安装自定义 CA 捆绑包。
因此,您可以使用 DoT 协议加密所有 RHEL DNS 流量,并配置策略以防止任何回退到不安全的协议。如需了解更多详细信息,请参阅 使用加密 DNS 保护系统 DNS 流量。
Jira:RHELDOCS-21104[1]
SELinux 策略为 qgs 守护进程添加规则和类型
qgs 守护进程添加到带有 linux-sgx 软件包的 RHEL 中,它支持 TDX 机密虚拟化。当客户机操作系统请求虚拟机(VM)时,qgs 守护进程通过 UNIX 域套接字与 QEMU 通信。为了实现此目的,SELinux 策略会添加新的 qgs_t 类型、访问规则和权限。
audit.cron 有助于设置基于时间的 auditd 日志轮转
在这个版本中,auditd.cron 文件已添加到 审计软件包中。此增强提供了使用现有工具配置基于时间的 auditd 日志轮转的明确记录示例。因此,管理员有一个简单的官方指南,根据时间设置 auditd 日志轮转。
Jira:RHEL-77141[1]
SELinux 策略中限制的其他服务
此更新将额外的规则添加到限制以下 systemd 服务的 SELinux 策略中:
-
switcheroo-control -
tuned-ppd
因此,这些服务不再使用 unconfined_service_t SELinux 标签运行,这违反了 CIS 服务器级别 2 基准 "Ensure No Daemons are Unconfined by SELinux" 规则,并在 SELinux enforcing 模式下成功运行。