OpenSSL 3.4 发布!新版本带来了一系列重要更新。不过,需要注意的是,OpenSSL 3.4 包含了一些重大变更,可能与 OpenSSL 3.3 存在兼容性问题。
OpenSSL 3.4 功能亮点
系统架构优化
- Windows 环境改进:重新设计了
OPENSSLDIR
、ENGINESDIR
和MODULESDIR
目录的配置机制。现在,用户可以通过 Windows 注册表动态设置这些路径,无需在编译时固定配置。 - 性能提升:新增了 ECC 群组预计算值功能,显著优化了 P-256 曲线的 CPU 使用效率。
- 随机数生成增强:引入了 RNG JITTER 作为新的随机种子来源,增强了随机数生成的安全性。不过,该功能需要配合静态链接的 jitterentropy 库使用。
加密算法更新
- SHAKE 算法升级:SHAKE-128 和 SHAKE-256 现在需要明确指定输出长度。如果未设置
xoflen
参数,这些算法将无法与EVP_DigestFinal/_ex()
函数配合使用。 - FIPS 相关更新:
- X25519 和 X448 密钥交换在 FIPS 提供程序中暂未获得认证,因此被标记为
fips=no
。 - 扩展了 FIPS 指标,为即将到来的 FIPS 140-3 认证提前做好了准备。
- X25519 和 X448 密钥交换在 FIPS 提供程序中暂未获得认证,因此被标记为
- 新增复合签名支持:增加了对 RSA-SHA2-256 等复合签名算法的支持,并提供了新的 API 函数。
协议与标准支持
- TLS 更新:
- 对于 TLS 1.0 以上版本,重新协商机制改用空的重新协商扩展,取代了原有的空重新协商 SCSV。
- TLS 1.3 新增了对
TLS_SHA256_SHA256
和TLS_SHA384_SHA384
等仅完整性密码套件的支持。
- 证书管理增强:
- 支持 RFC 9579 (PBMAC1) 的 PKCS#12 实现,提升了加密协议的灵活性。
- 通过
req
和x509
命令新增了not_before
和not_after
选项,允许用户精确设置证书的有效期。 - 初步支持 RFC 5755 规范的属性证书,并扩展了相关的 X.509v3 扩展,使得证书管理更加全面。
- 新增了对 CMP 的 CRL 请求支持,提升了证书管理的功能性。
- API 更新:
SSL_SESSION_get_time()
、SSL_SESSION_set_time()
和SSL_CTX_flush_sessions()
等函数已升级为支持 Y2038 问题的_ex
版本。
更多详细信息,请访问 OpenSSL 3.4 更新日志。
OpenSSL 3.3 更新亮点
- QUIC 协议的进阶支持:OpenSSL 3.3 对现代传输层网络协议 QUIC 提供了全面支持。新增的亮点包括:支持 qlog 跟踪 QUIC 连接、管理 QUIC 连接空闲超时的 API、创建流以及禁用 QUIC 的隐式事件处理功能。
- 流处理与连接性能的优化:通过新引入的
SSL_write_ex2
API,优化了 QUIC 流的结束信号处理,增加了查询 QUIC 流缓冲区大小和使用情况的功能。此外,该版本在非阻塞模式下增加了对 QUIC 连接和流对象的轮询功能,进一步提升了应用的响应速度。 - 密码学功能增强:OpenSSL 3.3 版本在密码学功能上也有所扩展。新的
EVP_DigestSqueeze()
API 支持 SHAKE 摘要算法的多种输出大小。BLAKE2s 哈希算法新增可配置的输出长度,与 BLAKE2b 的灵活性相匹配。EVP_PKEY_fromdata
则增强了密钥派生功能,包括对中国剩余定理参数的支持。 - 简化构建与配置:在构建和配置方面,OpenSSL 3.3 版本新增了 CMake 导出功能。在 Unix 和 Windows 系统上的集成和部署过程更为简便。新增的 atexit 配置选项可管理库卸载时的
OPENSSL_cleanup
操作,同时,提供者激活和加载的设置也得到了改进。 - 安全性和协议的针对性优化:针对不同硬件平台,如 Microsoft Azure Cobalt 100、ARM Neoverse、Apple Silicon M3 和 RISC-V 架构在内的多种平台,进行了专门的优化,确保在各种环境下保持领先的性能和安全性。
- API 与功能的精细调整:OpenSSL 3.3 版本还引入了多项 API,用于会话时间管理、在 TLS 签名算法配置中忽略未知项,以及在多线程环境下更高效地管理 X509 证书。同时,还引入了对 HTTP 响应头的数量限制,进一步增强了客户端安全性。
兼容性与安全性提升
OpenSSL 3.3 在提升兼容性和安全性方面做出了显著的努力和改进:
- 新增了对输入字符串最小长度的检查功能,提高与 ITU-T 标准的一致性。
- 对配置设置的处理进行了优化。
- 引入了对响应头部数量的新限制,提升 HTTP 客户端的稳定性和安全性。
- 将 HMAC 操作中默认使用的哈希函数从 MD5 更新到了 SHA256。
错误修复与其它
该版本针对一些特定问题进行了修复,比如修正了BIO_get_new_index()
函数的最大索引限制问题,确保了 OpenSSL 的稳定性和可靠性。对新的 QUIC 功能感兴趣的开发者和用户,可以参考 QUIC README 文件,提供了非常有用的文档。
最新评论
亲测24H2有效,谢谢
无法记录系统日志,影响故障排查和安全审计。依赖于 rsyslog 进行日志记录的应用和服务可能会遇到问题。
您好,想请问一下是关闭后有其他影响吗
肯定啊!