SSL vs TLS: Wat is het, wat is het verschil en welke moet je gebruiken?

cacholong-web-blog-header-19-2

Wat je als ontwikkelaar moet weten over SSL en TLS!

Iedere zichzelf respecterende websitebouwer of ontwikkelaar weet dat een site of shop een SSL-certificaat nodig heeft. Dus regel je dat voor je klanten.

Als ik je vraag Wat is een SSL-certificaat? Dan kun je me daar vast en zeker op antwoorden. Maar weet je het antwoord ook op de vraag: Hoe werkt het SSL-certificaat precies? En weet je welke impact het heeft op de informatiebeveiliging en performance?

Wat heeft SSL trouwens te maken met TLS? Heb je die allebei nodig of volstaat een van de twee?

In deze blog vertel ik over het hoe en wat van SSL en TSL.

Inhoud van dit artikel


Het SSL-certificaat

Vrijwel elke ontwikkelaar weet wat een SSL-certificaat is. Het is niets meer en niets minder dan een beveiligingscertificaat - een soort identiteitsbewijs - voor een website of webshop. Er zijn verschillende soorten certificaten:

  • DV-certificaten voor domeinvalidatie
  • OV-certificaten voor organisatievalidatie
  • EV-certificaten voor extended validation of met andere woorden: volledige bedrijfsvalidatie
  • Wildcards voor meerdere subdomeinen en verschillende beveiligingsniveaus

Nog niet thuis in de wereld van SSL-certificaten? Lees dan eerst deze blog: Doe de SSL-test en ontdek hoe veilig je website is.

Nu is de term ‘SSL-certificaat’ eigenlijk wat ongelukkig gekozen. Het impliceert dat er een Secure Sockets Layer (SSL) voor nodig is, terwijl je ook gebruik kunt maken van onder andere Transport Layer Security (TLS).

Voordat ik inga op SSL en TLS, eerst even iets meer over de beveiligingscertificaten. Een certificaat bestaat namelijk uit twee delen:

  1. Privésleutel of private key
  2. Publieke sleutel of public key; een door een Certificaat Autoriteit (CA) ondertekend gedeelte

Deze twee onderdelen zijn onlosmakelijk met elkaar verbonden. Zonder één van deze sleutels is het onmogelijk om een beveiligde verbinding op te zetten.

Het proces voor het maken van een certificaat gaat als volgt:

  1. Genereer een nieuwe privésleutel;
  2. Genereer een Certificate Signing Request (CSR) met de gegevens die je in het certificaat wilt vermelden;
  3. Stuur de CSR door naar de CA voor ondertekening;
  4. Ontvang het certificaat van de CA.

Belangrijk hierbij is om de privésleutel te beschermen. Zodra deze sleutel bij iemand anders bekend is, kan die persoon zich voor doen als jou. De gevolgen laten zich raden!

Het certificaat en de privésleutel zijn essentieel bij de uitwisseling en bescherming van gegevens.

Wat is SSL, wat is TLS?

SSL is de afkorting van Secure Sockets Layer. SSL is een encryptieprotocol dat zorgt voor het tot stand brengen van veilige verbindingen.

TLS staat voor Transport Layer Security. Net als SSL is TLS een encryptieprotocol dat de communicatie tussen bijvoorbeeld een browser en een server beveiligt. Je kunt je voorstellen dat dit belangrijk is bij online bankieren. Maar ook bij het uitwisselen van persoonlijke of andere informatie is het belangrijk, zo niet essentieel.

Is SSL hetzelfde als TLS?

SSL en TLS zijn beide encryptieprotocollen. Maar daarmee houdt de vergelijking eigenlijk wel op. TLS is namelijk de opvolger van SSL en qua beveiliging heeft er een enorme evolutie plaatsgevonden.

De Internet Engineering Task Force (IETF) adviseert dan ook om het inmiddels achterhaalde SSL niet meer te gebruiken.

Korte geschiedenis van SSL en TLS

Om de verschillen tussen SSL en TLS goed uit te leggen, duiken we even de geschiedenis in.

SSL werd in 1994 ontwikkeld. De eerste versie – SSL 1.0 – is niet op de markt gebracht. SSL 2.0 werd in 1995 uitgegeven. Vanwege cryptografische zwakheden werd al snel, in 1996, overgeschakeld naar SSL 3.0. In 2011 heeft het IETF het protocol SSL 3.0 als een historisch document gepubliceerd. Met andere woorden: deze drie versies SSL moet je als onveilig beschouwen.

In 1999 werd TLS 1.0 uitgebracht. In 2006 werd TLS 1.1 gepubliceerd. In 2008 volgde TLS 2.0 en in maart 2018 TLS 1.3.

