Opmerking van de redactie: Dit bericht werd oorspronkelijk gepubliceerd in juli 2016 en is bijgewerkt door GlobalSign Senior Product Marketing Manager Patrick Nohe om de laatste veranderingen in de evolutie van SSL weer te geven.
Tenzij u er regelmatig mee werkt, is de kans groot dat u het verschil tussen SSL (Secure Sockets Layers) en TLS (Transport Layer Security) niet kent. En deze industrie doet u niet veel goeds door TLS in de volksmond SSL te noemen. Er zijn vier versies van het TLS-protocol. SSL is (of wordt verondersteld te zijn) volledig afgeschreven. Dus, wat is het verschil tussen SSL en TLS?
Je staat op het punt om daarachter te komen.
Een korte geschiedenis van SSL en TLS
SSL en TLS zijn beide cryptografische protocollen die voor authenticatie en gegevensencryptie zorgen tussen servers, machines en applicaties die deel uitmaken van een netwerk (bijv. een client die verbinding maakt met een webserver). In werkelijkheid is SSL slechts 25 jaar oud. Maar in internetjaren is dat oud. De eerste versie van SSL, versie 1.0, werd voor het eerst ontwikkeld in 1995 door Netscape, maar is nooit uitgebracht omdat het vol zat met ernstige beveiligingsfouten. SSL 2.0 was niet veel beter, dus slechts een jaar later werd SSL 3.0 uitgebracht. Opnieuw had het ernstige beveiligingsfouten.
Op dat moment heeft Consensus Development TLS 1.0 ontwikkeld. TLS 1.0 was vergelijkbaar met SSL 3.0 - in feite was het er op gebaseerd - maar nog steeds verschillend genoeg om een downgrade te vereisen voordat SSL 3.0 kon worden gebruikt. Zoals de makers van het TLS protocol schreven:
"De verschillen tussen dit protocol en SSL 3.0 zijn niet groot, maar ze zijn groot genoeg dat TLS 1.0 en SSL 3.0 niet interoperationeel zijn.”
Het downgraden naar SSL 3.0 was echter nog steeds gevaarlijk, gezien de bekende, exploiteerbare kwetsbaarheden. Het enige wat een aanvaller hoefde te doen om een website aan te vallen was het protocol te downgraden naar SSL 3.0. Vandaar de geboorte van downgrade-aanvallen. Dat werd uiteindelijk de nagel aan de doodskist voor TLS 1.0.
TLS 1.1 kwam zeven jaar later uit in 2006, vervangen door TLS 1.2 in 2008. Dat deed afbreuk aan TLS 1.1 adoptie omdat veel websites gewoon opgewaardeerd waren van 1.0 naar TLS 1.2.
We zijn nu bij TLS 1.3, dat in 2018 na 11 jaar en bijna 30 IETF-ontwerpen werd afgerond.
TLS 1.3 maakt aanzienlijke verbeteringen ten opzichte van zijn voorgangers en op dit moment dringen grote spelers rond het internet aan op de verspreiding ervan. Microsoft, Apple, Google, Mozilla en Cloudflare hebben allemaal plannen aangekondigd om zowel TLS 1.0 als TLS 1.1 in januari 2020 af te schaffen, waardoor TLS 1.2 en TLS 1.3 als enige beschikbaar zijn.
We gebruiken TLS in ieder geval al een paar decennia. Op dit punt, als je nog steeds gebruik maakt van SSL loop je jaren achter, metaforisch gezien leven in een verloren tijdperk waar mensen nog steeds gebruik maken van telefoonlijnen om door te bellen naar het internet.
Moet u SSL of TLS gebruiken?
Zowel SSL 2.0 als 3.0 mogen niet meer gebruikt worden van de Internet Engineering Task Force, ook bekend als IETF (in 2011 en 2015, respectievelijk). Er worden nog steeds nieuwe kwetsbaarheden ontdekt in de verouderde SSL-protocollen (bv. POODLE, DROWN). De meeste moderne browsers tonen een slechtere gebruikerservaring (bijv. lijn door het hangslot of https in de URL-balk of andere beveiligingswaarschuwingen) wanneer ze verbinding maken met een webserver die de oude protocollen gebruikt. Daarom schakelt u SSL 2.0 en 3.0 best uit in uw serverconfiguratie, en terwijl u bezig bent - ga uw gang en verwijder ook TLS 1.0 en TLS 1.1.
Volgens een recent WatchGuard onderzoek ondersteunt bijna 7% van de Alexa Top 100.000 nog steeds SSL 2.0 en/of SSL 3.0. Deze sites zijn dus nog steeds in overvloed aanwezig.
Certificaten zijn niet hetzelfde als protocollen
Voordat iemand zich zorgen maakt dat hij zijn bestaande SSL-certificaten moet vervangen door TLS-certificaten, is het belangrijk op te merken dat certificaten niet afhankelijk zijn van protocollen. U hoeft geen TLS-certificaat vs. een SSL-certificaat te gebruiken. Hoewel heel wat leveranciers vaak de benaming 'SSL/TLS-certificaat' gebruiken, zou het nauwkeuriger zijn om hen 'certificaten voor gebruik met SSL en TLS' te noemen, omdat de protocollen worden bepaald door uw serverconfiguratie, niet de certificaten zelf.
Dat geldt ook voor de encryptiesterkte. Veel certificaten adverteren met encryptiesterkte, maar het zijn echt de mogelijkheden van de server en de client die dat bepalen. Aan het begin van elke verbinding vindt een proces plaats dat een handdruk wordt genoemd. Tijdens dit proces verifieert de client het TLS-certificaat van de server en beslissen de twee over een wederzijds ondersteunde codeersuite. Cipher suites zijn een verzameling van algoritmes die allemaal samenwerken om uw verbinding met die website veilig te versleutelen. Wanneer de codeer suite wordt onderhandeld tijdens de handshake, dat is wanneer de versie van het protocol en de ondersteunende algoritmes worden bepaald. Uw certificaat vergemakkelijkt het proces.
Historisch gezien zijn er vier algoritmes in een coderingssuite:
- Sleuteluitwisseling
- Digitale handtekening
- Bericht Authenticatie
- Hashing Algoritme
(Als dat een beetje ingewikkeld lijkt, zal het duidelijker worden als we de verschillen tussen SSL en TLS bespreken).
Voorlopig zult u waarschijnlijk certificaten blijven zien die aangeduid worden als SSL-certificaten, omdat dat de term is waarmee de meeste mensen vertrouwd zijn. We beginnen een toenemend gebruik van de term TLS in de industrie te zien, en SSL/TLS is een compromis totdat TLS breder geaccepteerd wordt.
Zijn SSL en TLS verschillend cryptografisch gezien?
Ja. Het verschil tussen de verschillende versies van het protocol is misschien niet groot, maar als je SSL 2.0 met TLS 1.3 zou vergelijken, zou er een grote kloof tussen de twee zijn. In de kern is het concept hetzelfde door elke versie. Het is gewoon de manier waarop de verschillende protocollen de taak van het versleutelen van verbindingen uitvoeren die afwijkt.
Elke nieuwe versie van het protocol bevatte en zal in de toekomst zijn eigen verbeteringen en/of nieuwe/verouderde functies bevatten. SSL versie 1 werd nooit uitgebracht, versie 2 wel maar met een aantal grote fouten, SSL versie 3 was een heruitgave van versie 2 (om deze fouten op te lossen – met beperkt succes) en TLS versie 1 was een verbetering van SSL versie 3. TLS 1.2 bracht enkele belangrijke veranderingen met zich mee en TLS 1.3 heeft het hele proces verfijnd en gestroomlijnd.
Het is belangrijk op te merken dat SSL en TLS gewoon verwijzen naar de handdruk die plaatsvindt tussen een client en een server. De handdruk zorgt zelf niet voor encryptie, maar geeft gewoon zijn akkoord met een gedeeld geheim en het soort encryptie dat gebruikt gaat worden. Een SSL-handshake maakt gebruik van een poort om de verbindingen te maken. Dit wordt een expliciete verbinding genoemd. Poort 443 is de standaard poort voor HTTPS, maar er zijn in totaal 65.535 poorten - met slechts een paar specifieke functies.
TLS, daarentegen, begint zijn verbindingen via protocol. Dit wordt een impliciete verbinding genoemd. De allereerste stap van de handdruk - de handeling die het begint - wordt een client hallo genoemd. Bij TLS wordt dit via een onveilig kanaal verstuurd en de verbinding schakelt over naar poort 443 (of de door u aangewezen poort) zodra de handshake is begonnen.
Van oudsher worden er bij de handdruk verschillende rondes gemaakt, waarbij de authenticatie en sleuteluitwisseling plaatsvindt. Met SSL is dit een extra latentie voor de verbindingen. Daar is de mythe ontstaan dat SSL/HTTPS uw website vertraagt. Elke nieuwe iteratie van het protocol heeft gewerkt om de latentie die door de handdruk wordt toegevoegd te verminderen. Door TLS 1.2 werd bewezen dat HTTPS eigenlijk sneller was dan HTTP vanwege de compatibiliteit met HTTP/2.
TLS 1.3 heeft de handdruk nog verder verfijnd. Het kan nu met één enkele rondreis worden uitgevoerd en maakt de hervatting van de Zero rondreis mogelijk (0-RTT). Een deel van de manier waarop dit werd gedaan was door het aantal cijferreeksen dat het ondersteunt te verminderen, van vier algoritmen naar twee.
Nu is het gewoon een bulk encryptie (symmetrisch/sessie) algoritme en een hashing algoritme. De sleuteluitwisseling en de onderhandelingen over de digitale handtekening zijn verwijderd. De sleuteluitwisseling wordt nu uitgevoerd met behulp van een Diffie-Hellman-familie, waardoor zowel een perfecte voorwaartse geheimhouding standaard mogelijk is als de cliënt en de server hun deel van het gedeelde geheim bij hun eerste interactie kunnen leveren. De eerste interactie is nu ook versleuteld, waardoor de deur wordt gesloten voor een mogelijke aanvalsvector.
Meer informatie over de nieuwe functies in TLS 1.3 vindt u in de blog van Cloudflare.
SSL 2.0 en 3.0 uitschakelen
Als u niet weet of uw servers nog steeds SSL-protocollen ondersteunen, kunt u dit makkelijk controleren met onze SSL Server Test. Voor instructies over hoe u SSL 2.0 en 3.0 kunt uitschakelen op populaire servertypes, waaronder Apache, NGINX en Tomcat, leest u ons supportartikel over dit onderwerp. Als u TLS 1.0 nog moet uitschakelen, kunnen wij u daar ook mee helpen
Dus, wat is nu het verschil tussen SSL en TLS? In een beleefd gesprek is er niet veel - en veel mensen blijven de termen SSL en TLS door elkaar gebruiken. In termen van uw serverconfiguratie zijn er echter enkele grote architectonische en functionele verschillen. En die verschillen zijn de ruimte tussen kwetsbaarheden, verouderde cijferreeksen en beveiligingswaarschuwingen van de browser - en een beveiligde server. Als het om uw servers gaat, moet u alleen TLS-protocollen hebben ingeschakeld.
Heeft u nog vragen over SSL/TLS-configuratie en best practices? Laat het ons weten. Wij helpen u graag verder!