TLS (Transport Layer Security) is a security protocol that is used to establish encrypted links between a web server and a browser in order to protect the data exchanged between them.
TLS is the successor of SSL (Secure Sockets Layer) and is now the most widely used protocol for securing web communications.
TLS provides privacy and data security between two communicating applications, and is used in web browsers and other applications that require data to be securely exchanged over a network.
TLS ensures that data cannot be read or tampered with during transit and that the identity of the communicating parties can be verified.
How TLS works
TLS uses a combination of public-key and symmetric-key cryptography to achieve its security goals. Public-key cryptography, also known as asymmetric cryptography, relies on a pair of keys - a public key and a private key - to encrypt and decrypt data. The public key can be shared with anyone, but the private key must be kept secret.
Symmetric-key cryptography, on the other hand, uses a single shared key to encrypt and decrypt data. The main advantage of symmetric-key cryptography is that it is much faster than public-key cryptography. However, the disadvantage is that both parties must somehow securely share the secret key before they can communicate securely.
In order to overcome this limitation, TLS uses a combination of both public-key and symmetric-key cryptography. When two parties want to establish a secure connection using TLS, they first use public-key cryptography to agree on a shared secret key. Once they have done this, they can then use symmetric-key cryptography for all further communications using that shared secret key.
The main advantage of this approach is that it allows TLS to take advantage of the speed of symmetric-key cryptography while still ensuring that the shared secret key remains confidential. This is because the shared secret key never needs to be transmitted over the network - it can be generated entirely from within each party's own computer.
What is the difference between TLS and SSL?
The main difference between TLS and SSL is that TLS is an improved version of SSL. SSL was developed by Netscape in the 1990s as a way to secure sensitive information, such as credit card numbers and passwords, as it travels across the internet.
TLS was developed by the Internet Engineering Task Force in 1999 as a replacement for SSL. TLS is based on SSL but includes a number of security enhancements that make it more effective at protecting data.
Another difference between TLS and SSL is that TLS uses stronger encryption algorithms to protect data. Also, TLS provides stronger authentication than SSL does by verifying not only the identity of the server but also the identity of the client. This two-way authentication helps to prevent so-called "man-in-the-middle" attacks, in which an attacker intercepts communications between a server and a client and impersonates both parties.
Additionally, TLS offers perfect forward secrecy (PFS), which means that even if an attacker is able to compromise a private key, they would only be able to access data that was encrypted with that key—they would not be able to use it to decrypt data that was encrypted with other keys. PFS is achieved by using a Diffie-Hellman exchange to generate unique session keys for each session.
How does TLS affect web application performance?
TLS handshake protocol
One of the most common ways that TLS affects web application performance is through the TLS handshake protocol. The TLS handshake is a process that occurs when two devices first establish a secure communication channel.
During the handshake, the devices exchange information about their preferred security protocols and cipher suites. This process can add significant overhead to web applications, especially if the handshake is renegotiated frequently.
Another way that TLS affects web application performance is through the use of cipher suites. Cipher suites are algorithms that are used to encrypt communication between two devices. Some cipher suites are more resource-intensive than others, which can impact the performance of web applications.
There are a few things you can do to mitigate the negative effects of TLS on web application performance:
- Prioritize performance over security: Use only the encryption algorithms and key sizes that are absolutely necessary to maintain an acceptable level of security. For most applications, 128-bit encryption will suffice.
- Offload cryptographic processing: Use hardware accelerators or specialized processors to offload the cryptographic processing required for TLS from the main CPU. This can free up valuable CPU resources for other tasks and improve overall system performance.
- Use connection pooling: Connection pooling allows multiple clients to reuse a small number of pre-opened connections. This reduces the overhead associated with opening and closing connections and can improve both throughput and latency.
- Cache session IDs: Session IDs can be cached locally to avoid the overhead of performing a full handshake each time a new session is needed. This optimization is most effective for short-lived sessions that are reused frequently.
How to start implementing TLS on a website
TLS is the encryption mechanism used by SSL, and as you may know, SSL certificates come for free with many web hosts and plans. Look for ‘Free SSL’ or ‘Let’s Encrypt’ in the feature list to check. If not, you’ll have to pay. Prices vary depending on the provider.
Shared hosting plans should be SSL/TLS-enabled automatically, but there may be some work to do with other plans. Ask your host or check its support site for details.
- Check out our list of the best web hosting services out there
Are you a pro? Subscribe to our newsletter
Sign up to the TechRadar Pro newsletter to get all the top news, opinion, features and guidance your business needs to succeed!
Ruby has been a freelance technology writer for over four years and has a passion for information technology and the Internet in its entirety. She has a wide range of specialities including web hosting, streaming (Firestick, Kodi, and APKs), VPN, information technology, and affiliate marketing. Ruby is a graduate of Bachelor of Science in Commerce from the University of the Philippines, and regularly codes in her free time.