Hoewel veel sites SSL nog steeds ondersteunen, raad ik je aan om SSL 2.0 tot en met TLS 1.1 uit te schakelen.

Hoe werkt TLS en wat wordt er bedoeld met TLS handshake?

Wanneer een browser toegang wil krijgen tot een beveiligde website, wordt er door TLS een proces in gang gezet. Dat proces noemen we TLS handshake. Dit proces is onzichtbaar voor de gebruiker.

Het proces (versimpelde versie) ziet er als volgt uit:

  1. De client maakt verbinding met een server en vraagt of de server zich wil identificeren;
  2. De server stuurt een kopie van het beveiligingscertificaat inclusief de gegevens van de publieke sleutel;
  3. De client controleert het certificaat. Er wordt onder andere gecheckt of het certificaat niet ingetrokken of verlopen is. Als de client het certificaat vertrouwt, verstuurt de client versleutelde informatie. Deze informatie is met de publieke sleutel gecodeerd en kan alleen met de privésleutel worden ontsleuteld.
  4. De server ontsleutelt de beveiligde informatie.
  5. Zowel de client als server maken een sessiesleutel of session key aan en sturen elkaar een bevestiging.
  6. Nu is de TLS handshake bevestigd en er is een beveiligde verbinding tot stand gebracht.

Je ziet dat er bij TLS 1.2 meer wordt uitgewisseld dan bij TLS 1.3 en dat de TLS 1.2-procedure (de TLS handshake) meer tijd in beslag neemt. Het grote voordeel van TLS 1.3 is dat de laadtijd, of eigenlijk de Time to first byte (TTFB), korter is.

De TTFB geeft aan hoe lang het duurt voordat de browser de eerste byte data ontvangt van de server. Hoe hoger de TTFB, des te langer het duurt voordat de browser een webpagina weergeeft.

Wanneer een Nederlandse client contact opneemt met een server die bijvoorbeeld in de Verenigde Staten staat, is de TTFB hoger vanwege de fysieke afstand. Gebruik je dan TLS 1.3 in plaats van TLS 1.2 dan win je behoorlijk veel tijd. En dat komt de performance alleen maar ten goede.

Lighthouse beveelt overigens een TTFB van minder dan 600 ms aan.

Wat zijn de voordelen van TLS?

Het is natuurlijk belangrijk om beveiligde verbindingen tot stand te brengen als het gaat om de uitwisseling van gevoelige informatie, zoals creditcardgegevens en andere privacygevoelige informatie. Dat is één van de redenen waarom TLS ingezet wordt.

Maar TLS heeft méér voordelen:

  1. Encryptie – Informatie uitwisselen zonder TLS betekent dat deze als plain text toegankelijk is voor malafide partijen. De informatie kan worden bekeken, gewijzigd en/of misbruikt. TLS versleuteld informatie, zodat de gegevensuitwisseling veilig kan verlopen.
  2. Authenticatie – TLS zorgt ervoor dat gegevens worden verzonden naar en ontvangen worden door de juiste server. Daardoor komt de bezoeker terecht op de website die hij wil zien en niet op een onbetrouwbare website (of zelfs een door een hacker gekloonde site).
  3. Data-integriteit – Een door TLS beveiligde verbinding voorkomt dat er gegevens verloren gaan of tijdens het transport veranderen. Dat gebeurt door een message authentication code (MAC) toe te voegen.

Tot slot: een korte samenvatting

SSL en TLS zijn beide encryptieprotocollen om te zorgen voor een beveiligde informatieoverdracht tussen client en server. SSL is de voorganger van TLS. De term SSL is dus achterhaald.

Een SSL-certificaat is een beveiligingscertificaat en zou eigenlijk beter de naam TLS-certificaat kunnen dragen. Voor een ‘SSL-certificaat’ heb je geen SSL nodig, maar de meest recente versie van TLS (TLS 1.2 of 1.3).

Als je gebruikt maakt van onze dienstverlening, ben je er zeker van dat wij TLS 1.2 of TLS 1.3 gebruiken om beveiligde verbindingen tot stand te brengen.

Wil je meer weten over SSL en TLS? Of heb je behoefte aan ondersteuning op dit gebied? Neem contact met op. Ik help je graag verder!

4

Interesse? Laten we kennismaken!

Hoe kunnen we jouw helpen? We maken graag persoonlijk kennis. Vertel ons wat je wensen en eisen zijn. Dan geven we jou het juiste advies en overtreffen we jouw verwachting.

In contact komen
DNV-certified