HOME
The Info List - BoringSSL





1.1.0h (March 27, 2018; 9 days ago (2018-03-27)[1]) [±] 1.0.2o (March 27, 2018; 9 days ago (2018-03-27)[1]) [±]

Preview release 1.1.1 beta 2 (April 3, 2018; 2 days ago (2018-04-03)[2]) [±]

Repository

https://github.com/openssl/openssl

Written in C, assembly

Type Security library

License Apache License 1.0 and four-clause BSD
BSD
License

Website www.openssl.org

OpenSSL
OpenSSL
is a software library for applications that secure communications over computer networks against eavesdropping or need to identify the party at the other end. It is widely used in internet web servers, serving a majority of all web sites. OpenSSL
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
OpenSSL
library in a variety of computer languages are available. Versions are available for most Unix
Unix
and Unix-like
Unix-like
operating systems (including Solaris, Linux, macOS, QNX, and the various open-source BSD operating systems), OpenVMS
OpenVMS
and Microsoft Windows. IBM provides a port for the System i (OS/400).

Contents

1 Project history 2 Major version releases 3 Algorithms 4 FIPS 140-2
FIPS 140-2
compliance 5 Licensing 6 Notable vulnerabilities

6.1 Timing attacks on RSA Keys 6.2 Denial of Service ASN.1 parsing 6.3 OCSP stapling vulnerability 6.4 ASN.1 BIO vulnerability 6.5 SSL, TLS and DTLS Plaintext Recovery Attack 6.6 Predictable private keys (Debian-specific) 6.7 Heartbleed 6.8 CCS Injection Vulnerability 6.9 ClientHello sigalgs DoS 6.10 Key Recovery Attack on Diffie Hellman small subgroups

7 Forks

7.1 LibreSSL 7.2 BoringSSL

8 See also 9 References 10 External links

Project history[edit] The OpenSSL
OpenSSL
project was founded in 1998 to invent 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 OpenSSL
OpenSSL
project management team consists of four people, and the entire development group consists of 11 members, out of which 10 are volunteers. There is only one full-time employee, Stephen Henson, the lead developer.[3] The project has a budget of less than $1 million a year and relies in part on donations. Steve Marquess, a former CIA consultant in Maryland started the foundation for donations and consultancy contracts and garnered sponsorship from the United States Department of Homeland Security and the United States Department of Defense.[3] Major version releases[edit]

OpenSSL
OpenSSL
release history[4][5]

Version Original release date Comment Last minor version

Old version, no longer supported: 0.9.1 December 23, 1998

Official start of the OpenSSL
OpenSSL
project

0.9.1c (December 23, 1998)

Old version, no longer supported: 0.9.2 March 22, 1999

Successor of 0.9.1c

0.9.2b (April 6, 1999)

Old version, no longer supported: 0.9.3 May 25, 1999

Successor of 0.9.2b

0.9.3a (May 27, 1999)

Old version, no longer supported: 0.9.4 August 9, 1999

Successor of 0.9.3a

0.9.4 (August 9, 1999)

Old version, no longer supported: 0.9.5 February 28, 2000

Successor of 0.9.4

0.9.5a (April 1, 2000)

Old version, no longer supported: 0.9.6 September 24, 2000

Successor of 0.9.5a

0.9.6m (March 17, 2004)

Old version, no longer supported: 0.9.7 December 31, 2002

Successor of 0.9.6m

0.9.7m (February 23, 2007)

Old version, no longer supported: 0.9.8 July 5, 2005

Successor of 0.9.7m

0.9.8zh (December 3, 2015)

Old version, no longer supported: 1.0.0 March 29, 2010

Successor of 0.9.8n

1.0.0t (December 3, 2015)

Old version, no longer supported: 1.0.1[6] March 14, 2012

