fbpx
Wikipedia

OpenSSL

OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping, and identify the party at the other end. It is widely used by Internet servers, including the majority of HTTPS websites.

OpenSSL
Developer(s)The OpenSSL Project
Initial release1998; 26 years ago (1998)
Stable release
Stable3.3.0[1]  / 9 April 2024
Repository
  • git.openssl.org/openssl.git
Written inC, Assembly, Perl
TypeCryptography library
License3.0 and later: Apache-2.0[2]
1.x and earlier: OpenSSL[3]
Websitewww.openssl.org

OpenSSL contains an open-source implementation of the SSL and TLS protocols. The core library, written in the C programming language, implements basic cryptographic functions and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available.

The OpenSSL Software Foundation (OSF) represents the OpenSSL project in most legal capacities including contributor license agreements, managing donations, and so on. OpenSSL Software Services (OSS) also represents the OpenSSL project for support contracts.

OpenSSL is available for most Unix-like operating systems (including Linux, macOS, and BSD), Microsoft Windows and OpenVMS.

Project history edit

The OpenSSL project was founded in 1998 to provide a free set of encryption tools for the code used on the Internet. It is based on a fork of SSLeay by Eric Andrew Young and Tim Hudson, which unofficially ended development on December 17, 1998, when Young and Hudson both went to work for RSA Security. The initial founding members were Mark Cox, Ralf Engelschall, Stephen Henson, Ben Laurie, and Paul Sutton.[4]

In 2018 OpenSSL version numbering skipped from 1.1.1 to 3.0.0, omitting 2 as a major version number to avoid a conflict with one of OpenSSL's modules. Version 3.0.0 was the first to use the Apache License.

As of May 2019,[5] the OpenSSL management committee consisted of seven people[6] and there are seventeen developers[7] with commit access (many of whom are also part of the OpenSSL management committee). There are only two full-time employees (fellows) and the remainder are volunteers.

The project has a budget of less than $1 million USD per year and relies primarily on donations. Development of TLS 1.3 was sponsored by Akamai.[8]

Major version releases edit

OpenSSL release history[9][10][11]
Version Original release date Comment Last minor version
Old version, no longer maintained: 0.9.1[12] 23 December 1998 (1998-12-23)
  • Official start of the OpenSSL project
0.9.1c (23 December 1998)
Old version, no longer maintained: 0.9.2[12] 22 March 1999 (1999-03-22)
  • Successor of 0.9.1c
0.9.2b (6 April 1999)
Old version, no longer maintained: 0.9.3[12] 25 May 1999 (1999-05-25)
  • Successor of 0.9.2b
0.9.3a (27 May 1999)
Old version, no longer maintained: 0.9.4[12] 9 August 1999 (1999-08-09)
  • Successor of 0.9.3a
0.9.4 (9 August 1999)
Old version, no longer maintained: 0.9.5[12] 28 February 2000 (2000-02-28)
  • Successor of 0.9.4
0.9.5a (1 April 2000)
Old version, no longer maintained: 0.9.6[12] 24 September 2000 (2000-09-24)
  • Successor of 0.9.5a
0.9.6m (17 March 2004)
Old version, no longer maintained: 0.9.7[12] 31 December 2002 (2002-12-31)
  • Successor of 0.9.6m
0.9.7m (23 February 2007)
Old version, no longer maintained: 0.9.8[12] 5 July 2005 (2005-07-05)
  • Successor of 0.9.7m
0.9.8zh (3 December 2015)
Old version, no longer maintained: 1.0.0[13] 29 March 2010 (2010-03-29)
  • Successor of 0.9.8n
1.0.0t (3 December 2015 (2015-12-03))
Old version, no longer maintained: 1.0.1[14] 14 March 2012 (2012-03-14)
  • Successor of 1.0.0h
  • Supported until 31 December 2016
  • RFC 6520 TLS/DTLS heartbeat support
  • SCTP support
  • RFC 5705 TLS key material exporter
  • RFC 5764 DTLS-SRTP negotiation
  • Next Protocol Negotiation
  • PSS signatures in certificates, requests and certificate revocation lists (CRL)
  • Support for password based recipient info for CMS
  • Support TLS 1.2 and TLS 1.1
  • Preliminary FIPS 140 capability for unvalidated 2.0 FIPS module
  • Secure Remote Password protocol (SRP) support
1.0.1u (22 September 2016 (2016-09-22))
Old version, no longer maintained: 1.0.2[15] 22 January 2015 (2015-01-22)
  • Successor of 1.0.1l
  • Supported until 31 December 2019 (Long Term Support)[16]
  • Suite B support for TLS 1.2 and DTLS 1.2
  • Support for DTLS 1.2
  • TLS automatic elliptic curve (EC) selection
  • API to set TLS supported signature algorithms and curves
  • SSL_CONF configuration API
  • TLS Brainpool support
  • ALPN support
  • CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH
  • FIPS 140 support
1.0.2u (20 December 2019 (2019-12-20))
Old version, no longer maintained: 1.1.0[17] 25 August 2016 (2016-08-25)
  • Successor of 1.0.2h
  • Supported until 11 September 2019[16]
  • Support for BLAKE2 (RFC 7693)
  • Support for ChaCha20-Poly1305 (RFC 7539)
  • Support for X25519 (RFC 7748)
  • Support for DANE and Certificate Transparency
  • Support for CCM Ciphersuites
  • Support for extended master secret
  • SSLv2 removed
  • Kerberos ciphersuite support removed
  • RC4 and 3DES removed from DEFAULT ciphersuites in libssl
  • Remove DSS, SEED, IDEA, CAMELLIA, and AES-CCM from the DEFAULT cipherlist
  • 40 and 56 bit cipher support removed from libssl
  • FIPS 140 support removed
1.1.0l (10 September 2019 (2019-09-10))
Old version, no longer maintained: 1.1.1 LTS[18][19] 11 September 2018 (2018-09-11) 1.1.1w (11 September 2023)
Older version, yet still maintained: 3.0.0 LTS[21][22][note 1] 7 September 2021 (2021-09-07) Ongoing development
(EOL 2026-09-07)
Older version, yet still maintained: 3.1.0[24][25] 14 March 2023 (2023-03-14)
  • Supported until 14 March 2025[16]
  • FIPS 140-3 compliance
  • Performance enhancements
Ongoing development
(EOL 2025-03-14)
Current stable version: 3.2.0[26][27] 23 November 2023 (2023-11-23)
  • Client-side QUIC support
  • Certificate compression (RFC 8879)
  • Deterministic ECDSA (RFC 6979)
  • TLS raw public keys (RFC 7250)
Ongoing development
(EOL 2025-11-23)
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

Algorithms edit

OpenSSL supports a number of different cryptographic algorithms:

Ciphers
AES, Blowfish, Camellia, Chacha20, Poly1305, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, Triple DES, GOST 28147-89,[28] SM4
Cryptographic hash functions
MD5, MD4, MD2, SHA-1, SHA-2, SHA-3, RIPEMD-160, MDC-2, GOST R 34.11-94,[28] BLAKE2, Whirlpool,[29] SM3
Public-key cryptography
RSA, DSA, Diffie–Hellman key exchange, Elliptic curve, X25519, Ed25519, X448, Ed448, GOST R 34.10-2001,[28] SM2

(Perfect forward secrecy is supported using elliptic curve Diffie–Hellman since version 1.0.[30])

FIPS 140 validation edit

FIPS 140 is a U.S. Federal program for the testing and certification of cryptographic modules. An early FIPS 140-1 certificate for OpenSSL's FOM 1.0 was revoked in July 2006 "when questions were raised about the validated module's interaction with outside software." The module was re-certified in February 2007 before giving way to FIPS 140-2.[31] OpenSSL 1.0.2 supported the use of the OpenSSL FIPS Object Module (FOM), which was built to deliver FIPS approved algorithms in a FIPS 140-2 validated environment.[32][33] OpenSSL controversially decided to categorize the 1.0.2 architecture as 'end of life' or 'EOL', effective December 31, 2019, despite objections that it was the only version of OpenSSL that was currently available with support for FIPS mode.[34] As a result of the EOL, many users were unable to properly deploy the FOM 2.0 and fell out of compliance because they did not secure extended support for the 1.0.2 architecture, although the FOM itself remained validated for eight months further.

