Openss各个版本差异
注:最新的稳定版本是3.3系列,支持到2026年4月9日。3.2系列支持到2025年11月23日,3.1系列支持到2025年3月14日,3.0系列是一个长期支持(LTS)版本,支持到2026年9月7日。所有旧版本(包括1.1.1、1.1.0、1.0.2、1.0.0和0.9.8)现在都不支持,不应该使用。建议这些旧版本的用户尽快升级到3.3。
OpenSSL 3.0 是一个重大的更新,它引入了许多新的概念和特性,例如提供者(Provider)、FIPS 模块(FIPS Module)、低级 API 的弃用(Deprecation of Low Level APIs)等。这些变化旨在提高 OpenSSL 的可扩展性、灵活性、安全性和易用性。
您可以使用 FIPS 模块来满足更高级别的安全标准。FIPS 模块是一个经过 FIPS 140-2 认证的加密算法集合,它可以让您的应用程序符合美国政府和其他机构的安全要求。OpenSSL 3.0 提供了一个内置的 FIPS 模块,您可以通过简单的配置文件或编程方式来启用它。
您可以使用提供者来扩展和定制 OpenSSL 的功能。提供者是一种新的机制,它可以让您选择或替换 OpenSSL 中可用的算法实现。OpenSSL 3.0 提供了五个标准的提供者,分别是 default、legacy、fips、base 和 null。您也可以编写自己的提供者或使用第三方提供者来增加新的算法或优化现有的算法。
您可以避免使用低级 API,从而提高代码的可移植性和可维护性。低级 API 是指那些针对特定算法实现的函数,例如 AES_set_encrypt_key、AES_encrypt 等。这些函数在 OpenSSL 3.0 中已经被弃用,因为它们可能会绕过提供者的选择和配置,从而导致意想不到的后果。您应该使用高级 API,例如 EVP API,来访问所有的算法实现。
OpenSSL 3.1 的主要新特性包括:
• 默认的密钥长度提升到了256位。
• 提供了对Ed25519和Ed448公钥算法的支持。
• 提供了对Curve448公钥算法的支持。
• 提供了对X25519和X448公钥算法的支持,用于实现Diffie-Hellman密钥交换。
• 提供了对OQS库中的Elliptic Curve Digital Signature Algorithm (ECDSA)算法的支持。
• 提供了对PQ-crypto算法的支持,如RSA-PSS和ECDSA。
• 提供了对Fallback SCSV(Session Callback Vector)的支持,用于提高SSL/TLS协议的安全性。
• 提供了对OCSP Stapling的支持,可以在SSL握手期间提供在线证书状态信息。
• 提供了对SSL/TLS 1.3的更完整支持。
• 提供了命令行工具的新功能,如openssl s_client和openssl s_server,以便进行SSL/TLS客户端和服务器测试。
•
• OpenSSL 3.2的亮点包括默认SSL/TLS安全级别从1级提高到2级,以及支持客户端QUIC,包括多流支持。QUIC是一种由Google开发的通用传输层网络协议,后被IETF采用。OpenSSL 3.2仅支持客户端QUIC。
•
• OpenSSL 3.2.0 主要变化
• 客户端 QUIC 支持,包括对多个流的支持(RFC 9000)
• 在 TLS 中支持证书压缩(RFC 8879),包括对 zlib、zstd 和 Brotli 的支持
• Deterministic ECDSA(RFC 6979)
• 除了对 Ed25519 和 Ed448 的现有支持外,还支持 Ed25519ctx、Ed25519ph 和 Ed448ph(RFC 8032)
• AES-GCM-SIV(RFC 8452)
• Argon2(RFC 9106)和支持线程池功能
• HPKE(RFC 9180)
• 在 TLS 中使用原始公钥的能力(RFC 7250)
• 如果操作系统允许,支持 TCP Fast Open(RFC 7413)
• 在 TLS 中支持基于提供者的可插拔签名方案,使第三方 post-quantum 和其他算法提供者能够在 TLS 中使用这些算法
• 在 TLS 1.3 中支持 Brainpool 曲线
• SM4-XTS
• 支持使用 Windows 系统证书存储作为受信任根证书的来源。该功能尚未默认启用,需要使用环境变量进行激活。预计在未来的功能版本中,这将成为默认启用的功能
• OpenSSL 3.3 将是 OpenSSL 3.2 之后的下一个功能性更新,最迟将于 2024 年 4 月 30 日发布。预计该版本将包括 QUIC 服务器支持。
•
•
• OpenSSL 3.3 的变化包括:
• 支持用于跟踪 QUIC 连接的 qlogc。
• 围绕 QUIC 连接和多流 QUIC 服务器支持的许多新 API。
• 针对 Microsoft Azure Cobalt 100 的 AES-GCM unroll8 优化。
• 针对 ARM Neoverse V1 和 V2 处理器优化了 AES-CTR。
• 为 Apple Silicon M3 优化了 AES 和 SHA3。
• 在 LoongArch64 上实现了 MD5 的汇编。