系统极客一直在努力
专注操作系统及软件使用技能

OpenSSL 3.4:全面优化架构与加密算法,初步支持属性证书

network

OpenSSL 3.4 发布!新版本带来了一系列重要更新。不过,需要注意的是,OpenSSL 3.4 包含了一些重大变更,可能与 OpenSSL 3.3 存在兼容性问题。

OpenSSL 3.4 功能亮点

系统架构优化

  • Windows 环境改进:重新设计了OPENSSLDIRENGINESDIRMODULESDIR目录的配置机制。现在,用户可以通过 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 认证提前做好了准备。
  • 新增复合签名支持:增加了对 RSA-SHA2-256 等复合签名算法的支持,并提供了新的 API 函数。

协议与标准支持

  • TLS 更新
    • 对于 TLS 1.0 以上版本,重新协商机制改用空的重新协商扩展,取代了原有的空重新协商 SCSV。
    • TLS 1.3 新增了对TLS_SHA256_SHA256TLS_SHA384_SHA384等仅完整性密码套件的支持。
  • 证书管理增强
    • 支持 RFC 9579 (PBMAC1) 的 PKCS#12 实现,提升了加密协议的灵活性。
    • 通过reqx509命令新增了not_beforenot_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 文件,提供了非常有用的文档。

赞(0) 赞赏

评论 抢沙发

微信赞赏