In 1882 zagen we één van de eerste vormen van encryptie, die veel gebruikt werd voor telexverkeer. Niet met een computer, maar met een zogenaamde ‘sleutelband’. Deze sleutelband bestond uit een 5-bits sleutelcode geponst in een geluste papieren strook. Elk teken in je bericht werd vercijferd met een teken op de sleutelband, vergelijkbaar met de ‘geheime talen’ die we op de basisschool maken (A=1, B=2, C=3 e.d.). De codes waren na het vercijferen volledig willekeurig en even lang als het originele bericht. De zender vercijfert de code, de ontvanger ontcijfert het bericht met exact dezelfde sleutelketen. Bij zowel het ver- als ontcijferen liep de telexband parallel aan de papieren strook met sleuteltekens. Bij het zenden werd de tekst zo versleuteld, bij het ontvangen konden we het weer ontcijferen. Deze techniek, de eerste vorm van encryptie, noemden we One-time pad, ofwel OTP.
Het nut van encryptie
Waarom encryptie zo belangrijk is, is eenvoudig. Als jouw data niet versleuteld is, hoeft een crimineel alleen maar jouw systeem binnen te komen om al je gegevens te zien, te verzamelen en eventueel te verspreiden. Encryptie zorgt ervoor dat dit flink wat moeilijker wordt, waardoor jouw gegevens een stuk veiliger zijn. Denk aan je medische gegevens, bankgegevens, woonplaats, telefoonnummers van je familie en vrienden, en de geheimen die je met die mensen deelt. Misschien heb je wel naaktfoto’s op je smartphone staan. Hackers vinden die ook erg interessant, blijkt bijvoorbeeld uit de hack van de iCloud in 2014, waarbij naaktfoto’s van bekendheden op het internet gezet werden. Om te zorgen dat jou zoiets niet overkomt, maakt bijna elk tech-bedrijf gebruik van encryptie.
Encryptie is nu veel beter
De basis van versleutelen gaat nog steeds op dezelfde manier als bij OTP, maar tegenwoordig is dit een stuk complexer. Encryptie is namelijk niets meer dan het coderen, of versleutelen, van gegevens op basis van een algoritme. Met decryptie bedoelen we het ontcijferen van de versleutelde gegevens, zodat je de originele informatie weer terugkrijgt.
Sinds OTP is dit proces echter een stuk ingewikkelder en vooral veiliger geworden. Waar je met OTP nog het probleem had dat je de sleutelband met de juiste code bij de ontvanger moest krijgen (en die kon onderweg gestolen worden), ben je nu vaak zelf zowel de verzender als de ontvanger. Denk aan je smartphone: je gegevens zijn versleuteld, maar met een wachtwoord kun je ze weer ontcijferen. Maar we werken ook nog steeds met zenders en ontvangers als het om encryptie gaat.
Om gegevens te versleutelen en weer te decrypten heb je vaak een sleutel nodig. Per algoritme verschilt het wat de sleutel is, maar vaak is dit een lang getal van enkele tientallen decimalen. Alleen met de juiste sleutel kun je de gegevens ontcijferen, zodat je het bericht kunt lezen. Nu is het over het algemeen wel mogelijk om de data te decoderen zonder dat je de sleutel hebt, maar dit kost meestal – als de versleuteling goed is – zoveel rekenkracht dat het praktisch onmogelijk is.
Symmetrisch en asymmertrisch
De basis van encryptie is niet erg ingewikkeld. Maar er zijn verschillende soorten encryptie, ieder met zijn eigen voor- en nadelen, die het wat moeilijker maken. Zo heb je symmetrische en asymmetrische encryptie.
Symmetrische encryptie houdt in dat de zender en de ontvanger dezelfde sleutel gebruiken voor het coderen en decoderen van de informatie. Die sleutel moet je van tevoren uitwisselen via een veilig kanaal (anders kunnen hackers hem eenvoudig onderscheppen en ook gebruiken). In feite is dit alsof je een sleutel aan de buurman geeft als je op vakantie gaat: als je weg gaat doe je de deur op slot, de buurman opent hem met exact dezelfde sleutel als hij de planten water wilt geven. Maar binnen symmetrische encryptie is het niet zo dat het gebruik van dezelfde sleutel ook altijd betekent dat het coderen en decoderen identiek aan elkaar zijn. Bij e-mail wordt de sleutel Rot13 veel gebruikt. Decodeer je een gecodeerd bericht met Rot13, dan zie je de oorspronkelijke tekst. Maar gebruik je een code als A=B, B=C, C=D, enzovoort, dan is dit niet het geval, al kan de decodeersleutel eenvoudig worden afgeleid uit de codeersleutel. Toch gelden beide opties als symmetrische cryptografie.
Asymmetrische encryptie is een iets modernere variant van versleuteling, en wordt ook wel ‘public key encryption’ genoemd. Bij deze variant hebben de zender en de ontvanger ieder een set van twee sleutels. Eén hiervan is openbaar, de ander privé. Versleutel je een bericht met de publieke sleutel, dan kan hij alleen ontcijferd worden met de privé-sleutel. Dit betekent dat onbevoegden het bericht niet zomaar kunnen lezen, want ze hebben de geheime sleutel niet. En dit werkt ook andersom: is iets met de privé-sleutel gecodeerd, dan kun je het alleen decoderen met de publieke variant. De laatste optie wordt vooral veel gebruikt bij het digitaal ondertekenen van berichten, want zo weet je zeker dat het bericht afkomstig is van degene die het stuurt.
Voordeel van asymmetrische encryptie is dat de publieke sleutel openbaar mag worden. Je kunt deze dus via onveilige kanalen als het internet uitwisselen, zonder dat hier een probleem uit ontstaat. De geheime sleutel hoef je alleen zelf te weten, niemand anders heeft die nodig.
Een nadeel van deze vorm van encryptie is dat je sleutel erg lang is, bijvoorbeeld 4096 bytes, waardoor het versleutelen en het ontcijferen van het bericht veel rekenkracht kan vergen. De reden dat die sleutels zo lang zijn, is omdat het anders eenvoudig is om met een snelle computer de geheime sleutel te vinden, aangezien er dan minder rekenkracht nodig is. Nu heeft de computer maanden, misschien wel jaren of decennia – afhankelijk van de lengte van de sleutel – nodig om alle opties uit te proberen en de juiste sleutel te vinden.
Hashing
Hashing is geen encryptie, maar valt wel onder versleuteling. Bij hashing wordt de data wel versleuteld, maar kun je het niet meer decoderen. Dit wordt onder meer veel gedaan bij wachtwoorden, aangezien de computer alleen maar hoeft te controleren of het wachtwoord klopt. Wat er gebeurt is dat bij het aanmaken van het wachtwoord de tekens worden versleuteld. Als je je wachtwoord opnieuw invoert, wordt deze opnieuw versleuteld en komt hier dezelfde uitkomst uit. Deze worden met elkaar vergeleken en zo weet de computer dat het klopt. Decoderen is niet nodig, en ook niet mogelijk, dus is dit wel zo veilig.
Een nadeel van hashing is dat een crimineel natuurlijk wel terug kan rekenen en daardoor met diverse methodes het wachtwoord alsnog kan achterhalen. Om die reden is ‘Salt’ uitgevonden. Met Salt wordt er informatie aan het wachtwoord toegevoegd voordat deze versleuteld wordt. Zo wordt er bijvoorbeeld een hash gemaakt van de gebruikersnaam en het wachtwoord. Een andere manier is een unieke code op een apparaat. Cyber security-expert Joachim de Koning legt uit het uit (€) aan de hand van een iPhone 5C: “Dit model dat een mechanisme heeft waarbij de gegevens versleuteld worden met een sleutel die uit twee delen bestaat. Eén deel is een soort een speciaal nummer, een ‘hash’, die op de telefoon zelf wordt opgeslagen. Tijdens de fabricage van de telefoon krijgt elk apparaat een unieke hash. De andere kant van de sleutel is het wachtwoord dat je zelf instelt. Dan heb je een ‘gezouten (ofwel Salt) wachtwoord’, zoals dat heet, en het ‘zout’ is dan de hash.”
Alles versleuteld
Encryptie is in de basis dus niet ingewikkeld, maar tech-bedrijven maken het wel steeds moeilijker. Dat is om slechts één reden: om te zorgen dat jouw data zo veilig mogelijk is. Encryptie wordt dan ook voor van alles gebruikt. Om de data op je telefoon te versleutelen bijvoorbeeld, maar ook om een veilige verbinding (HTTPS) op het internet op te zetten. Al het verkeer is dan versleuteld, waardoor het voor hackers een stuk moeilijker wordt om af te luisteren. En ook berichtenapplicaties als WhatsApp en Telegram maken gebruik van encryptie.
100% veilig?
Hoewel encryptie een belangrijk onderdeel is van beveiliging, betekent het niet dat alles 100 procent veilig is als het versleuteld is. Hackers kunnen versleutelde gegevens weer decoderen en zo alsnog bij al je data. Wel weten we dat hoe ingewikkelder jouw wachtwoord is, hoe moeilijker het is om een hash te decoderen, dus een goed wachtwoord is al een goed begin. Nog beter is om geen gevoelige data op computers, tablets, smartphones of andere apparaten te bewaren. Het meest veilige is nog altijd je geheugen, en als je het niet kunt onthouden, dan een eenvoudig stuk papier. Want hoe sterk encryptie ook wordt, criminelen zijn slim en alles, maar dan ook echt alles is te hacken.
Eveline Meijer is freelance (tech-) journalist en volgt op haar website Tech Reporter hoe technologie van nu de wereld veranderd en dit in de toekomst kan gaan doen. Hier verstuurt ze ook wekelijks een nieuwsbrief over. Gratis aanmelden kan hier.