
新分支 OpenSSL 3.6 六个月后,它现已上市 以前这是对广受欢迎的开源加密库的一次重大更新。它带来了功能变更、安全性改进和性能优化,这些都会影响服务器和客户端应用程序。
除了支持最新技术和标准要求的调整外,此版本还引入了简化集成的实用程序和 API。在实践层面, 内部检查更加严格,互操作性得到改善,并且关键加密路径在多个架构上得到微调。
OpenSSL 3.6 中的主要新功能和协议
最明显的变化是签名的验证。 符合 NIST SP 800-208 标准的 LMS 在 FIPS 提供商中,默认情况下,随着不透明的 EVP_SKEY 对称密钥对象的到来,密钥派生和交换方法可以通过 EVP_KDF_CTX_set_SKEY(), EVP_KDF_derive_SKEY() y EVP_PKEY_derive_SKEY().
- CMS 结合了 KEMRecipientInfo(RFC 9629)和 ML-KEM 支持(草案 draft-ietf-lamps-cms-kyber),有助于使用可抵御未来量子对手的密码学。
- 服务器可以启用 TLS 1.3 中的 OCSP 多重装订,改进具有多个证书的链的撤销状态传递。
- 允许在堆栈类型中定义“自由函数 thunk”
OPENSSL_sk,从而更好地控制资源的释放。
安全性和 FIPS 合规性
该版本通过以下方式强化了验证模式的保证: FIPS 140-3 自检测试 (PCT):在 DH 密钥生成中,在使用 FIPS 时导入 SLH-DSA 密钥时,以及在导入 RSA、EC 和 ECX 密钥时在 FIPS 提供程序中,均符合 IG 10.3 指南。
该提供商还添加了以下支持 根据 FIPS 186-5 确定性生成 ECDSA 签名,并纳入了 PKEY 对象的 NIST 安全类别,使得根据所需的加密级别进行分类和应用策略变得更加容易。
OpenSSL 3.6 中的性能和架构优化
在 x86_64 上,OpenSSL 3.6 进行了优化 适用于 AES-CFB128 的英特尔 AVX-512 和 VAES,在密集型工作负载方面有显著改进。AArch64(64 位 ARM)增加了对 AES-CBC+HMAC-SHA 交错算法的支持,旨在加速认证加密场景。
LoongArch 架构接收以下汇编实现 SHA-2 以提高性能,而 QUIC 堆栈在确认所有流的 FIN 时添加通知,将有用的信息推进到应用程序平面。
编译和工具的变化
该项目最终放弃了 ANSI-C 编译器:从现在开始,工具链将 C99 功能 构建 OpenSSL。此外,还添加了实用程序 openssl configutl,旨在处理配置文件并转储等效文件。
在维护领域, 删除对 VxWorks 的支持 和相关功能已过时 EVP_PKEY_ASN1_METHOD。此外,该应用程序还包含新的选项 CRYPTO_MEM_SEC y CRYPTO_MEM_SEC_MINSIZE 明确初始化安全内存。
格式、互操作性和稳健性
默认参数增加 PKCS12 macsaltlen 从 8 到 16 (与 NIST SP 800-132 一致)并提高了 FIPS 和非 FIPS 实现之间新 PKCS12 存储的互操作性,减少了迁移和审计中的摩擦。
在实用层, openssl req 不再生成带有空扩展列表的证书 SKID/AKID 设置为“无”此外,还添加了一个缺失的检查来强化公共 RSA“加密”操作:调用者指示的输出缓冲区必须至少为模数的字节大小。
HMAC 密钥处理已弃用 安全内存储备 (在这种情况下避免不必要的额外成本),以及 API CRYPTO_THREAD__local 扩展以减少对特定于操作系统的 TLS 变量的依赖。
可用性和支持
OpenSSL 3.6 版本被认为是最终版本且稳定, 两年定期周期支持项目团队欢迎社区的贡献;发行说明和源代码可在 官方资料库 对于那些希望从源代码进行编译的人。
此版本通过更严格的 FIPS 控制增强了安全支柱,扩展了 CMS 和 TLS 等协议的功能,并最大限度地提高了流行架构上的性能;同时, 实现构建环境的现代化并简化管理 具有新的实用程序和互操作性调整。