Skip to main content

Encryptie - theorie

Wat is Encryptie?

Encryption (of encryptie of versleutelen) is het versleutelen van gegevens zodat je zonder de juiste sleutel de gegevens niet kan lezen.  Encryptie bestaat uit het algortime (de regels/procedure van de encryptie) en een of meer sleutels.

Decryption (of decryptie of ontsleutelen) is het weer leesbaar maken van encypted data.

Waarom Encryptie?

Encryptie is belangrijk omdat het kan helpen voorkomen dat informatie in verkeerde handen valt.

Stel je krijgt toegang tot de database van Facebook en je kunt alle logins en passwords lezen. Dat zou heel vervelend zijn, maar het is iets minder vervelend als de wachtwoorden zijn versleuteld en het zou nog minder erg zijn als alle gegevens zouden zijn versleuteld. Of stel je telefoon of laptop word gestolen. Vervelend, maar als je gegevens op de harddisk (of SSD) zijn versleuteld kan zonder de juiste sleutel niemand bij jouw gegevens en files op jouw harrdisk.

Door encryptie worden bijna alle risico's op de threats uit STRIDE model vreminderd. Dat geld voor de threats;

spoofing, tampering, repudiation, confidentielity, en authorization,

Vraag 1: hoe kan encryptie het risico op repudiation ('I did not send that email') helpen vermindeeren?

Encryptie is niet alleen iets van computers maar is al 2000 jaar oud.

Vaag 2: In welke situatie denk je dat 1000 of meer jaar geleden encryptie zou zijn toegepast? Als je niets kunt bedenken, denk eens terug aan "Game Of Thrones".

Symetrisch Encryptie

We maken onderscheid in symetrische encryptie en asymetrische encryptie.

Symetrische encryptie is eenvoudig en al heel oud. De meest eenvoudige vorm is het omzetten van elke letter in een ander letter. Je kunt letters verschuiven, maar je kunt het ook ingewikkelder maken. In de klas hebben we geoefend met Caesar encryptie.

Symetrisch encyptie is redelijk eenvoudig en daardoor ook realtief makkelijk en efficiënt op een computer te implementeren. Er is ook een groot nadeel:

Bij symetrische encryptie moet je een sleutel uitwisselen en je moet daarbij voorkomen dat de sleutel in verkeerde handen valt.

PKI, Public Key Infrastructure

Het nadeel van het lastig uitwisselen van de key bij symetrische encryptie wordt opgelost bij PKI, Public Key Infrastructure.

PKI, is een systeem met twee sleutels: de public key en de private key (de publieke sleutel en de privé sleutel).

De public key kan je verspreiden, iedereen mag hem hebben, want je kunt er alleen een bericht mee versleutelen. Je kunt er geen bericht mee ontcijferen/lezen. Alleen met de bijbehorende private key kan het versleutelde bericht worden gelezen.

In de les hebben we dit zichbaar gemaakt met een (open) hangslot en de sleutel. Het open hangslot was de public key en die kon iedereen krijgen. Je kunt dan een boodschap sturen en alleen degene met de sluetel van het hangslot kan dan het bericht ontcijferen.

Of iets formeler (en let op: als we het over security en encryptie hebben dan hebben we het altijd over Alice en Bob).
Stel, Alice wil een bericht sturen aan Bob. Bob is in het bezit van een publieke sleutel en een privésleutel. Alice ontvangt dan de publieke sleutel van Bob. Hiermee versleutelt zij het bericht en daarna verstuurt ze het naar Bob. Bob ontsleutelt het bericht met zijn privésleutel en kan het dan lezen.

Dus je geeft idereen die dat wil je public sleutel en iedereen die dat wil kan een bericht versleutelen en jij bent de enige die met de private key het bericht kan ontsleutelen.

Of stel dat jij een wachtwoord wilt instellen op www.lekkergoedkoop.nl dan kun je met de public key van deze site je wachtwoord versleutelen en je weet dan zeker dat alleen de site www.lekkergoedkop.nl  jouw versleutelde wachtwoord kan lezen. Maar is dat wel zo? Wat nu als je denkt dat je op de site www.lekkergoedkoop.nl zit maar via een slinkse manier (DNS Spoofing, Host file manipulatie, Phissing) op een andere site terecht ben gekomen. Je denk dat je je wachtwoord naar www.lekkergoedkoop.nl stuurt maar het is een hele ander site. Hoe weet je nu zeker dat je de public key van de echte site hebt gekregen?

Certificaten

Een certificaat is digitaal ondertekend document dat is uitgegeven door een Certified Authority. Je kunt het zien als een diploma die is uitgegeven door een school. Niet iedereen mag zo'n diploma uitreiken. Een digitaal certificaat mag ook alleen worden uitgegeven door bepaalde instanties en via bepaalde web sites.

Als ik nu een site heb en ik wil dat de gebruiker een public key krijgt zodat wij veilig kunnen communiceren, dan kan ik deze public ket via een certificaat uitdelen. Dit certificaat verklaart dan dat ik ben wie ik zeg dat ik ben en het certificaat bevat mijn public key.

Bij het aanvragen van een certificaat bij een CA, Certified Authority, wordt gecontroleerd wie jij bent en of jij een betrouwbare partij bent. Een certificaat heeft altijd een bepertke houdbaarheiddatum en zal dus na verloop van tijd moeten worden vernieuwd.