Successor of 1.0.0 Supported until December 31, 2016 RFC 6520 TLS/DTLS heartbeat support. SCTP
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)s. Support for password based recipient info for CMS. Support TLS v1.2 and TLS v1.1. Preliminary FIPS capability for unvalidated 2.0 FIPS module. Secure Remote Password protocol (SRP) support.

1.0.1u (September 22, 2016)

Older version, yet still supported: 1.0.2[7] January 22, 2015

Successor of 1.0.1 Supported until December 31, 2019 (Long Term Support) Suite B support for TLS 1.2 and DTLS 1.2 Support for DTLS 1.2 TLS automatic elliptic curve (EC) curve 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.

1.0.2o (March 27, 2018)

Current stable version: 1.1.0[8] August 25, 2016

Successor of 1.0.2h Supported until "one year after the release of 1.1.1" (~May 2019) Support for ChaCha20- Poly1305 (RFC 7539) Support for extended master secret Support for X25519 Support for DANE and Certificate Transparency CCM Ciphersuites SSLv2 removed Kerberos ciphersuite support removed RC4
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

1.1.0h (March 27, 2018)

Latest preview version of a future release: 1.1.1[9] March 20, 2018

Support for TLS1.3 (draft 23)[10]. Support for SHA-3

Beta 1

Future release: 1.1.1[11] April 03, 2018 Beta 2

April 17, 2018 Beta 3

May 01, 2018 Beta 4

~May 15, 2018 Release

Legend: Old version Older version, still supported Latest version Latest preview version Future release

Algorithms[edit] OpenSSL
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[12] Cryptographic
Cryptographic
hash functions MD5, MD4, MD2, SHA-1, SHA-2, RIPEMD-160, MDC-2, GOST R 34.11-94,[12] BLAKE2, Whirlpool[13] Public-key cryptography RSA, DSA, Diffie–Hellman key exchange, Elliptic curve, GOST R 34.10-2001[12]

