SSL-cryptografie is gebaseerd op public-key cryptography, dat gebruikmaakt van asymmetrische sleutels om gegevens te versleutelen die worden verzonden tussen een server en een client; meestal een website en een browser of een mailserver en mailclient zoals bij Microsoft Outlook.
De geschiedenis van Secure Socket Layer is nauw verweven met de geschiedenis van het internet. De release van de eerste praktisch uitvoerbare versie, SSL 2.0, vond plaats in 1995 in de internetbrowser Netscape. In 1999 werd SSL geüpgraded naar versie 3.0, maar dit kon niet voorkomen dat het protocol uiteindelijk werd afgeschaft vanwege verschillende kwetsbaarheden. Het werd vervangen door TLS, oftewel Transport Layer Security, dat nu als een veiligere versie van SSL wordt beschouwd. Veel mensen noemen TLS, het huidige beveiligingsprotocol voor internet, nog steeds SSL en de twee afkortingen worden dan ook vaak door elkaar gebruikt.
Lees hier meer over de geschiedenis van TLS/SSL-cryptografie.
TLS/SSL-cryptografie en encryptie worden gebruikt voor het beveiligen van vele websites op internet en zijn de reden waarom u 'HTTPS' ziet in de adresbalk van de browser. Met TLS/SSL-encryptie kunnen vertrouwelijke gegevens zoals creditcardnummers, burgerservicenummers en inloggegevens veilig worden verzonden. Voor het opzetten van deze verbinding moeten de browser en de server een digitaal certificaat hebben, ook wel een TLS/SSL-certificaat genoemd.
De achterliggende technologie van TLS/SSL-encryptie maakt gebruik van asymmetrische en symmetrische sleutels. De openbare en persoonlijke sleutels zijn gebaseerd op verschillende algoritmen zoals RSA en ECC (Elliptic Curve Cryptography), waardoor ze vrijwel onmogelijk te kraken zijn.
Asymmetrische encryptie, ook wel public-key cryptography of SSL-cryptografie genoemd, maakt gebruik van twee verschillende sleutels voor versleuteling en ontsleuteling. Bij asymmetrische encryptie kan iedereen de openbare sleutel gebruiken om een bericht te versleutelen. De sleutel die wordt gebruikt voor het ontsleutelen blijft echter geheim. Op die manier kan alleen de beoogde ontvanger het bericht ontsleutelen.
Het meestgebruikte cryptografische algoritme is RSA. RSA staat voor Ron Rivest, Adi Shamir en Leonard Adleman, degenen die in 1977 het algoritme voor het eerst gebruikten. Asymmetrische sleutels bestaan meestal uit 1024 of 2048 bits. Sleutels die kleiner zijn dan 2048 bits worden tegenwoordig niet meer als veilig beschouwd. Sleutels van 2048 bits hebben veel unieke encryptiecodes die bestaan uit 617 cijfers.
Het maken van sleutels met meer dan 2048 bits is mogelijk, maar daarvoor is zoveel extra rekenkracht nodig dat ze zelden worden gebruikt. Om een idee te geven: het zou een gemiddelde computer ruim 14 miljard jaar kosten om een 2048-bits certificaat te kraken.
Bij symmetrische encryptie, oftewel encryptie met vooraf gedeelde sleutels, wordt gebruikgemaakt van een enkele sleutel voor het versleutelen en ontsleutelen van gegevens. De afzender en ontvanger gebruiken dezelfde sleutel om te communiceren. Symmetrische sleutels zijn meestal 128 of 265 bits, en hoe groter de sleutel, hoe moeilijker het is om de encryptie te kraken. Met een sleutel van 128 bits kunnen bijvoorbeeld 340.282.366.920.938.463.463.374.607.431.768.211.456 mogelijke encryptiecodes worden gemaakt. Het moge duidelijk zijn dat het met een zogeheten 'brute force'-aanval (waarbij een aanvaller elke mogelijke sleutel probeert totdat de juiste is gevonden) erg lang duurt voordat een 128-bits sleutel is gekraakt. De keuzen tussen 128 bits en 256 bits hangt af van de encryptiecapaciteit van zowel de server- als de clientsoftware. TLS/SSL-certificaten bepalen niet welke sleutelgrootte er wordt gebruikt.
Omdat asymmetrische sleutels groter zijn dan symmetrische sleutels, zijn gegevens die asymmetrisch zijn versleuteld moeilijker te kraken dan gegevens die symmetrisch zijn versleuteld. Dit betekent echter niet dat asymmetrische sleutels beter zijn. In plaats van hun grootte te vergelijken, moeten de benodigde rekenkracht en het verspreidingsgemak worden vergeleken.
Symmetrische sleutels zijn kleiner dan asymmetrische en vereisen dus minder rekenkracht. Maar symmetrische sleutels hebben een groot nadeel, met name wanneer u ze gebruikt voor het beveiligen van gegevensoverdracht. Omdat dezelfde sleutel wordt gebruikt voor symmetrische versleuteling en ontsleuteling hebben zowel u als de ontvanger de sleutel nodig. Als u de ontvanger de sleutel gewoon kunt vertellen, is het allemaal niet zo ingewikkeld. Maar wanneer u de sleutel moet versturen naar een gebruiker aan de andere kant van de wereld (dit ligt meer voor de hand), zult u moeten nadenken over de beveiliging ervan.
Bij asymmetrische encryptie doet dit probleem zich niet voor. Zolang u uw persoonlijke sleutel geheimhoudt, kan niemand uw bericht ontcijferen. U kunt de bijbehorende openbare sleutel verspreiden zonder dat u zich zorgen hoeft te maken over wie die in handen krijgt. Iedereen met de openbare sleutel kan gegevens versleutelen, maar alleen degene met de persoonlijke sleutel kan die ontsleutelen.
Public-key infrastructure (PKI) is de set hardware, software, mensen, beleidsregels en procedures die noodzakelijk zijn voor het maken, beheren, distribueren, gebruiken, opslaan en intrekken van digitale certificaten. PKI wordt ook door certificeringsinstanties gebruikt om sleutels te koppelen aan gebruikersidentiteiten. PKI maakt gebruik van een hybride cryptosysteem waarin beide typen encryptie worden toegepast. Bij bijvoorbeeld TLS/SSL-communicatie bevat het TLS-certificaat van de server een asymmetrisch sleutelpaar met een openbare en een persoonlijke sleutel. De sessiesleutel die door de server en browser wordt gemaakt tijdens de SSL-handshake is symmetrisch.