Transport Layer Security (TLS) is a protocol that provides authentication, privacy, and data integrity between two communicating computer applications. It's the most widely-deployed security protocol used today and is used for web browsers and other applications that require data to be securely exchanged over a network, such as web browsing sessions, file transfers, VPN connections, remote desktop sessions, and voice over IP (VoIP).
TLS evolved from Netscape's Secure Sockets Layer (SSL) protocol and has largely superseded it, although the terms SSL or SSL/TLS are still sometimes used. Key differences between SSL and TLS that make TLS a more secure and efficient protocol are message authentication, key material generation and the supported cipher suites, with TLS supporting newer and more secure algorithms. TLS and SSL are not interoperable, though TLS currently provides some backward compatibility in order to work with legacy systems.
History and development
The Internet Engineering Task Force (IETF) officially took over the SSL protocol to standardize it with an open process and released version 3.1 of SSL in 1999 as TLS 1.0. The protocol was renamed TLS to avoid legal issues with Netscape, which developed the SSL protocol as a key feature part of its original web browser. According to the protocol specification, TLS is composed of two layers: the TLS record protocol and the TLS handshake protocol. The record protocol provides connection security, while the handshake protocol allows the server and client to authenticate each other and to negotiate encryption algorithms and cryptographic keys before any data is exchanged.
Implementation flaws have always been a big problem with encryption technologies, and TLS is no exception. The infamous Heartbleed bug was the result of a surprisingly small bug in a piece of logic that relates to OpenSSL's implementation of the TLS heartbeat mechanism, which is designed to keep connections alive even when no data is being transmitted. Although TLS is not vulnerable to the POODLE attack, because it specifies that all padding bytes must have the same value and be verified, a variant of the attack has exploited certain implementations of the TLS protocol that don't correctly validate encryption padding byte requirements.
TLS 1.3 security enhancements
Finalized in 2018, TLS 1.3 is the current version of the protocol. TLS 1.3 was developed to address various vulnerabilities that have been exposed over the past few years, reduce the chance of implementation errors, and remove features no longer needed. For example, MD5 cryptographic hashes are no longer supported, perfect forward secrecy is required, and RC4 negotiation is prohibited. All known vulnerabilities against prior versions of TLS such as BEAST, CRIME, and protocol downgrade attacks have also been eliminated. Popular web browsers such as Google Chrome and Mozilla Firefox use TLS 1.3 by default, where possible. In 2018, the Payment Card Industry Data Security Standard -- the industry regulation governing the protection of electronic credit card transactions -- mandated the use of TLS 1.1 or higher in most situations. In addition to its enhanced resilience, TLS 1.3 is faster due to a more efficient handshake between the two systems communicating.