( Perfect forward secrecy is supported using elliptic curve Diffie–Hellman since version 1.0.[14]) FIPS 140-2
FIPS 140-2
compliance[edit] As of December 2012[update], OpenSSL
OpenSSL
is one of two open source programs involved in validation under the FIPS 140-2
FIPS 140-2
computer security standard by the National Institute of Standards and Technology's (NIST) Cryptographic
Cryptographic
Module Validation Program (CMVP).[15] (OpenSSL itself is not validated, but a component called the OpenSSL
OpenSSL
FIPS Object Module, based on OpenSSL, was created to provide many of the same capabilities).[16] 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.[17] Licensing[edit] OpenSSL
OpenSSL
is double licensed under the OpenSSL
OpenSSL
License and the SSLeay License, which means that the terms of both licenses apply.[18] The OpenSSL
OpenSSL
License is Apache License
Apache License
1.0 and SSLeay License bears some similarity to a 4-clause BSD
BSD
License. As the OpenSSL
OpenSSL
License is Apache License
Apache License
1.0, but not Apache License 2.0, it requires the phrase "this product includes software developed by the OpenSSL
OpenSSL
Project for use in the OpenSSL
OpenSSL
Toolkit" to appear in advertising material and any redistributions (Sections 3 and 6 of the OpenSSL
OpenSSL
License). Due to this restriction, the OpenSSL
OpenSSL
License and the Apache License
Apache License
1.0 are incompatible with the GPL.[19] Some GPL developers have added an OpenSSL
OpenSSL
exception to their licenses that specifically permits using OpenSSL
OpenSSL
with their system. GNU Wget
Wget
and climm both use such exceptions.[20][21] Some packages (like Deluge) explicitly modify the GPL license by adding an extra section at the beginning of the license documenting the exception.[22] Other packages use the LGPL-licensed GnuTLS
GnuTLS
and MPL-licensed NSS, which both perform the same task. OpenSSL
OpenSSL
announced in August 2015 that it would require most contributors to sign a Contributor License Agreement (CLA), and that OpenSSL
OpenSSL
would eventually be relicensed under the terms of Apache License 2.0.[23] This process commenced in March 2017.[24] Notable vulnerabilities[edit] Timing attacks on RSA Keys[edit] On March 14, 2003, a timing attack on RSA keys was discovered, indicating a vulnerability within OpenSSL
OpenSSL
versions 0.9.7a and 0.9.6. This vulnerability was assigned the identifier CAN-2003-0147 by the Common Vulnerabilities and Exposures (CVE) project. RSA blinding was not turned on by default by OpenSSL, since it is not easily possible to when providing SSL or TLS using OpenSSL. Almost all SSL enabled Apaches were affected, along with many other applications of OpenSSL. Timing differences on the number of extra reductions along and use of Karatsuba and normal integer multiplication algorithms meant that it was possible for local and remote attackers to obtain the private key of the server.[citation needed] Denial of Service ASN.1 parsing[edit] OpenSSL
OpenSSL
0.9.6k had 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
OpenSSL
would crash as a result. Being able to send arbitrary large numbers of ASN.1 sequences would cause OpenSSL
OpenSSL
to crash as a result. A client certificate to a SSL/TLS enabled server could accept ASN.1 sequences and crash.[citation needed] OCSP stapling vulnerability[edit] When creating a handshake, the client could send an incorrectly formatted ClientHello message, leading to OpenSSL
OpenSSL
parsing more than the end of the message. Assigned the identifier CVE-2011-0014 by the CVE project, this affected all OpenSSL
OpenSSL
versions 0.9.8h to 0.9.8q and OpenSSL
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.[25] ASN.1 BIO vulnerability[edit] When using Basic Input/Output (BIO)[26] or FILE based functions to read untrusted DER format data, OpenSSL
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.[27] SSL, TLS and DTLS Plaintext Recovery Attack[edit] In handling CBC cipher-suites in SSL, TLS, and DTLS, OpenSSL
OpenSSL
was found vulnerable to a timing attack during the MAC processing. Nadhem Alfardan and Kenny Paterson discovered the problem, and published their findings[28] on February 5, 2013. The vulnerability was assigned the CVE identifier CVE-2013-0169. The vulnerability affected all OpenSSL
OpenSSL
versions, and was only partially mitigated by using the OpenSSL
OpenSSL
FIPS Object Module and enabling FIPS mode.[citation needed] Predictable private keys (Debian-specific)[edit] OpenSSL's pseudo-random number generator acquires entropy using complex programming methods, described[by whom?] as poor coding practice. To keep the Valgrind
Valgrind
analysis tool from issuing associated warnings, a maintainer of the Debian
Debian
distribution applied a patch to the Debian's variant of the OpenSSL
OpenSSL
suite, which inadvertently broke its random number generator by limiting the overall number of private keys it could generate to 32,768.[29][30] The broken version was included in the Debian
Debian
release of September 17, 2006 (version 0.9.8c-1), also compromising other Debian-based distributions, for example Ubuntu. Any key generated with the broken random number generator was compromised, as well as the data encrypted with such keys;[citation needed] moreover, ready-to-use exploits are easily available.[31] The error was reported by Debian
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.[32] Heartbleed[edit] Main article: Heartbleed

A logo representing the Heartbleed
Heartbleed
bug

