OpenSSL
| Developer(s) | The OpenSSL Project |
|---|---|
| Stable release | 1.0.1e (11 February 2013[1]) [±] |
| Written in | C, assembly |
| Operating system | Multi-platform |
| Type | Security library |
| License | Apache License 1.0 and 4-clause BSD License |
| Website | http://www.openssl.org/ |
OpenSSL is an open-source implementation of the SSL and TLS protocols. The core library, written in the C programming language, implements the basic cryptographic functions and provides various utility functions. Wrappers allowing the use of the OpenSSL library in a variety of computer languages are available.
Versions are available for most Unix-like operating systems (including Solaris, Linux, Mac OS X and the various open source BSD operating systems), OpenVMS and Microsoft Windows. IBM provides a port for the System i (OS/400). OpenSSL is based on SSLeay by Eric A. Young and Tim Hudson, development of which unofficially ended around December 1998, when Young and Hudson both started to work for RSA Security.
Contents |
Major version releases [edit]
| Version | Release date | Comment |
|---|---|---|
| 0.9.1c | December 23, 1998 | |
| 0.9.2c | March 22, 1999 |
|
| 0.9.3 | May 25, 1999 |
|
| 0.9.4 | August 9, 1999 |
|
| 0.9.5 | February 28, 2000 |
|
| 0.9.6 | September 25, 2000 |
|
| 0.9.7 | December 31, 2002 |
|
| 0.9.8 | July 5, 2005 |
|
| 1.0.0 | March 29, 2010 |
|
| 1.0.1 | March 14, 2012 |
|
| 1.0.1e | February 11, 2013 |
|
Algorithms [edit]
OpenSSL supports a number of different cryptographic algorithms:
- Ciphers
- AES, Blowfish, Camellia, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, Triple DES, GOST 28147-89[4]
- Cryptographic hash functions
- MD5, MD2, SHA-1, SHA-2, RIPEMD-160, MDC-2, GOST R 34.11-94[4]
- Public-key cryptography
- RSA, DSA, Diffie–Hellman key exchange, Elliptic curve, GOST R 34.10-2001[4]
(Perfect forward secrecy is supported using elliptic curve Diffie-Hellman since version 1.0.[5])
FIPS 140-2 compliance [edit]
As of December 2012, OpenSSL is one of two open source programs to be involved with validation under the FIPS 140-2 computer security standard by the National Institute of Standards and Technology's (NIST) Cryptographic Module Validation Program (CMVP).[6] (OpenSSL itself is not validated, but a component called the OpenSSL FIPS Object Module, based on OpenSSL, was created to provide many of the same capabilities).[7]
A certificate was first awarded in January 2006 but revoked in July 2006 "when questions were raised about the validated module’s interaction with outside software." The certification was reinstated in February 2007.[8]
Licensing [edit]
OpenSSL is "dual licensed" under the OpenSSL License and the SSLeay License.[9] The OpenSSL License is Apache License 1.0 and SSLeay License is a 4-clause BSD License. The common usage of the term dual-license is that the user may pick which license they wish to use. However, OpenSSL documentation uses the term dual-license to mean that both licenses apply.
As the OpenSSL License is 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. (http://www.openssl.org/) 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 are incompatible with the GPL.[10] Some GPL developers have added an OpenSSL exception to their licenses specifically allowing OpenSSL to be used with their system. GNU Wget and climm both use such exceptions.[11][12] Some packages (like Deluge) explicitely modify the GPL license by adding an extra section at the beginning of the license documenting the exception.[13] Other packages use the LGPL licensed GnuTLS which performs the same task.
Vulnerability in the Debian implementation [edit]
In order to keep a warning from being issued by the Valgrind analysis tool, a maintainer of the Debian distribution applied a patch to the Debian implementation of the OpenSSL suite, which inadvertently broke its random number generator in the process. The broken version was included in the Debian release of September 17, 2006 (version 0.9.8c-1). Any key generated with the broken random number generator, as well as data encrypted with such a key, was compromised. The error was reported by Debian on May 13, 2008.[14]
On the Debian 4.0 distribution (etch), these problems were fixed in version 0.9.8c-4etch3 and for the Debian 5.0 distribution (lenny), these problems were fixed in version 0.9.8g-9.[15]
See also [edit]
References [edit]
- ^ "OpenSSL 1.0.1e Release notes". Retrieved 11 february 2013.
- ^ "OpenSSL - Project Newsflash". OpenSSL Software Foundation. Retrieved 25 November 2012.
- ^ "OpenSSL 1.x Changelog". OpenSSL Software Foundation. Retrieved 25 November 2012.
- ^ a b c "GOST engine OpenSSL 1.0.0 README". cvs.openssl.org.
- ^ "Protecting data for the long term with forward secrecy". Retrieved 2012/11/05.
- ^ Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules. NIST. Retrieved 2012-12-19.
- ^ "Important Notes about OpenSSL and FIPS 140-2". openssl.org.
- ^ "NIST recertifies open source encryption module". gcn.com.
- ^ "OpenSSL: Source, License". openssl.org.
- ^ "Licenses - Free Software Foundation". fsf.org.
- ^ "WGET 1.10.2 for Windows (win32)". users.ugent.be.
- ^ "Releases of source and binaries". climm.org. Retrieved 30 November 2010.
- ^ "Delute LICENSE file". deluge-torrent.org. Retrieved 24 January 2013.
- ^ "DSA-1571-1 openssl -- predictable random number generator". Debian. May 13, 2008. Retrieved 2012-08-05.
- ^ "DSA-1571-1 openssl -- predictable random number generator". Debian. May 13, 2008. Retrieved 2012-12-03.
External links [edit]
- OpenSSL homepage
- The OpenSSL License and the GPL by Mark McLoughlin
- Use OpenSSL easily with PKCS#11 enabled smartcards
- Win32 OpenSSL
- OpenSSL for windows 32-bit and x64 version
- OpenSSL programming tutorial (login required)
- OpenSSL examples by Eric Rescorla
- Online tool to create custom command line to generate a Certificate Signing Request (CSR) in OpenSSL
- OpenSSL Community Wiki
|
|||||||||||||||||||||||||||||||||||