Werking moderne encryptie: over SSL certificaten en sleutels
Encryptie, sleutels, codering, SSL en certificaten. Het zijn allemaal termen die we weleens tegenkomen. Vooral in de digitale wereld waar we tegenwoordig in leven. En nu steeds meer belangrijke zaken via internet geregeld worden is een goede beveiliging ook absolute noodzaak. Maar op welke principes zijn de moderne encryptietechnieken gebaseerd? Hoe werkt het en welke beveiligingsrisico's worden hiermee omzeild? En hoe waterdicht is dit systeem eigenlijk?
Het idee van het versleutelen van gegevens om ze zo geheim te houden is al eeuwenoud. Het doel is altijd dat alleen de zender en ontvanger weten wat er in het bericht staat. Maar dat een ieder die het bericht weet te onderscheppen, niet kan ontcijferen wat er staat geschreven. In het verleden werd dit bijvoorbeeld gebruikt in tijden van oorlog, om zo instructies en informatie tussen locaties over te brengen.
Voor de opkomst van computers werd het coderen en decoderen van dergelijke berichten met de hand gedaan. Daar bestaan allerlei verschillende methodes voor. Een eenvoudig voorbeeld is dat van de substitutie, waarbij letters vervangen worden door andere letters. Maar er bestaan ook betere, moeilijker te breken vercijferingsmethodes. En sinds de computer is het eenvoudig geworden zwaardere algoritmes toe te passen. Het decoderen kost immers relatief weinig moeite en tijd.
Symmetrische encryptie
Al deze methodes worden ook wel symmetrische encryptie of versleuteling genoemd. Die naam bestaat eigenlijk pas sinds er ook asymmetrische encryptie bestaat. Typerend aan symmetrische cryptografie is dat zowel zender als ontvanger over de sleutel beschikken om de berichten mee te coderen en te decoderen. Het is dus noodzakelijk dat beide partijen deze informatie hebben, voordat er versleutelde berichten kunnen worden uitgedeeld.
Het grote voordeel van asymmetrische versleuteling
Bij asymmetrische encryptie is het niet nodig dat beide partijen over dezelfde sleutels beschikken. In dit geval is er sprake van twee sleutels, een publieke sleutel en een geheime sleutel. In het Engels worden deze de public en private keys genoemd. De publieke sleutel is in principe voor iedereen beschikbaar, terwijl de geheime sleutel juist alleen bij de ontvangende partij bekend is.
Wil de zender nu een gecodeerd bericht versturen, dan wordt dit bericht versleuteld (gecodeerd) met de publieke sleutel. De informatie die hieruit komt is natuurlijk onleesbaar. De truc is echter dat met de publieke sleutel het bericht niet weer te decoderen is. Het is alleen mogelijk de originele informatie terug te halen, door de versleutelde data te ontcijferen met de geheime sleutel.
Zware wiskunde is de sleutel
Om voorgaande mogelijk te maken, kan er vanzelfsprekend niet zomaar een willekeurige publieke en geheime sleutel worden gebruikt. Bij een bepaalde geheime sleutel hoort ook een specifieke publieke sleutel. Er zit een harde relatie tussen die twee. Het bijzondere hieraan is dat je dus data kunt coderen met de publieke sleutel, maar dat je beslist de geheime sleutel nodig hebt om het te ontcijferen.
Het is zo theoretisch goed mogelijk om op basis van de publieke sleutel de geheime sleutel te ontdekken. In de praktijk is dit echter niet te doen. Moderne computers zouden vele jaren nodig hebben om een geheime sleutel te bepalen aan de hand van de publieke sleutel. Aan de basis van deze techniek liggen priemgetallen en vrij complexe wiskunde.
Mogelijk te communiceren tussen twee onbekende partijen
Dankzij deze asymmetrische methode is het mogelijk voor partij A om versleuteld te communiceren met een partij B. Neemt partij A het initiatief, dan moet deze de publieke sleutel van partij B bemachtigen. Deze is echter niet geheim, dus kan zo op een onbeveiligd gedeelte van de website van partij B staan. Partij A gebruikt deze publieke sleutel om een bericht samen te stellen.
In dat eerste bericht stopt partij A onder andere zijn eigen publieke sleutel. Op die manier kan B, na het decoderen, een bericht terug naar A sturen. Dat bericht is versleuteld met de publieke sleutel van A. En om dat weer te ontcijferen is de geheime sleutel van A nodig, zodat ook alleen A iets met het responsbericht kan.
Toch nog een risico?
Helaas hebben we hiermee nog niet een voldoende veilig systeem. Er is namelijk nog een kans op een 'man-in-the-middle'-aanval. Vrij vertaald zou je dit een 'ongewenste tussenpersoon'-aanval kunnen noemen. Het kan mis gaan bij het eerst initiatief, wanneer partij A de publieke sleutel van partij B bemachtigt. Als daar een kwaadwillend persoon tussenkomt, valt het hele principe als een kaartenhuis in elkaar.
Hoe werkt een man-in-the-middle?
Stel er is een criminele partij X. Deze X zal tussen partij A en B in proberen te komen, wanneer het eerste contact gelegd wordt. In plaats dat partij A de publieke sleutel van B krijgt, geeft X juist zijn eigen publieke sleutel aan A. A heeft niets in de gaten en zal een bericht samenstellen met daarin de publieke sleutel van zichzelf en het geheel coderen. Dat coderen gebeurt echter niet met de publieke sleutel van B, maar met die van X.
Het bericht wordt naar B verstuurd, maar X zal het opvangen en het zonder problemen decoderen. X kent nu de inhoud van het bericht, maar kan nog meer doen. X kan namelijk het bericht opnieuw coderen, maar eerst de publieke sleutel van A vervangen door zijn eigen publieke sleutel. Vervolgens wordt het bericht weer versleuteld, maar nu met de publieke sleutel van B.
Partij B ontvangt dit bericht en stuurt een bericht retour dat versleuteld is met de publieke sleutel van X, omdat B denkt dat dat de sleutel van A is. X onderschept dit bericht weer en haalt hetzelfde trucje weer uit, alvorens het bericht door te sturen naar A. Op deze manier zullen A en B denken dat ze versleuteld met elkaar communiceren, maar in werkelijkheid is X exact op de hoogte van alle informatie die wordt uitgewisseld. En kan deze bepaalde data vervalsen, wanneer daar voordeel mee behaald wordt.
Het bestaansrecht van de SSL-certificaten
Om een man-in-the-middle-aanval onmogelijk te maken, wordt er op internet met certificaten gewerkt. Het basisidee is dat wanneer je een publieke sleutel van een partij opvraagt, dit via een derde partij gaat. Deze partij is de certificaatautoriteit. In ons voorbeeld, zal partij A zijn publieke sleutel overhandigen aan deze autoriteit. In plaats van de sleutel rechtstreeks op te vragen bij partij A, doe je dat nu dus bij deze autoriteit.
Dat opvragen bij die autoriteit gebeurt overigens ook weer via een beveiligde verbinding die ook via publieke en geheime sleutels verloopt. Deze publieke sleutels en de kennis van de certificaatautoriteiten zitten echter min of meer ingebed in de browsers zelf. Aan deze data kan dus niet eenvoudig getornd worden. Dit hele principe is wat de basis is van de SSL-certificaten en de beveiligde https-verbindingen.
Ook symmetrische encryptie speelt nog steeds een rol
Tot slot is het voor de volledigheid goed om te noemen dat ook symmetrische versleuteling nog steeds een belangrijke rol speelt. De asymmetrische variant is namelijk behoorlijk rekenintensief. Er wordt weliswaar aan het begin van het opzetten van een beveiligde verbinding gebruik gemaakt van asymmetrische encryptie.
Maar zodra die verbinding er is, wordt er in de meeste gevallen een symmetrische sleutel overgestuurd. Vervolgens wordt voor de rest van de sessie aan beide kanten met deze symmetrische sleutel gewerkt. Deze symmetrische sleutel kan gewoon per verbinding anders zijn en wordt gegenereerd aan het begin van de sessie.
Is dit systeem van SSL en asymmetrische encryptie waterdicht?
In principe is het systeem behoorlijk veilig. Een potentieel zwak punt in het geheel is de certificaatautoriteit. Als deze gekraakt wordt, dan is het systeem niet langer veilig. Ook het verspreiden van gehackte browsers zou het systeem in gevaar kunnen brengen.
Een laatste risico is dat er in de toekomst toch eens de mogelijkheid ontstaat om een geheime sleutel te ontcijferen aan de hand van een publieke sleutel. Op dit moment lijkt dat niet erg dichtbij, ook al worden computers almaar sneller. Maar wanneer kwantumcomputers realiteit worden, is het zeker niet ondenkbaar dat voorheen onkraakbare puzzels ineens wel binnen het handbereik komen van kwaadwillenden.
Lees verder