OpenSSL
OpenSSL
versions 1.0.1 through 1.0.1f had 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[33][34] (CVE-2014-0160). By reading the memory of the web server, attackers could access sensitive data, including the server's private key.[35] 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.[36] 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.[37] 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.[38] However, Heartbleed
Heartbleed
can affect both the server and client. CCS Injection Vulnerability[edit] CCS Injection Vulnerability (CVE-2014-0224) is a security bypass vulnerability that exists in OpenSSL. The vulnerability is due to a weakness in OpenSSL
OpenSSL
methods used for keying material.[39] This vulnerability can be exploited through the use of a man-in-the-middle attack,[40] 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
OpenSSL
clients are vulnerable in all versions of OpenSSL
OpenSSL
before the versions 0.9.8za, 1.0.0m and 1.0.1h. Servers are only known to be vulnerable in OpenSSL
OpenSSL
1.0.1 and 1.0.2-beta1. Users of OpenSSL
OpenSSL
servers earlier than 1.0.1 are advised to upgrade as a precaution.[41] 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
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 before the OpenSSL
OpenSSL
team where they patched the issue. OpenSSL
OpenSSL
classified the bug as a high-severity issue, noting version 1.0.2 was found vulnerable.[42] 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
OpenSSL
server's private Diffie–Hellman key. An Adobe System Security researcher, Antonio Sanso, privately reported the vulnerability. OpenSSL
OpenSSL
classified the bug as a high-severity issue, noting only version 1.0.2 was found vulnerable.[43] Forks[edit] LibreSSL[edit] Main article: LibreSSL In April 2014 in the wake of Heartbleed, members of the OpenBSD project forked OpenSSL
OpenSSL
starting with the 1.0.1g branch, to create a project named LibreSSL.[44] In the first week of pruning the OpenSSL's codebase, more than 90,000 lines of C code had been removed from the fork.[45] BoringSSL[edit] In June 2014, Google
Google
announced its own fork of OpenSSL
OpenSSL
dubbed BoringSSL.[46] Google
Google
plans to co-operate with OpenSSL
OpenSSL
and LibreSSL developers.[47][48][49] See also[edit]

Free software portal Cryptography portal

Comparison of TLS implementations Comparison of cryptography libraries POSSE project wolfSSL

References[edit]

