It's finally here.
OpenSSL 1.1.1, the newest version of the cryptography library, has been released by the OpenSSL Project as its Long Term Support (LTS) version, which means it will be supported by the Project for at least the next five years.
It's taken years of work with nearly 5,000 commits having been made from over 200 individual contributors since the release of OpenSSL 1.1.0.
And that's not counting the users that went bug stomping in it.
OpenSSL 1.1.1 is API and ABI compliant with OpenSSL 1.1.0. That means that most applications that work with 1.1.0 can gain many of the benefits of TLSv1.3 simply by dropping in the new OpenSSL version.
There are some real differences between the two, however. The inclusion of TLS v1.3 is the most obvious. This new version of the Transport Layer Security -- formerly known as SSL -- protocol was published by the Internet Engineering Task Force (IETF) only one month ago as RFC8446. It functions in a different manner than TLS 1.2, which can confuse some interoperability situations. (See IETF Makes Transport Layer Security Version 1.3 Official.)
The Project believes that TLS 1.3 has a number of advantages, including:
- Improved connection times due to a reduction in the number of round trips required between the client and server.
- The ability, in certain circumstances, for clients to start sending encrypted data to the server straight away without any round trips with the server required -- a feature known as 0-RTT or "early data." This particular feature has been the subject of lots of contention, and may have delayed the release of the TLS version somewhat.
- Improved security due to the removal of various obsolete and insecure cryptographic algorithms and encryption of more of the connection handshake.
OpenSSL has lots of improvements under its own hood. The most striking is the complete rewrite of the OpenSSL random number generator which introduces a number of new features.
The default RAND method now utilizes an AES-CTR DRBG (Counter mode Deterministic Random Byte Generator) according to NIST standard SP 800-90Ar1.
There is also support for multiple DRBG instances with seed chaining, as well as a public and private DRBG instance. The DRBG instances are fork-safe. The public and private DRBG instance are per thread for lock-free operation.
New cryptographic algorithms such as SHA3, SHA512/224 and SHA512/256, EdDSA (including Ed25519 and Ed448), X448 (adding to the existing X25519 support in 1.1.0), multi-prime RSA, SM2, SM3, SM4, SipHash, ARIA (including TLS support) are now supported.
There is also now "signficant Side-Channel attack security improvements" along with a new STORE module, which implements a uniform and URI based reader of stores that can contain keys, certificates, CRLs and numerous other objects.
The Project's previous LTS release -- OpenSSL 1.0.2 -- will continue to receive "full support" until the end of this year. After that it will receive security fixes only. It will stop receiving all support at the end of 2019. Therefore, users of that now-sunsetted release are strongly advised to upgrade to OpenSSL 1.1.1.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.