The FIPS Object Module 2.0 remained FIPS 140-2 validated in several formats until September 1, 2020, when NIST deprecated the usage of FIPS 186-2 for Digital Signature Standard and designated all non-compliant modules as 'Historical'. This designation includes a caution to federal agencies that they should not include the module in any new procurements. All three of the OpenSSL validations were included in the deprecation – the OpenSSL FIPS Object Module (certificate #1747),[35] OpenSSL FIPS Object Module SE (certificate #2398),[36] and OpenSSL FIPS Object Module RE (certificate #2473).[37] Many 'private label' OpenSSL-based validations and clones created by consultants were also moved to the Historical List, although some FIPS validated modules with replacement compatibility avoided the deprecation, such as BoringCrypto from Google[38] and CryptoComply from SafeLogic.[39]

The OpenSSL Management Committee announced a change in the versioning scheme.

Due to this change, the major number of the next major version would have been doubled, since the OpenSSL FIPS module already occupied this number. Therefore the decision was made to skip the OpenSSL 2.0 version number and continue with OpenSSL 3.0 .

OpenSSL 3.0 restored FIPS mode and underwent FIPS 140-2 testing, but with significant delays: The effort was first kicked off in 2016 with support from SafeLogic[40][41][42] and further support from Oracle in 2017,[43][44] but the process has been challenging.[45]

On October 20, 2020, the OpenSSL FIPS Provider 3.0 was added to the CMVP Implementation Under Test List, which reflected an official engagement with a testing lab to proceed with a FIPS 140-2 validation. This resulted in a slew of certifications in the following months.[46]

Licensing edit

OpenSSL was dual-licensed under the OpenSSL License and the SSLeay License, which means that the terms of either licenses can be used.[47] The OpenSSL License is Apache License 1.0 and SSLeay License bears some similarity to a 4-clause BSD License. As the OpenSSL License was Apache License 1.0, but not Apache License 2.0, it requires the phrase "this product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit" to appear in advertising material and any redistributions (Sections 3 and 6 of the OpenSSL License). Due to this restriction, the OpenSSL License and the Apache License 1.0 are incompatible with the GNU GPL.[48] Some GPL developers have added an OpenSSL exception to their licenses that specifically permits using OpenSSL with their system. GNU Wget and climm both use such exceptions.[49][50] Some packages (like Deluge) explicitly modify the GPL license by adding an extra section at the beginning of the license documenting the exception.[51] Other packages use the LGPL-licensed GnuTLS, BSD-licensed Botan, or MPL-licensed NSS, which perform the same task.

OpenSSL announced in August 2015 that it would require most contributors to sign a Contributor License Agreement (CLA), and that OpenSSL would eventually be relicensed under the terms of Apache License 2.0.[52] This process commenced in March 2017,[53] and was complete in 2018.[54]

On 7 September 2021, OpenSSL 3.0.0 was released under the Apache License 2.0.[55]

Notable vulnerabilities edit

Denial of service: ASN.1 parsing edit

OpenSSL 0.9.6k has a bug where certain ASN.1 sequences triggered a large number of recursions on Windows machines, discovered on November 4, 2003. Windows could not handle large recursions correctly, so OpenSSL would crash as a result. Being able to send arbitrary large numbers of ASN.1 sequences would cause OpenSSL to crash as a result.

OCSP stapling vulnerability edit

When creating a handshake, the client could send an incorrectly formatted ClientHello message, leading to OpenSSL parsing more than the end of the message. Assigned the identifier CVE-2011-0014 by the CVE project, this affected all OpenSSL versions 0.9.8h to 0.9.8q and OpenSSL 1.0.0 to 1.0.0c. Since the parsing could lead to a read on an incorrect memory address, it was possible for the attacker to cause a DoS. It was also possible that some applications expose the contents of parsed OCSP extensions, leading to an attacker being able to read the contents of memory that came after the ClientHello.[56]

ASN.1 BIO vulnerability edit

When using Basic Input/Output (BIO)[57] or FILE based functions to read untrusted DER format data, OpenSSL is vulnerable. This vulnerability was discovered on April 19, 2012, and was assigned the CVE identifier CVE-2012-2110. While not directly affecting the SSL/TLS code of OpenSSL, any application that was using ASN.1 functions (particularly d2i_X509 and d2i_PKCS12) were also not affected.[58]

SSL, TLS and DTLS plaintext recovery attack edit

In handling CBC cipher-suites in SSL, TLS, and DTLS, OpenSSL was found vulnerable to a timing attack during the MAC processing. Nadhem Alfardan and Kenny Paterson discovered the problem, and published their findings[59] on February 5, 2013. The vulnerability was assigned the CVE identifier CVE-2013-0169.

Predictable private keys (Debian-specific) edit

OpenSSL's pseudo-random number generator acquires entropy using complex programming methods. To keep the Valgrind analysis tool from issuing associated warnings, a maintainer of the Debian distribution applied a patch to Debian's variant of the OpenSSL suite, which inadvertently broke its random number generator by limiting the overall number of private keys it could generate to 32,768.[60][61] The broken version was included in the Debian release of September 17, 2006 (version 0.9.8c-1), also compromising other Debian-based distributions, for example Ubuntu. Ready-to-use exploits are easily available.[62]

The error was reported by Debian on May 13, 2008. On the Debian 4.0 distribution (etch), these problems were fixed in version 0.9.8c-4etch3, while fixes for the Debian 5.0 distribution (lenny) were provided in version 0.9.8g-9.[63]

Heartbleed edit

 
A logo representing the Heartbleed bug

OpenSSL versions 1.0.1 through 1.0.1f have a severe memory handling bug in their implementation of the TLS Heartbeat Extension that could be used to reveal up to 64 KB of the application's memory with every heartbeat[64][65] (CVE-2014-0160). By reading the memory of the web server, attackers could access sensitive data, including the server's private key.[66] This could allow attackers to decode earlier eavesdropped communications if the encryption protocol used does not ensure perfect forward secrecy. Knowledge of the private key could also allow an attacker to mount a man-in-the-middle attack against any future communications.[citation needed] The vulnerability might also reveal unencrypted parts of other users' sensitive requests and responses, including session cookies and passwords, which might allow attackers to hijack the identity of another user of the service.[67]

At its disclosure on April 7, 2014, around 17% or half a million of the Internet's secure web servers certified by trusted authorities were believed to have been vulnerable to the attack.[68] However, Heartbleed can affect both the server and client.

CCS injection vulnerability edit

The CCS Injection Vulnerability (CVE-2014-0224) is a security bypass vulnerability that results from a weakness in OpenSSL methods used for keying material.[69]

This vulnerability can be exploited through the use of a man-in-the-middle attack,[70] where an attacker may be able to decrypt and modify traffic in transit. A remote unauthenticated attacker could exploit this vulnerability by using a specially crafted handshake to force the use of weak keying material. Successful exploitation could lead to a security bypass condition where an attacker could gain access to potentially sensitive information. The attack can only be performed between a vulnerable client and server.

OpenSSL clients are vulnerable in all versions of OpenSSL before the versions 0.9.8za, 1.0.0m and 1.0.1h. Servers are only known to be vulnerable in OpenSSL 1.0.1 and 1.0.2-beta1. Users of OpenSSL servers earlier than 1.0.1 are advised to upgrade as a precaution.[71]

ClientHello sigalgs DoS edit

This vulnerability (CVE-2015-0291) allows anyone to take a certificate, read its contents and modify it accurately to abuse the vulnerability causing a certificate to crash a client or server. If a client connects to an OpenSSL 1.0.2 server and renegotiates with an invalid signature algorithms extension, a null-pointer dereference occurs. This can cause a DoS attack against the server.

A Stanford Security researcher, David Ramos, had a private exploit and presented it to the OpenSSL team, which then patched the issue.

OpenSSL classified the bug as a high-severity issue, noting version 1.0.2 was found vulnerable.[72]

Key recovery attack on Diffie–Hellman small subgroups edit

This vulnerability (CVE-2016-0701) allows, when some particular circumstances are met, to recover the OpenSSL server's private Diffie–Hellman key. An Adobe System Security researcher, Antonio Sanso, privately reported the vulnerability.

OpenSSL classified the bug as a high-severity issue, noting only version 1.0.2 was found vulnerable.[73]

Forks edit

Agglomerated SSL edit

In 2009, after frustrations with the original OpenSSL API, Marco Peereboom, an OpenBSD developer at the time, forked the original API by creating Agglomerated SSL (assl), which reuses OpenSSL API under the hood, but provides a much simpler external interface.[74] It has since been deprecated in light of the LibreSSL fork circa 2016.

LibreSSL edit

In April 2014 in the wake of Heartbleed, members of the OpenBSD project forked OpenSSL starting with the 1.0.1g branch, to create a project named LibreSSL.[75] In the first week of pruning the OpenSSL's codebase, more than 90,000 lines of C code had been removed from the fork.[76]

BoringSSL edit

In June 2014, Google announced its own fork of OpenSSL dubbed BoringSSL.[77] Google plans to co-operate with OpenSSL and LibreSSL developers.[78][79][80] Google has since developed a new library, Tink, based on BoringSSL.[81]

Criticisms edit

Backwards compatibility edit

Among developers communities, OpenSSL is often cited for introducing API compatibility breakage with each new major version,[82][83][84][85] which requires software adaptations that tend to delay new version adoptions.[86] This, combined with the fact that previous releases are generally maintained for no more than two years after a new major one is released[87] tends to force some vendors to anticipate software migrations very early while still having little time left[88] to update to a new release, sometimes at the risk of losing some compatibility with existing software[89][90] or risking regressions.[91][92]

Delay between releases edit

While LTS (long term supported) releases are maintained for 5 years,[93] accumulated delays in release time frames tend to force operating system vendors to stay on the last supported release longer, leaving less margin when the new version is available. For example OpenSSL 3.0 was initially expected for Q4 2019[94] and was finally issued 21 months later[87] without extending the expected end of support for previously supported version 1.1.1, and this despite the significant changes that required adaptations to existing software.

Significant performance regressions edit

The reduced support delay of version 1.1.1 mentioned above causes further concerns to users whose workloads are sensitive to performance. Some time after general availability of 3.0, some users started to report serious performance regressions affecting this version in multi-threaded environments, many citing the inefficient use of locks in frequent low-level operations, citing slowdowns from 80 to 400 times.[95][96][97][98][99][100][101][102] The OpenSSL team has created a meta-issue to try to centralize reports of such massive performance regressions.[103] About half of these reporters indicate the impossibility for them to upgrade to 3.0 from earlier versions, adding to the trouble caused by the limited support time left on previous version 1.1.1.

Consideration for users' requirements edit

While the QUIC transport layer was being worked on to support the third version of the HTTP protocol, it was proposed to use TLS to provide security,[104] and identified that some adaptations to TLS libraries would be needed. Such modifications were brought to BoringSSL[105] which was the library being primarily used by QUIC developers by then, and later ported to other libraries.[106] A port of this work was quickly proposed to OpenSSL.[107] While some discussion started the same day, it quickly stalled and was first blocked on license considerations,[107] then kept on hold once these concerns were cleared. Finally 10 months later the OpenSSL Management Committee announced on a blog post[108] that this patch set would not be adopted for 3.0 on the fear that the API would change over time. Finally more than one year after planned release of 3.0 which was still not coming, a team of volunteers from Akamai and Microsoft decided to fork the project as QuicTLS[109] and support these patches on top of the OpenSSL code in order to unblock QUIC development. This action was generally welcome by the community. Finally after OpenSSL 3.0 was finally released, the QUIC patch set was reconsidered and decided against,[110] causing tens to hundreds of reactions of disappointment among the community.[107] The pull request was closed, while users felt the need to publicly express their disappointment,[111] or beg operating system vendors to support the alternative QuicTLS fork,[112][113] or seek for alternative solutions.[114] Finally Rich Salz, co-founder of the QuicTLS fork, announced[114] his interest in seeing an Apache project forked from QuicTLS. As of 25 February 2023 there is still no QUIC-compatible long-term supported TLS library available by default in operating systems without requiring end-users to rebuild it themselves from sources.

See also edit

Notes edit

  1. ^ The major version 2.0.0 was skipped due to its previous use in the OpenSSL FIPS module.[23]

References edit

  1. ^ "OpenSSL version 3.3.0 published". April 9, 2024. Retrieved April 11, 2024.
  2. ^ "/source/license.html". www.openssl.org. Retrieved March 3, 2021.
  3. ^ "OpenSSL License | Software Package Data Exchange (SPDX)". spdx.org.
  4. ^ Laurie, Ben (January 6, 1999). "ANNOUNCE: OpenSSL (Take 2". ssl-users (Mailing list). Retrieved October 29, 2018.
  5. ^ "New Committers". OpenSSL Software Foundation. May 20, 2019. Retrieved November 3, 2019.
  6. ^ "OpenSSL Management Committee". OpenSSL Software Foundation. Retrieved November 3, 2019.
  7. ^ "OpenSSL Committers". OpenSSL Software Foundation. Retrieved November 3, 2019.
  8. ^ Marquess, Steve (January 19, 2017). "Akamai sponsors TLS 1.3". openssl-announce (Mailing list). Retrieved November 9, 2018.
  9. ^ "OpenSSL – Changelog". OpenSSL Software Foundation. Retrieved September 26, 2016.
  10. ^ "OpenSSL – Release Strategy". OpenSSL Software Foundation. Retrieved September 26, 2016.
  11. ^ "OpenSSL Releases". GitHub. Retrieved December 6, 2022.
  12. ^ a b c d e f g h "OpenSSL 0.9.x series notes". GitHub. Retrieved December 6, 2022.
  13. ^ "OpenSSL 1.0.0 series notes". GitHub. Retrieved December 6, 2022.
  14. ^ "OpenSSL 1.0.1 series notes". GitHub. Retrieved December 6, 2022.
  15. ^ "OpenSSL 1.0.2 series notes". GitHub. Retrieved December 6, 2022.
  16. ^ a b c d e "Release Strategy". www.openssl.org. OpenSSL Foundation. January 7, 2020.
  17. ^ "OpenSSL 1.1.0 series notes". GitHub. Retrieved December 6, 2022.
  18. ^ a b Caswell, Matt (September 11, 2018). "OpenSSL 1.1.1 Is Released". www.openssl.org. OpenSSL Foundation.
  19. ^ "OpenSSL 1.1.1 series notes". GitHub. Retrieved December 6, 2022.
  20. ^ Caswell, Matt (February 8, 2018). "Using TLS1.3 With OpenSSL - OpenSSL Blog". www.openssl.org. OpenSSL Foundation.
  21. ^ "OpenSSL 3.0 Has Been Released! - OpenSSL Blog". www.openssl.org. Retrieved September 8, 2021.
  22. ^ "OpenSSL 3.0 series notes". GitHub. Retrieved December 6, 2022.
  23. ^ a b Matt Caswell (November 28, 2018). "The Holy Hand Grenade of Antioch". OpenSSL Blog. Retrieved October 7, 2019.
  24. ^ "OpenSSL 3.1 Final Release - OpenSSL Blog". www.openssl.org. Retrieved March 15, 2023.
  25. ^ "OpenSSL 3.1 series notes". GitHub. Retrieved March 15, 2023.
  26. ^ "OpenSSL 3.2.0 Final Release - OpenSSL Blog". www.openssl.org. Retrieved November 24, 2023.
  27. ^ "OpenSSL 3.2 series notes". GitHub. Retrieved November 24, 2023.
  28. ^ a b c "GOST engine OpenSSL 1.0.0 README". cvs.openssl.org. Archived from the original on April 15, 2013.
  29. ^ "OpenSSL source code, directory crypto/whrlpool". GitHub. Retrieved August 29, 2017.
  30. ^ "Protecting data for the long term with forward secrecy". Retrieved November 5, 2012.
  31. ^ . gcn.com. Archived from the original on October 10, 2007.
  32. ^ "FIPS-140". openssl.org. Retrieved November 12, 2019.
  33. ^ "OpenSSL User Guide for the OpenSSL FIPS Object Module v2.0" (PDF). openssl.org. March 14, 2017. Retrieved November 12, 2019.
  34. ^ "Update on 3.0 Development, FIPS and 1.0.2 EOL". OpenSSL Blog. November 7, 2019.
  35. ^ "Cryptographic Module Validation Program Certificate #1747". Computer Security Resource Center. October 11, 2016.
  36. ^ "Cryptographic Module Validation Program Certificate #2398". Computer Security Resource Center. October 11, 2016.
  37. ^ "Cryptographic Module Validation Program Certificate #2473". Computer Security Resource Center. October 11, 2016.
  38. ^ "Cryptographic Module Validation Program search results". Computer Security Resource Center. October 11, 2016.
  39. ^ "Cryptographic Module Validation Program search results". Computer Security Resource Center. October 11, 2016.
  40. ^ Schneider, Troy K. (July 20, 2016). "Getting government approval of a more secure OpenSSL". GCN: Technology, Tools, and Tactics for Public Sector IT.
  41. ^ Waterman, Shaun (July 21, 2016). "SafeLogic saves the day for feds' use of OpenSSL". FedScoop.
  42. ^ Rashid, Fahmida Y. (July 26, 2016). "Reworked OpenSSL on track for government validation". InfoWorld.
  43. ^ Wells, Joyce (August 3, 2017). "Oracle, SafeLogic and OpenSSL Join Forces to Update FIPS Module". Database Trends and Applications.
  44. ^ Kerner, Sean Michael (August 4, 2017). "Oracle Joins SafeLogic to Develop FIPS Module for OpenSSL Security". eWeek.
  45. ^ "OpenSSL 3.0 Alpha7 Release". OpenSSL Blog. October 20, 2020.
  46. ^ "Cryptographic Module Validation Program: OpenSSL". Computer Security Resource Center. October 11, 2016.
  47. ^ "OpenSSL: Source, License". openssl.org.
  48. ^ "Licenses – Free Software Foundation". fsf.org.
  49. ^ . users.ugent.be. Archived from the original on January 2, 2008.
  50. ^ . climm.org. Archived from the original on February 12, 2011. Retrieved November 30, 2010.
  51. ^ "Deluge LICENSE file". deluge-torrent.org. Retrieved January 24, 2013.
  52. ^ Salz, Rich (August 1, 2015). "License Agreements and Changes Are Coming". openssl.org. Retrieved August 23, 2015.
  53. ^ . March 23, 2017. Archived from the original on July 18, 2017. Retrieved August 6, 2018.
  54. ^ Lee, Victoria; Radcliffe, Mark; Stevenson, Chris (5 February 2019). . Opensource.com, Red Hat. Archived from the original on 5 February 2019. Retrieved 28 September 2019. The OpenSSL project announced that it had completed its shift from the OpenSSL/SSLeay license to the Apache Software License version 2 (ASLv2).
  55. ^ "OpenSSL 3.0 License Change". September 22, 2021. Retrieved September 24, 2021.
  56. ^ "OpenSSL Updates Fix Critical Security Vulnerabilities". August 9, 2014. Retrieved August 25, 2014.
  57. ^ "OpenSSL ASN.1 asn1_d2i_read_bio() Heap Overflow Vulnerability". Cisco.
  58. ^ "ASN1 BIO vulnerability". OpenSSL.
  59. ^ "On the Security of RC4 in TLS". Royal Holloway Department of Information Security.
  60. ^ "research!rsc: Lessons from the Debian/OpenSSL Fiasco". research.swtch.com. Retrieved August 12, 2015.
  61. ^ "SSLkeys". Debian Wiki. Retrieved June 19, 2015.
  62. ^ "Debian OpenSSL – Predictable PRNG Bruteforce SSH Exploit Python". Exploits Database. June 1, 2008. Retrieved August 12, 2015.
  63. ^ "DSA-1571-1 openssl – predictable random number generator". Debian Project. May 13, 2008.
  64. ^ OpenSSL.org (April 7, 2014). "OpenSSL Security Advisory [07 Apr 2014]". Retrieved April 9, 2014.
  65. ^ OpenSSL (April 7, 2014). "TLS heartbeat read overrun (CVE-2014-0160)". Retrieved April 8, 2014.
  66. ^ Codenomicon Ltd (April 8, 2014). "Heartbleed Bug". Retrieved April 8, 2014.
  67. ^ . IPSec.pl. 2014. Archived from the original on April 8, 2014. Retrieved April 8, 2014.
  68. ^ Mutton, Paul (April 8, 2014). "Half a million widely trusted websites vulnerable to Heartbleed bug". Netcraft Ltd. Retrieved April 8, 2014.
  69. ^ . Cyberoam Threat Research Labs. 2014. Archived from the original on June 19, 2014. Retrieved June 13, 2014.
  70. ^ "CVE-2014-0224". CVE. 2014.
  71. ^ "OpenSSL Security Advisory". OpenSSL. June 5, 2014.
  72. ^ "OpenSSL Patches Severe Denial-of-Service Vulnerability". Brandon Stosh. March 20, 2015.
  73. ^ Goodlin, Dan (January 28, 2016). "High-severity bug in OpenSSL allows attackers to decrypt HTTPS traffic". Ars Technica.
  74. ^ "security/assl: assl-1.5.0p0v0 – hide awful SSL API in a sane interface". OpenBSD ports. May 22, 2014. Retrieved February 10, 2015.
  75. ^ "OpenBSD has started a massive strip-down and cleanup of OpenSSL". OpenBSD journal. April 15, 2014.
  76. ^ "OpenBSD forks, prunes, fixes OpenSSL". ZDNet. April 21, 2014. Retrieved April 21, 2014.
  77. ^ "BoringSSL". Git at Google.
  78. ^ "Google unveils independent 'fork' of OpenSSL called 'BoringSSL'". Ars Technica. June 21, 2014.
  79. ^ "BoringSSL". Adam Langley's Weblog. June 20, 2014.
  80. ^ "BoringSSL wants to kill the excitement that led to Heartbleed". Sophos. June 24, 2014.
  81. ^ Buchanan, Bill (August 30, 2018). "Goodbye OpenSSL, and Hello To Google Tink". Medium. Retrieved April 4, 2019.
  82. ^ "OpenSSL 3 breaks webpack build · Issue #22305 · brave/brave-browser". GitHub.
  83. ^ "openssl version 3.0 in arch? / Newbie Corner / Arch Linux Forums". bbs.archlinux.org.
  84. ^ "OpenSSL 3.0 transition plans". Ubuntu Community Hub. April 6, 2022.
  85. ^ "OpenSSL 3.0 Compatibility · Issue #597 · nginx/unit". GitHub.
  86. ^ "Our future with OpenSSL". Discussions on Python.org. November 28, 2022.
  87. ^ a b "OpenSSL 3.0 Has Been Released! - OpenSSL Blog". www.openssl.org.
  88. ^ "The experience of bringing OpenSSL 3.0 into Red Hat Enterprise Linux and Fedora". www.redhat.com.
  89. ^ "Compile against OpenSSL 3.X". groups.google.com.
  90. ^ "ESET Management Agent (RHEL 9.x, OpenSSL 3.0.x)". ESET Security Forum.
  91. ^ "Issue 46313: SSLObject does not raise SSLEOFError on OpenSSL 3 - Python tracker". bugs.python.org.
  92. ^ "RHEL 9 : openssl (RHSA-2022:6224)". www.tenable.com.
  93. ^ "/policies/releasestrat.html". www.openssl.org.
  94. ^ "Update on 3.0 Development, FIPS and 1.0.2 EOL - OpenSSL Blog". www.openssl.org.
  95. ^ "Massive performance degradation in OpenSsl 3.0 if used in a heavy multi threaded server application · Issue #17064 · openssl/openssl". GitHub.
  96. ^ "Performance issue with Openssl 3.0 in multi threaded application when using d2i_x509 · Issue #17950 · openssl/openssl". GitHub.
  97. ^ "Severe efficiency degradation of credential loading in comparison to 1.1.1 · Issue #18814 · openssl/openssl". GitHub.
  98. ^ "3.0 performance degraded due to locking · Issue #20286 · openssl/openssl". GitHub.
  99. ^ "High cpu usage for outbound ssl requests after upgrading from v16.15.0 to v18.1.0 · Issue #43128 · nodejs/node". GitHub.
  100. ^ "Massive performance degradation in OpenSsl 3.0 FIPS provider · Issue #18472 · openssl/openssl". GitHub.
  101. ^ "Performance measurements · Issue #16791 · openssl/openssl". GitHub.
  102. ^ "PEM/DER decoding of PKCS8 RSA private keys are 80 times slower in 3.0 · Issue #15199 · openssl/openssl". GitHub.
  103. ^ "3.0 Performance problems · Issue #17627 · openssl/openssl". GitHub.
  104. ^ "Using Transport Layer Security (TLS) to Secure QUIC". January 14, 2017 – via IETF.
  105. ^ "221 - boringssl - A fork of OpenSSL that is designed to meet Google's needs - Monorail". bugs.chromium.org.
  106. ^ "Support QUIC TLS API (#826) · Issues · gnutls / GnuTLS · GitLab". GitLab.
  107. ^ a b c "WIP: master QUIC support by tmshort · Pull Request #8797 · openssl/openssl". GitHub.
  108. ^ "QUIC and OpenSSL - OpenSSL Blog". www.openssl.org.
  109. ^ "quictls announce on twitter".
  110. ^ "OMC Release Requirements". www.mail-archive.com.
  111. ^ "The QUIC API OpenSSL will not provide | daniel.haxx.se". October 25, 2021.
  112. ^ Tarreau, Willy (October 27, 2021). "[Pkg-openssl-devel] Any intent to maintain quictls ?".
  113. ^ "Bug#1011391: openssl: please support quictls patchset". groups.google.com.
  114. ^ a b "HTTP/3 support · Issue #680 · haproxy/haproxy". GitHub.

External links edit

  • Official website
  • OpenSSL Manpages
  • OpenSSL Programming Guide ()
  • The OpenSSL License and the GPL by Mark McLoughlin
  • OpenSSL programming tutorial
  • OpenSSL Community Wiki

openssl, confused, with, openssh, software, library, applications, that, provide, secure, communications, over, computer, networks, against, eavesdropping, identify, party, other, widely, used, internet, servers, including, majority, https, websites, developer. Not to be confused with OpenSSH OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping and identify the party at the other end It is widely used by Internet servers including the majority of HTTPS websites OpenSSLDeveloper s The OpenSSL ProjectInitial release1998 26 years ago 1998 Stable releaseStable3 3 0 1 9 April 2024Repositorygit wbr openssl wbr org wbr openssl wbr gitWritten inC Assembly PerlTypeCryptography libraryLicense3 0 and later Apache 2 0 2 1 x and earlier OpenSSL 3 Websitewww wbr openssl wbr orgOpenSSL contains an open source implementation of the SSL and TLS protocols The core library written in the C programming language implements basic cryptographic functions and provides various utility functions Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available The OpenSSL Software Foundation OSF represents the OpenSSL project in most legal capacities including contributor license agreements managing donations and so on OpenSSL Software Services OSS also represents the OpenSSL project for support contracts OpenSSL is available for most Unix like operating systems including Linux macOS and BSD Microsoft Windows and OpenVMS Contents 1 Project history 2 Major version releases 3 Algorithms 4 FIPS 140 validation 5 Licensing 6 Notable vulnerabilities 6 1 Denial of service ASN 1 parsing 6 2 OCSP stapling vulnerability 6 3 ASN 1 BIO vulnerability 6 4 SSL TLS and DTLS plaintext recovery attack 6 5 Predictable private keys Debian specific 6 6 Heartbleed 6 7 CCS injection vulnerability 6 8 ClientHello sigalgs DoS 6 9 Key recovery attack on Diffie Hellman small subgroups 7 Forks 7 1 Agglomerated SSL 7 2 LibreSSL 7 3 BoringSSL 8 Criticisms 8 1 Backwards compatibility 8 2 Delay between releases 8 3 Significant performance regressions 8 4 Consideration for users requirements 9 See also 10 Notes 11 References 12 External linksProject history editThe OpenSSL project was founded in 1998 to provide a free set of encryption tools for the code used on the Internet It is based on a fork of SSLeay by Eric Andrew Young and Tim Hudson which unofficially ended development on December 17 1998 when Young and Hudson both went to work for RSA Security The initial founding members were Mark Cox Ralf Engelschall Stephen Henson Ben Laurie and Paul Sutton 4 In 2018 OpenSSL version numbering skipped from 1 1 1 to 3 0 0 omitting 2 as a major version number to avoid a conflict with one of OpenSSL s modules Version 3 0 0 was the first to use the Apache License As of May 2019 update 5 the OpenSSL management committee consisted of seven people 6 and there are seventeen developers 7 with commit access many of whom are also part of the OpenSSL management committee There are only two full time employees fellows and the remainder are volunteers The project has a budget of less than 1 million USD per year and relies primarily on donations Development of TLS 1 3 was sponsored by Akamai 8 Major version releases editOpenSSL release history 9 10 11 Version Original release date Comment Last minor versionOld version no longer maintained 0 9 1 12 23 December 1998 1998 12 23 Official start of the OpenSSL project 0 9 1c 23 December 1998 Old version no longer maintained 0 9 2 12 22 March 1999 1999 03 22 Successor of 0 9 1c 0 9 2b 6 April 1999 Old version no longer maintained 0 9 3 12 25 May 1999 1999 05 25 Successor of 0 9 2b 0 9 3a 27 May 1999 Old version no longer maintained 0 9 4 12 9 August 1999 1999 08 09 Successor of 0 9 3a 0 9 4 9 August 1999 Old version no longer maintained 0 9 5 12 28 February 2000 2000 02 28 Successor of 0 9 4 0 9 5a 1 April 2000 Old version no longer maintained 0 9 6 12 24 September 2000 2000 09 24 Successor of 0 9 5a 0 9 6m 17 March 2004 Old version no longer maintained 0 9 7 12 31 December 2002 2002 12 31 Successor of 0 9 6m 0 9 7m 23 February 2007 Old version no longer maintained 0 9 8 12 5 July 2005 2005 07 05 Successor of 0 9 7m 0 9 8zh 3 December 2015 Old version no longer maintained 1 0 0 13 29 March 2010 2010 03 29 Successor of 0 9 8n 1 0 0t 3 December 2015 2015 12 03 Old version no longer maintained 1 0 1 14 14 March 2012 2012 03 14 Successor of 1 0 0h Supported until 31 December 2016 RFC 6520 TLS DTLS heartbeat support SCTP support RFC 5705 TLS key material exporter RFC 5764 DTLS SRTP negotiation Next Protocol Negotiation PSS signatures in certificates requests and certificate revocation lists CRL Support for password based recipient info for CMS Support TLS 1 2 and TLS 1 1 Preliminary FIPS 140 capability for unvalidated 2 0 FIPS module Secure Remote Password protocol SRP support 1 0 1u 22 September 2016 2016 09 22 Old version no longer maintained 1 0 2 15 22 January 2015 2015 01 22 Successor of 1 0 1l Supported until 31 December 2019 Long Term Support 16 Suite B support for TLS 1 2 and DTLS 1 2 Support for DTLS 1 2 TLS automatic elliptic curve EC selection API to set TLS supported signature algorithms and curves SSL CONF configuration API TLS Brainpool support ALPN support CMS support for RSA PSS RSA OAEP ECDH and X9 42 DH FIPS 140 support 1 0 2u 20 December 2019 2019 12 20 Old version no longer maintained 1 1 0 17 25 August 2016 2016 08 25 Successor of 1 0 2h Supported until 11 September 2019 16 Support for BLAKE2 RFC 7693 Support for ChaCha20 Poly1305 RFC 7539 Support for X25519 RFC 7748 Support for DANE and Certificate Transparency Support for CCM Ciphersuites Support for extended master secret SSLv2 removed Kerberos ciphersuite support removed RC4 and 3DES removed from DEFAULT ciphersuites in libssl Remove DSS SEED IDEA CAMELLIA and AES CCM from the DEFAULT cipherlist 40 and 56 bit cipher support removed from libssl FIPS 140 support removed 1 1 0l 10 September 2019 2019 09 10 Old version no longer maintained 1 1 1 LTS 18 19 11 September 2018 2018 09 11 Successor of 1 1 0i Supported until 11 September 2023 Long Term Support 16 Support for TLS 1 3 20 18 Support for SHA 3 Support for X448 and Ed448 RFC 7748 Support for SipHash Support for ARIA Support for multi prime RSA RFC 8017 Support for SM2 SM3 and SM4 Heartbeat removed QNX support removed 1 1 1w 11 September 2023 Older version yet still maintained 3 0 0 LTS 21 22 note 1 7 September 2021 2021 09 07 Supported until 7 September 2026 Long Term Support 16 Relicensed to the Apache License 2 0 23 FIPS 140 2 support re added Ongoing development EOL 2026 09 07 Older version yet still maintained 3 1 0 24 25 14 March 2023 2023 03 14 Supported until 14 March 2025 16 FIPS 140 3 compliance Performance enhancements Ongoing development EOL 2025 03 14 Current stable version 3 2 0 26 27 23 November 2023 2023 11 23 Client side QUIC support Certificate compression RFC 8879 Deterministic ECDSA RFC 6979 TLS raw public keys RFC 7250 Ongoing development EOL 2025 11 23 Legend Old versionOlder version still maintainedLatest versionLatest preview versionFuture releaseAlgorithms editOpenSSL supports a number of different cryptographic algorithms Ciphers AES Blowfish Camellia Chacha20 Poly1305 SEED CAST 128 DES IDEA RC2 RC4 RC5 Triple DES GOST 28147 89 28 SM4 Cryptographic hash functions MD5 MD4 MD2 SHA 1 SHA 2 SHA 3 RIPEMD 160 MDC 2 GOST R 34 11 94 28 BLAKE2 Whirlpool 29 SM3 Public key cryptography RSA DSA Diffie Hellman key exchange Elliptic curve X25519 Ed25519 X448 Ed448 GOST R 34 10 2001 28 SM2 Perfect forward secrecy is supported using elliptic curve Diffie Hellman since version 1 0 30 FIPS 140 validation editFIPS 140 is a U S Federal program for the testing and certification of cryptographic modules An early FIPS 140 1 certificate for OpenSSL s FOM 1 0 was revoked in July 2006 when questions were raised about the validated module s interaction with outside software The module was re certified in February 2007 before giving way to FIPS 140 2 31 OpenSSL 1 0 2 supported the use of the OpenSSL FIPS Object Module FOM which was built to deliver FIPS approved algorithms in a FIPS 140 2 validated environment 32 33 OpenSSL controversially decided to categorize the 1 0 2 architecture as end of life or EOL effective December 31 2019 despite objections that it was the only version of OpenSSL that was currently available with support for FIPS mode 34 As a result of the EOL many users were unable to properly deploy the FOM 2 0 and fell out of compliance because they did not secure extended support for the 1 0 2 architecture although the FOM itself remained validated for eight months further The FIPS Object Module 2 0 remained FIPS 140 2 validated in several formats until September 1 2020 when NIST deprecated the usage of FIPS 186 2 for Digital Signature Standard and designated all non compliant modules as Historical This designation includes a caution to federal agencies that they should not include the module in any new procurements All three of the OpenSSL validations were included in the deprecation the OpenSSL FIPS Object Module certificate 1747 35 OpenSSL FIPS Object Module SE certificate 2398 36 and OpenSSL FIPS Object Module RE certificate 2473 37 Many private label OpenSSL based validations and clones created by consultants were also moved to the Historical List although some FIPS validated modules with replacement compatibility avoided the deprecation such as BoringCrypto from Google 38 and CryptoComply from SafeLogic 39 The OpenSSL Management Committee announced a change in the versioning scheme Due to this change the major number of the next major version would have been doubled since the OpenSSL FIPS module already occupied this number Therefore the decision was made to skip the OpenSSL 2 0 version number and continue with OpenSSL 3 0 OpenSSL 3 0 restored FIPS mode and underwent FIPS 140 2 testing but with significant delays The effort was first kicked off in 2016 with support from SafeLogic 40 41 42 and further support from Oracle in 2017 43 44 but the process has been challenging 45 On October 20 2020 the OpenSSL FIPS Provider 3 0 was added to the CMVP Implementation Under Test List which reflected an official engagement with a testing lab to proceed with a FIPS 140 2 validation This resulted in a slew of certifications in the following months 46 Licensing editOpenSSL was dual licensed under the OpenSSL License and the SSLeay License which means that the terms of either licenses can be used 47 The OpenSSL License is Apache License 1 0 and SSLeay License bears some similarity to a 4 clause BSD License As the OpenSSL License was Apache License 1 0 but not Apache License 2 0 it requires the phrase this product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit to appear in advertising material and any redistributions Sections 3 and 6 of the OpenSSL License Due to this restriction the OpenSSL License and the Apache License 1 0 are incompatible with the GNU GPL 48 Some GPL developers have added an OpenSSL exception to their licenses that specifically permits using OpenSSL with their system GNU Wget and climm both use such exceptions 49 50 Some packages like Deluge explicitly modify the GPL license by adding an extra section at the beginning of the license documenting the exception 51 Other packages use the LGPL licensed GnuTLS BSD licensed Botan or MPL licensed NSS which perform the same task OpenSSL announced in August 2015 that it would require most contributors to sign a Contributor License Agreement CLA and that OpenSSL would eventually be relicensed under the terms of Apache License 2 0 52 This process commenced in March 2017 53 and was complete in 2018 54 On 7 September 2021 OpenSSL 3 0 0 was released under the Apache License 2 0 55 Notable vulnerabilities editDenial of service ASN 1 parsing edit OpenSSL 0 9 6k has a bug where certain ASN 1 sequences triggered a large number of recursions on Windows machines discovered on November 4 2003 Windows could not handle large recursions correctly so OpenSSL would crash as a result Being able to send arbitrary large numbers of ASN 1 sequences would cause OpenSSL to crash as a result OCSP stapling vulnerability edit When creating a handshake the client could send an incorrectly formatted ClientHello message leading to OpenSSL parsing more than the end of the message Assigned the identifier CVE 2011 0014 by the CVE project this affected all OpenSSL versions 0 9 8h to 0 9 8q and OpenSSL 1 0 0 to 1 0 0c Since the parsing could lead to a read on an incorrect memory address it was possible for the attacker to cause a DoS It was also possible that some applications expose the contents of parsed OCSP extensions leading to an attacker being able to read the contents of memory that came after the ClientHello 56 ASN 1 BIO vulnerability edit When using Basic Input Output BIO 57 or FILE based functions to read untrusted DER format data OpenSSL is vulnerable This vulnerability was discovered on April 19 2012 and was assigned the CVE identifier CVE 2012 2110 While not directly affecting the SSL TLS code of OpenSSL any application that was using ASN 1 functions particularly d2i X509 and d2i PKCS12 were also not affected 58 SSL TLS and DTLS plaintext recovery attack edit In handling CBC cipher suites in SSL TLS and DTLS OpenSSL was found vulnerable to a timing attack during the MAC processing Nadhem Alfardan and Kenny Paterson discovered the problem and published their findings 59 on February 5 2013 The vulnerability was assigned the CVE identifier CVE 2013 0169 Predictable private keys Debian specific edit OpenSSL s pseudo random number generator acquires entropy using complex programming methods To keep the Valgrind analysis tool from issuing associated warnings a maintainer of the Debian distribution applied a patch to Debian s variant of the OpenSSL suite which inadvertently broke its random number generator by limiting the overall number of private keys it could generate to 32 768 60 61 The broken version was included in the Debian release of September 17 2006 version 0 9 8c 1 also compromising other Debian based distributions for example Ubuntu Ready to use exploits are easily available 62 The error was reported by Debian on May 13 2008 On the Debian 4 0 distribution etch these problems were fixed in version 0 9 8c 4etch3 while fixes for the Debian 5 0 distribution lenny were provided in version 0 9 8g 9 63 Heartbleed edit Main article Heartbleed nbsp A logo representing the Heartbleed bugOpenSSL versions 1 0 1 through 1 0 1f have a severe memory handling bug in their implementation of the TLS Heartbeat Extension that could be used to reveal up to 64 KB of the application s memory with every heartbeat 64 65 CVE 2014 0160 By reading the memory of the web server attackers could access sensitive data including the server s private key 66 This could allow attackers to decode earlier eavesdropped communications if the encryption protocol used does not ensure perfect forward secrecy Knowledge of the private key could also allow an attacker to mount a man in the middle attack against any future communications citation needed The vulnerability might also reveal unencrypted parts of other users sensitive requests and responses including session cookies and passwords which might allow attackers to hijack the identity of another user of the service 67 At its disclosure on April 7 2014 around 17 or half a million of the Internet s secure web servers certified by trusted authorities were believed to have been vulnerable to the attack 68 However Heartbleed can affect both the server and client CCS injection vulnerability edit The CCS Injection Vulnerability CVE 2014 0224 is a security bypass vulnerability that results from a weakness in OpenSSL methods used for keying material 69 This vulnerability can be exploited through the use of a man in the middle attack 70 where an attacker may be able to decrypt and modify traffic in transit A remote unauthenticated attacker could exploit this vulnerability by using a specially crafted handshake to force the use of weak keying material Successful exploitation could lead to a security bypass condition where an attacker could gain access to potentially sensitive information The attack can only be performed between a vulnerable client and server OpenSSL clients are vulnerable in all versions of OpenSSL before the versions 0 9 8za 1 0 0m and 1 0 1h Servers are only known to be vulnerable in OpenSSL 1 0 1 and 1 0 2 beta1 Users of OpenSSL servers earlier than 1 0 1 are advised to upgrade as a precaution 71 ClientHello sigalgs DoS edit This vulnerability CVE 2015 0291 allows anyone to take a certificate read its contents and modify it accurately to abuse the vulnerability causing a certificate to crash a client or server If a client connects to an OpenSSL 1 0 2 server and renegotiates with an invalid signature algorithms extension a null pointer dereference occurs This can cause a DoS attack against the server A Stanford Security researcher David Ramos had a private exploit and presented it to the OpenSSL team which then patched the issue OpenSSL classified the bug as a high severity issue noting version 1 0 2 was found vulnerable 72 Key recovery attack on Diffie Hellman small subgroups edit This vulnerability CVE 2016 0701 allows when some particular circumstances are met to recover the OpenSSL server s private Diffie Hellman key An Adobe System Security researcher Antonio Sanso privately reported the vulnerability OpenSSL classified the bug as a high severity issue noting only version 1 0 2 was found vulnerable 73 Forks editAgglomerated SSL edit In 2009 after frustrations with the original OpenSSL API Marco Peereboom an OpenBSD developer at the time forked the original API by creating Agglomerated SSL assl which reuses OpenSSL API under the hood but provides a much simpler external interface 74 It has since been deprecated in light of the LibreSSL fork circa 2016 LibreSSL edit Main article LibreSSL In April 2014 in the wake of Heartbleed members of the OpenBSD project forked OpenSSL starting with the 1 0 1g branch to create a project named LibreSSL 75 In the first week of pruning the OpenSSL s codebase more than 90 000 lines of C code had been removed from the fork 76 BoringSSL edit In June 2014 Google announced its own fork of OpenSSL dubbed BoringSSL 77 Google plans to co operate with OpenSSL and LibreSSL developers 78 79 80 Google has since developed a new library Tink based on BoringSSL 81 Criticisms editBackwards compatibility edit Among developers communities OpenSSL is often cited for introducing API compatibility breakage with each new major version 82 83 84 85 which requires software adaptations that tend to delay new version adoptions 86 This combined with the fact that previous releases are generally maintained for no more than two years after a new major one is released 87 tends to force some vendors to anticipate software migrations very early while still having little time left 88 to update to a new release sometimes at the risk of losing some compatibility with existing software 89 90 or risking regressions 91 92 Delay between releases edit While LTS long term supported releases are maintained for 5 years 93 accumulated delays in release time frames tend to force operating system vendors to stay on the last supported release longer leaving less margin when the new version is available For example OpenSSL 3 0 was initially expected for Q4 2019 94 and was finally issued 21 months later 87 without extending the expected end of support for previously supported version 1 1 1 and this despite the significant changes that required adaptations to existing software Significant performance regressions edit The reduced support delay of version 1 1 1 mentioned above causes further concerns to users whose workloads are sensitive to performance Some time after general availability of 3 0 some users started to report serious performance regressions affecting this version in multi threaded environments many citing the inefficient use of locks in frequent low level operations citing slowdowns from 80 to 400 times 95 96 97 98 99 100 101 102 The OpenSSL team has created a meta issue to try to centralize reports of such massive performance regressions 103 About half of these reporters indicate the impossibility for them to upgrade to 3 0 from earlier versions adding to the trouble caused by the limited support time left on previous version 1 1 1 Consideration for users requirements edit While the QUIC transport layer was being worked on to support the third version of the HTTP protocol it was proposed to use TLS to provide security 104 and identified that some adaptations to TLS libraries would be needed Such modifications were brought to BoringSSL 105 which was the library being primarily used by QUIC developers by then and later ported to other libraries 106 A port of this work was quickly proposed to OpenSSL 107 While some discussion started the same day it quickly stalled and was first blocked on license considerations 107 then kept on hold once these concerns were cleared Finally 10 months later the OpenSSL Management Committee announced on a blog post 108 that this patch set would not be adopted for 3 0 on the fear that the API would change over time Finally more than one year after planned release of 3 0 which was still not coming a team of volunteers from Akamai and Microsoft decided to fork the project as QuicTLS 109 and support these patches on top of the OpenSSL code in order to unblock QUIC development This action was generally welcome by the community Finally after OpenSSL 3 0 was finally released the QUIC patch set was reconsidered and decided against 110 causing tens to hundreds of reactions of disappointment among the community 107 The pull request was closed while users felt the need to publicly express their disappointment 111 or beg operating system vendors to support the alternative QuicTLS fork 112 113 or seek for alternative solutions 114 Finally Rich Salz co founder of the QuicTLS fork announced 114 his interest in seeing an Apache project forked from QuicTLS As of 25 February 2023 there is still no QUIC compatible long term supported TLS library available by default in operating systems without requiring end users to rebuild it themselves from sources See also edit nbsp Free and open source software portalComparison of TLS implementations Comparison of cryptography libraries List of free and open source software packages POSSE project LibreSSL wolfSSLNotes edit The major version 2 0 0 was skipped due to its previous use in the OpenSSL FIPS module 23 References edit OpenSSL version 3 3 0 published April 9 2024 Retrieved April 11 2024 source license html www openssl org Retrieved March 3 2021 OpenSSL License Software Package Data Exchange SPDX spdx org Laurie Ben January 6 1999 ANNOUNCE OpenSSL Take 2 ssl users Mailing list Retrieved October 29 2018 New Committers OpenSSL Software Foundation May 20 2019 Retrieved November 3 2019 OpenSSL Management Committee OpenSSL Software Foundation Retrieved November 3 2019 OpenSSL Committers OpenSSL Software Foundation Retrieved November 3 2019 Marquess Steve January 19 2017 Akamai sponsors TLS 1 3 openssl announce Mailing list Retrieved November 9 2018 OpenSSL Changelog OpenSSL Software Foundation Retrieved September 26 2016 OpenSSL Release Strategy OpenSSL Software Foundation Retrieved September 26 2016 OpenSSL Releases GitHub Retrieved December 6 2022 a b c d e f g h OpenSSL 0 9 x series notes GitHub Retrieved December 6 2022 OpenSSL 1 0 0 series notes GitHub Retrieved December 6 2022 OpenSSL 1 0 1 series notes GitHub Retrieved December 6 2022 OpenSSL 1 0 2 series notes GitHub Retrieved December 6 2022 a b c d e Release Strategy www openssl org OpenSSL Foundation January 7 2020 OpenSSL 1 1 0 series notes GitHub Retrieved December 6 2022 a b Caswell Matt September 11 2018 OpenSSL 1 1 1 Is Released www openssl org OpenSSL Foundation OpenSSL 1 1 1 series notes GitHub Retrieved December 6 2022 Caswell Matt February 8 2018 Using TLS1 3 With OpenSSL OpenSSL Blog www openssl org OpenSSL Foundation OpenSSL 3 0 Has Been Released OpenSSL Blog www openssl org Retrieved September 8 2021 OpenSSL 3 0 series notes GitHub Retrieved December 6 2022 a b Matt Caswell November 28 2018 The Holy Hand Grenade of Antioch OpenSSL Blog Retrieved October 7 2019 OpenSSL 3 1 Final Release OpenSSL Blog www openssl org Retrieved March 15 2023 OpenSSL 3 1 series notes GitHub Retrieved March 15 2023 OpenSSL 3 2 0 Final Release OpenSSL Blog www openssl org Retrieved November 24 2023 OpenSSL 3 2 series notes GitHub Retrieved November 24 2023 a b c GOST engine OpenSSL 1 0 0 README cvs openssl org Archived from the original on April 15 2013 OpenSSL source code directory crypto whrlpool GitHub Retrieved August 29 2017 Protecting data for the long term with forward secrecy Retrieved November 5 2012 NIST recertifies open source encryption module gcn com Archived from the original on October 10 2007 FIPS 140 openssl org Retrieved November 12 2019 OpenSSL User Guide for the OpenSSL FIPS Object Module v2 0 PDF openssl org March 14 2017 Retrieved November 12 2019 Update on 3 0 Development FIPS and 1 0 2 EOL OpenSSL Blog November 7 2019 Cryptographic Module Validation Program Certificate 1747 Computer Security Resource Center October 11 2016 Cryptographic Module Validation Program Certificate 2398 Computer Security Resource Center October 11 2016 Cryptographic Module Validation Program Certificate 2473 Computer Security Resource Center October 11 2016 Cryptographic Module Validation Program search results Computer Security Resource Center October 11 2016 Cryptographic Module Validation Program search results Computer Security Resource Center October 11 2016 Schneider Troy K July 20 2016 Getting government approval of a more secure OpenSSL GCN Technology Tools and Tactics for Public Sector IT Waterman Shaun July 21 2016 SafeLogic saves the day for feds use of OpenSSL FedScoop Rashid Fahmida Y July 26 2016 Reworked OpenSSL on track for government validation InfoWorld Wells Joyce August 3 2017 Oracle SafeLogic and OpenSSL Join Forces to Update FIPS Module Database Trends and Applications Kerner Sean Michael August 4 2017 Oracle Joins SafeLogic to Develop FIPS Module for OpenSSL Security eWeek OpenSSL 3 0 Alpha7 Release OpenSSL Blog October 20 2020 Cryptographic Module Validation Program OpenSSL Computer Security Resource Center October 11 2016 OpenSSL Source License openssl org Licenses Free Software Foundation fsf org WGET 1 10 2 for Windows win32 users ugent be Archived from the original on January 2 2008 Releases of source and binaries climm org Archived from the original on February 12 2011 Retrieved November 30 2010 Deluge LICENSE file deluge torrent org Retrieved January 24 2013 Salz Rich August 1 2015 License Agreements and Changes Are Coming openssl org Retrieved August 23 2015 OpenSSL Re licensing to Apache License v 2 0 To Encourage Broader Use with Other FOSS Projects and Products March 23 2017 Archived from the original on July 18 2017 Retrieved August 6 2018 Lee Victoria Radcliffe Mark Stevenson Chris 5 February 2019 Top 10 FOSS legal developments of 2018 Opensource com Red Hat Archived from the original on 5 February 2019 Retrieved 28 September 2019 The OpenSSL project announced that it had completed its shift from the OpenSSL SSLeay license to the Apache Software License version 2 ASLv2 OpenSSL 3 0 License Change September 22 2021 Retrieved September 24 2021 OpenSSL Updates Fix Critical Security Vulnerabilities August 9 2014 Retrieved August 25 2014 OpenSSL ASN 1 asn1 d2i read bio Heap Overflow Vulnerability Cisco ASN1 BIO vulnerability OpenSSL On the Security of RC4 in TLS Royal Holloway Department of Information Security research rsc Lessons from the Debian OpenSSL Fiasco research swtch com Retrieved August 12 2015 SSLkeys Debian Wiki Retrieved June 19 2015 Debian OpenSSL Predictable PRNG Bruteforce SSH Exploit Python Exploits Database June 1 2008 Retrieved August 12 2015 DSA 1571 1 openssl predictable random number generator Debian Project May 13 2008 OpenSSL org April 7 2014 OpenSSL Security Advisory 07 Apr 2014 Retrieved April 9 2014 OpenSSL April 7 2014 TLS heartbeat read overrun CVE 2014 0160 Retrieved April 8 2014 Codenomicon Ltd April 8 2014 Heartbleed Bug Retrieved April 8 2014 Why Heartbleed is dangerous Exploiting CVE 2014 0160 IPSec pl 2014 Archived from the original on April 8 2014 Retrieved April 8 2014 Mutton Paul April 8 2014 Half a million widely trusted websites vulnerable to Heartbleed bug Netcraft Ltd Retrieved April 8 2014 OpenSSL continues to bleed out more flaws more critical vulnerabilities found Cyberoam Threat Research Labs 2014 Archived from the original on June 19 2014 Retrieved June 13 2014 CVE 2014 0224 CVE 2014 OpenSSL Security Advisory OpenSSL June 5 2014 OpenSSL Patches Severe Denial of Service Vulnerability Brandon Stosh March 20 2015 Goodlin Dan January 28 2016 High severity bug in OpenSSL allows attackers to decrypt HTTPS traffic Ars Technica security assl assl 1 5 0p0v0 hide awful SSL API in a sane interface OpenBSD ports May 22 2014 Retrieved February 10 2015 OpenBSD has started a massive strip down and cleanup of OpenSSL OpenBSD journal April 15 2014 OpenBSD forks prunes fixes OpenSSL ZDNet April 21 2014 Retrieved April 21 2014 BoringSSL Git at Google Google unveils independent fork of OpenSSL called BoringSSL Ars Technica June 21 2014 BoringSSL Adam Langley s Weblog June 20 2014 BoringSSL wants to kill the excitement that led to Heartbleed Sophos June 24 2014 Buchanan Bill August 30 2018 Goodbye OpenSSL and Hello To Google Tink Medium Retrieved April 4 2019 OpenSSL 3 breaks webpack build Issue 22305 brave brave browser GitHub openssl version 3 0 in arch Newbie Corner Arch Linux Forums bbs archlinux org OpenSSL 3 0 transition plans Ubuntu Community Hub April 6 2022 OpenSSL 3 0 Compatibility Issue 597 nginx unit GitHub Our future with OpenSSL Discussions on Python org November 28 2022 a b OpenSSL 3 0 Has Been Released OpenSSL Blog www openssl org The experience of bringing OpenSSL 3 0 into Red Hat Enterprise Linux and Fedora www redhat com Compile against OpenSSL 3 X groups google com ESET Management Agent RHEL 9 x OpenSSL 3 0 x ESET Security Forum Issue 46313 SSLObject does not raise SSLEOFError on OpenSSL 3 Python tracker bugs python org RHEL 9 openssl RHSA 2022 6224 www tenable com policies releasestrat html www openssl org Update on 3 0 Development FIPS and 1 0 2 EOL OpenSSL Blog www openssl org Massive performance degradation in OpenSsl 3 0 if used in a heavy multi threaded server application Issue 17064 openssl openssl GitHub Performance issue with Openssl 3 0 in multi threaded application when using d2i x509 Issue 17950 openssl openssl GitHub Severe efficiency degradation of credential loading in comparison to 1 1 1 Issue 18814 openssl openssl GitHub 3 0 performance degraded due to locking Issue 20286 openssl openssl GitHub High cpu usage for outbound ssl requests after upgrading from v16 15 0 to v18 1 0 Issue 43128 nodejs node GitHub Massive performance degradation in OpenSsl 3 0 FIPS provider Issue 18472 openssl openssl GitHub Performance measurements Issue 16791 openssl openssl GitHub PEM DER decoding of PKCS8 RSA private keys are 80 times slower in 3 0 Issue 15199 openssl openssl GitHub 3 0 Performance problems Issue 17627 openssl openssl GitHub Using Transport Layer Security TLS to Secure QUIC January 14 2017 via IETF 221 boringssl A fork of OpenSSL that is designed to meet Google s needs Monorail bugs chromium org Support QUIC TLS API 826 Issues gnutls GnuTLS GitLab GitLab a b c WIP master QUIC support by tmshort Pull Request 8797 openssl openssl GitHub QUIC and OpenSSL OpenSSL Blog www openssl org quictls announce on twitter OMC Release Requirements www mail archive com The QUIC API OpenSSL will not provide daniel haxx se October 25 2021 Tarreau Willy October 27 2021 Pkg openssl devel Any intent to maintain quictls Bug 1011391 openssl please support quictls patchset groups google com a b HTTP 3 support Issue 680 haproxy haproxy GitHub External links edit nbsp Wikimedia Commons has media related to OpenSSL Official website OpenSSL Manpages OpenSSL Programming Guide archived The OpenSSL License and the GPL by Mark McLoughlin OpenSSL programming tutorial OpenSSL Community Wiki Retrieved from https en wikipedia org w index php title OpenSSL amp oldid 1212767130 Licensing, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.