^ a b "OpenSSL: Newslog". Retrieved 2018-03-27.  ^ "OpenSSL: Newslog". Retrieved 2018-04-04.  ^ a b Yadron, Danny (11 April 2014). "Internet Security Relies on Very Few". WSJ.com. Archived from the original on 26 April 2014. Retrieved 10 May 2017. CS1 maint: BOT: original-url status unknown (link) ^ " OpenSSL
OpenSSL
– Changelog". OpenSSL
OpenSSL
Software Foundation. Retrieved 2016-09-26.  ^ " OpenSSL
OpenSSL
– Release Strategy". OpenSSL
OpenSSL
Software Foundation. Retrieved 2016-09-26.  ^ " OpenSSL
OpenSSL
1.0.1 Series Release Notes". Archived from the original on 2015-01-20. Retrieved 2017-02-20.  ^ " OpenSSL
OpenSSL
1.0.2 Series Release Notes". Retrieved 2017-02-20.  ^ " OpenSSL
OpenSSL
1.1.0 Series Release Notes". Retrieved 2017-02-20.  ^ https://www.openssl.org/news/changelog.html#x0 ^ Caswell, Matt (2018-02-08). "Using TLS1.3 With OpenSSL
OpenSSL
- OpenSSL Blog". www.openssl.org. OpenSSL
OpenSSL
Foundation.  ^ https://www.openssl.org/policies/releasestrat.html ^ a b c "GOST engine OpenSSL
OpenSSL
1.0.0 README". cvs.openssl.org. Archived from the original on 2013-04-15.  ^ " OpenSSL
OpenSSL
source code, directory crypto/whrlpool". Retrieved 2017-08-29.  ^ "Protecting data for the long term with forward secrecy". Retrieved 2012-11-05.  ^ Validated FIPS 140-1 and FIPS 140-2
FIPS 140-2
Cryptographic
Cryptographic
Modules. NIST. Retrieved 2012-12-19. ^ "Important Notes about OpenSSL
OpenSSL
and FIPS 140-2". openssl.org.  ^ "NIST recertifies open source encryption module". gcn.com. Archived from the original on 2007-10-10.  ^ "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 2008-01-02.  ^ "Releases of source and binaries". climm.org. Archived from the original on 12 February 2011. Retrieved 30 November 2010.  ^ "Deluge LICENSE file". deluge-torrent.org. Retrieved 24 January 2013.  ^ Salz, Rich (1 August 2015). "License Agreements and Changes Are Coming". openssl.org. Retrieved 23 August 2015.  ^ " OpenSSL
OpenSSL
Re-licensing to Apache License
Apache License
v. 2.0 To Encourage Broader Use with Other FOSS Projects and Products".  ^ " OpenSSL
OpenSSL
Updates Fix Critical Security Vulnerabilities [09 Aug 2014]". Retrieved 25 Aug 2014.  ^ " OpenSSL
OpenSSL
ASN.1 asn1_d2i_read_bio() Heap Overflow Vulnerability". Cisco.  ^ "ASN1 BIO vulnerability". OpenSSL.  ^ http://www.isg.rhul.ac.uk/tls/ ^ "research!rsc: Lessons from the Debian/ OpenSSL
OpenSSL
Fiasco". research.swtch.com. Retrieved 2015-08-12.  ^ "SSLkeys - Debian
Debian
Wiki". debian.org. Retrieved 2015-06-19.  ^ " Debian
Debian
OpenSSL
OpenSSL
– Predictable PRNG Bruteforce SSH Exploit Python – Exploits Database". exploit-db.com. Retrieved 2015-08-12.  ^ "DSA-1571-1 openssl – predictable random number generator". Debian. May 13, 2008.  ^ OpenSSL.org (7 April 2014). " OpenSSL
OpenSSL
Security Advisory [07 Apr 2014]". Retrieved 9 April 2014.  ^ OpenSSL
OpenSSL
(2014-04-07). "TLS heartbeat read overrun (CVE-2014-0160)". Retrieved 2014-04-08.  ^ Codenomicon Ltd (2014-04-08). " Heartbleed
Heartbleed
Bug". Retrieved 2014-04-08.  ^ "Man in Middle Attacks [04 Jun 2014]". Retrieved 25 Aug 2014.  ^ "Why Heartbleed
Heartbleed
is dangerous? Exploiting CVE-2014-0160". IPSec.pl. 2014.  ^ Mutton, Paul (8 April 2014). "Half a million widely trusted websites vulnerable to Heartbleed
Heartbleed
bug". Netcraft Ltd. Retrieved 8 April 2014.  ^ " OpenSSL
OpenSSL
continues to bleed out more flaws – more critical vulnerabilities found". Cyberoam Threat Research Labs. 2014.  ^ "CVE-2014-0224". CVE. 2014.  ^ " OpenSSL
OpenSSL
Security Advisory [05 Jun 2014]". OpenSSL. 2014.  ^ " OpenSSL
OpenSSL
Patches Severe Denial-of-Service Vulnerability [20 March 2015]". Brandon Stosh. 2015.  ^ "High-severity bug in OpenSSL
OpenSSL
allows attackers to decrypt HTTPS traffic [28 Jan 2016]". 2016.  ^ "Open BSD
BSD
has started a massive strip-down and cleanup of OpenSSL". Open BSD
BSD
journal. 2014-04-15.  ^ "Open BSD
BSD
forks, prunes, fixes OpenSSL". ZDNet. 21 April 2014. Retrieved 21 April 2014.  ^ https://boringssl.googlesource.com/boringssl/ BoringSSL ^ " Google
Google
unveils independent 'fork' of OpenSSL
OpenSSL
called 'BoringSSL'". Ars Technica. 2014-06-21.  ^ "BoringSSL". Adam Langley's Weblog. 2014-06-20.  ^ https://nakedsecurity.sophos.com/2014/06/24/boringssl-wants-kill-the-excitement-that-led-to-heartbleed/

External links[edit]

Wikimedia Commons has media related to OpenSSL.

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

v t e

Cryptographic
Cryptographic
software

Email clients

