The TLS handshake is a multi-step process. A basic TLS handshake involves the client and server sending “hello” messages, and the exchange of keys, cipher message and a finish message. The multi-step process is what makes TLS flexible enough to use in different applications because the format and order of exchange can be modified.
TLS flaws and breaches
Flaws in protocols and implementations constantly cause problems with security tools and technology, and TLS has certainly had its share of breaches. Some of the more significant attacks on TLS/SSL:
- BEAST (2011): The Browser Exploit Against SSL/TLS is a browser exploit that took advantage of a weakness in the cipher blocking chain (CBC) to extract the unencrypted plaintext in an encrypted session.
- CRIME and BREACH (2012 and 2013): The creators of BEAST authored the security exploit Compression Ratio Info-link Made Easy, which enables a hacker to retrieve the content of Web cookies, even when compression and TLS are used. One nefarious use case for this is recovering the authentication cookies so attackers can hijack authenticated web sessions. Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext, or BREACH, is built on CRIME and extracts login tokens, e-mail addresses and other information.
- Heartbleed (2014): Heartbleed allows hackers to steal private keys from what should be secure servers. Infected servers were left wide open to let anyone on the Internet read the memory in systems being protected by a vulnerable version of OpenSSL. The breach let threat actors steal data from servers or listen in on conversations or even spoof services and other users.
TLS 1.3 boosts security, performance, privacy
TLS 1.3 was the first major rewrite as the Internet Engineering Task Force (IETF) set out to modernize the protocol. Think of previous versions being band aids put on flawed code. These helld for a while but eventually the bad guys figured out how to work around that.
In addition to making a major revision, the IETF set out to make what it called “major improvements in the areas of security, performance and privacy”. The biggest change is that TLS 1.3 makes it significantly more difficult for attackers to decrypt HTTPS-encrypted traffic and therefore better protect privacy.
Version 1.3 also makes the handshake process faster by speeding up the encryption process. This has a security benefit, but it should also improve performance of secure web applications. With TLS 1.2, the handshake process involved several round trips. With 1.3 only one round is required, and all the information is passed at that time.
Implementing TLS 1.3 is simple as it was designed to seamlessly replace TLS 1.2 and uses the same certificates and keys. Also, clients and servers can automatically negotiate a connection if it’s supported on both sides.