The release of OpenSSL 4.0.0 has taken place, offering the implementation of TLS protocols and various encryption algorithms. OpenSSL 4.0 is classified as a release with standard support, with updates released over a 13-month period. Support for previous branches OpenSSL 3.6, 3.5 LTS, 3.4, and 3.0 LTS will continue until November 2026, April 2030, October 2026, and September 2026, respectively. The project code is distributed under the Apache 2.0 license.
Key innovations:
- Support has been added for the TLS extension ECH (Encrypted ClientHello, RFC 9849), designed to encrypt information about TLS session parameters, such as the requested domain name. Unlike the ESNI (Encrypted Server Name Indication) extension, ECH fully encrypts the entire TLS ClientHello message instead of encrypting at the level of individual fields, which helps block leaks through fields not covered by ESNI, such as the PSK (Pre-Shared Key) field.
- Support has been added for certain algorithms defined in RFC 8998, which utilize the standard set of cryptographic algorithms SM2 from China: the digital signature generation algorithm sm2sig_sm3, the key exchange group curveSM2, and the post-quantum group curveSM2MLKEM768.
- A cryptographic hashing function cSHAKE has been added, based on the SHA-3 algorithm and allowing the generation of different hashes from the same input data to protect against attacks that manipulate data reuse.
- A hybrid algorithm 'ML-DSA-MU' has been added, combining the post-quantum digital signature generation algorithm ML-DSA (CRYSTALS-Dilithium) with the classical hash function SHAKE256.
- Support has been added for SNMP KDF key generation functions based on HMAC-SHA and SRTP KDF based on AES-CM, used in the SNMPv3 and SRTP network protocols to create cryptographic keys.
- The command 'openssl fipsinstall' has been added with the option '-defer_tests', allowing tests to be deferred during the installation of FIPS modules.
- Support for static or dynamic linking with Visual C++ Runtime has been implemented for the Windows platform.
- Support for key exchange negotiation based on the FFDHE algorithm has been added to TLS 1.2, corresponding to RFC 7919.
- Support for SSLv3 and SSLv2 Client Hello has been discontinued.
- Support for dynamically loaded engines has been removed; instead, the concept of plug-in providers should be used to extend the functionality of OpenSSL.
- In TLS, support for deprecated elliptic curves has been disabled at the compilation stage. To revert, the option "enable-tls-deprecated-ec" can be used.
- The c_rehash utility has been removed; instead, the command "openssl rehash" should be used.
- The deprecated option "msie-hack" has been removed from the "openssl ca" command.
- Support for custom methods EVP_CIPHER, EVP_MD, EVP_PKEY, and EVP_PKEY_ASN1 has been removed.
- Deprecated SSL/TLS functions tied to fixed protocol versions, such as "TLSv1_client_method()", have been removed.
- Deprecated functions ERR_get_state(), ERR_remove_state(), and ERR_remove_thread_state() have been removed.
- Support for target platforms darwin-i386{,-cc} and darwin-ppc{,64}{,-cc} has been discontinued.
Source: opennet.ru