Apple Mail Claws Mail Enigmail GPG (Gpg4win) Kontact Outlook p≡p PGP Sylpheed Thunderbird

Secure communication

OTR

Adium BitlBee Centericq ChatSecure climm Jitsi Kopete MCabber Profanity

SSH

Dropbear lsh OpenSSH PuTTY SecureCRT WinSCP wolfSSH Xshell

TLS & SSL

Bouncy Castle BoringSSL Botan cryptlib GnuTLS JSSE LibreSSL MatrixSSL NSS OpenSSL mbed TLS RSA BSAFE SChannel SSLeay stunnel wolfSSL

VPN

Check Point VPN-1 Hamachi Openswan OpenVPN SoftEther VPN strongSwan Tinc

ZRTP

CSipSimple Jitsi Linphone Ring Zfone

P2P

Bitmessage RetroShare Tox

DRA

Matrix OMEMO

Conversations Cryptocat ChatSecure

Proteus Signal Protocol

Google
Google
Allo Facebook Messenger Signal TextSecure WhatsApp

Disk encryption (Comparison)

BestCrypt BitLocker CrossCrypt Cryptoloop DiskCryptor dm-crypt DriveSentry E4M eCryptfs FileVault FreeOTFE GBDE geli LUKS PGPDisk Private Disk Scramdisk Sentry 2020 TrueCrypt

History

VeraCrypt

Anonymity

GNUnet I2P Java Anon Proxy Tor Vidalia RetroShare Ricochet Wickr

File
File
systems (List)

EncFS EFS eCryptfs LUKS PEFS Rubberhose StegFS Tahoe-LAFS

Service providers

Freenet Tresorit TeamDrive Wuala

Educational

CrypTool

Related topics

Outline of cryptography Timeline of cryptography Hash functions

Cryptographic
Cryptographic
hash function List of hash functions

S/MIME

Category Commons Portal

v t e

TLS and SSL

Protocols and technologies

Transport Layer Security / Secure Sockets Layer (TLS/SSL) Datagram Transport Layer Security (DTLS) Server Name Indication (SNI) Application-Layer Protocol Negotiation (ALPN) DNS-based Authentication of Named Entities (DANE) DNS Certification Authority Authorization (CAA) HTTPS HTTP Strict Transport Security
HTTP Strict Transport Security
(HSTS) HTTP Public Key Pinning (HPKP) OCSP stapling Perfect forward secrecy STARTTLS

Public-key infrastructure

Automated Certificate Management Environment (ACME) Certificate authority
Certificate authority
(CA) CA/Browser Forum Certificate policy Certificate revocation list (CRL) Domain-validated certificate (DV) Extended Validation Certificate
Extended Validation Certificate
(EV) Online Certificate Status Protocol (OCSP) Public key certificate Public-key cryptography Public key infrastructure
Public key infrastructure
(PKI) Root certificate Self-signed certificate

See also

Domain Name System Security Extensions (DNSSEC) Internet Protocol Security (IPsec) Secure Shell
Secure Shell
(SSH)

History

Export of cryptography from the United States Server-Gated Cryptography

Implementations

Bouncy Castle BoringSSL Botan cryptlib GnuTLS JSSE LibreSSL MatrixSSL mbed TLS NSS OpenSSL RSA BSAFE S2n SChannel SSLeay stunnel wolfSSL

Notaries

Certificate Transparency Convergence HTTPS
HTTPS
Everywhere Perspectives Project

Vulnerabilities

Theory

Man-in-the-middle attack Padding oracle attack

Cipher

Bar mitzvah attack

Protocol

BEAST BREACH CRIME DROWN Logjam POODLE
POODLE
(in regards to SSL 3.0)

Implementation

Certificate authority
Certificate authority
compromise Random number generator
Random number generator
attacks FREAK goto fail Heartbleed Lucky Thirteen attack POODLE
POODLE
(in regards

.