Veel communicatieprotocollen gebruiken codering om ervoor te zorgen dat uw verbinding veilig is. Het is een goed idee om te begrijpen wat versleuteling eigenlijk doet en waarom het voor iedereen belangrijk is, zodat u weet waartegen u kunt worden beschermd en wat niet.
Versleuteling is een wiskundig proces waarbij gegevens worden versleuteld met behulp van een versleutelingscijfer en een versleutelingssleutel. De gecodeerde gegevens of cijfertekst kunnen alleen worden gedecodeerd naar de oorspronkelijke "platte tekst"-vorm door het gebruik van een decoderingssleutel.
Met een goed coderingsalgoritme moet de cijfertekst niet te onderscheiden zijn van willekeurige ruis of betekenisloze waarden. Dit maakt het onmogelijk om te zeggen of de gegevens zelfs een cijfertekst zijn, of dat het gewoon ruis is. Dit ontwerp maakt het aanzienlijk moeilijker om de cijfertekst te analyseren in een poging deze te ontsleutelen zonder dat de ontsleutelingssleutel nodig is via een proces dat cryptanalyse wordt genoemd.
Tip: Ruis is willekeurig statisch achtergrondgeluid, net als sneeuw of ruis op sommige oude tv's als ze geen signaal hebben.
Symmetrisch versus asymmetrisch
Voor sommige klassen van coderingsalgoritmen zal de decoderingssleutel hetzelfde zijn als de coderingssleutel, in andere zijn de twee sleutels verschillend. Wanneer de decoderingssleutel hetzelfde is als de coderingssleutel, staat dit bekend als symmetrische codering. In dit geval kan de coderingssleutel worden gezien als een wachtwoord en kan iedereen met het wachtwoord gegevens coderen of decoderen. AES is een goed voorbeeld van een symmetrisch coderingsalgoritme, omdat het onder meer wordt gebruikt om HTTPS-communicatie op internet te beveiligen.
Tip: HTTPS of Hypertext Transfer Protocol Secure, is het primaire versleutelde communicatieprotocol dat op internet wordt gebruikt.
Asymmetrische codering maakt gebruik van een afzonderlijke coderings- en decoderingssleutel, het wordt ook vaak publieke-sleutelcryptografie genoemd. De coderingssleutel staat bekend als een openbare sleutel en wordt gepubliceerd zodat iedereen deze kan gebruiken om gegevens te coderen. De decoderingssleutel staat echter bekend als de privésleutel en wordt, zoals de naam al doet vermoeden, privé gehouden.
Deze vorm van versleuteling kan worden gebruikt om ervoor te zorgen dat alleen de beoogde ontvanger het versleutelde bericht kan ontsleutelen en lezen. Een veelvoorkomend voorbeeld van een versleutelingsalgoritme met openbare sleutel is RSA. RSA wordt ook vaak gebruikt in HTTPS-verbindingen, maar alleen zodat de twee computers veilig een symmetrische coderingssleutel kunnen overeenkomen om te gebruiken.
Tip: Asymmetrische coderingsalgoritmen zijn langzamer in gebruik dan symmetrische algoritmen die vergelijkbare beveiligingsniveaus bieden. Daarom wordt asymmetrische codering alleen gebruikt om een symmetrische coderingssleutel af te spreken in protocollen die snelheid en efficiëntie vereisen, zoals HTTPS.
Tip: Eén ding dat HTTPS niet doet, is garanderen dat je verbinding maakt met de website die je bedoeld had. Wat het wel doet, is garanderen dat u verbinding maakt met de website die u in de zoekbalk hebt ingevoerd. Als je een typfout hebt gemaakt en per ongeluk naar exanple.com bladert in plaats van voorbeeld.com, bevestigt HTTPS dat je veilig bent verbonden met exanple.com. HTTPS controleert alleen of uw verbinding met de webserver veilig is. HTTPS betekent ook niet dat de website waarmee u verbinding maakt geen virussen of andere schadelijke software bevat.
Beveiligingsniveaus
De veiligheid van een encryptie-algoritme wordt gemeten in bits. Bits of security verwijzen naar de grootte van de gebruikte coderingssleutel en dus hoe moeilijk het is om te raden. Helaas is het niet mogelijk om de beveiliging van symmetrische en asymmetrische algoritmen op deze manier direct te vergelijken.
Symmetrische coderingsalgoritmen zoals AES moeten ten minste een 128-bits coderingssleutel gebruiken om als veilig te worden beschouwd, hoewel een 256-bits sleutel wordt aanbevolen. Asymmetrische algoritmen moeten ten minste een 2048-bits sleutel gebruiken om als veilig te worden beschouwd.
Een 256-bits coderingssleutel heeft 2 ^ 256 mogelijke combinaties, dat is twee vermenigvuldigd met zichzelf 256 keer. Voluit geschreven zijn er: 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936 mogelijke combinaties van een 256-bits coderingssleutel. Dit aantal is zo groot dat het ongeveer gelijk is aan het aantal atomen dat wetenschappers voorspellen in het zichtbare universum.
Het is onbegrijpelijk moeilijk om de sleutel correct te raden die nodig is om gegevens te decoderen die zijn versleuteld met een 256-bits sleutel. Zelfs als je toegewijde toegang had tot de snelste supercomputers en eeuwenlang, zou het statistisch gezien nog steeds onwaarschijnlijk zijn dat je de decoderingssleutel correct zou raden.
Waarom is het belangrijk?
Wanneer u inlogt op een website, stuurt u uw gebruikersnaam en wachtwoord, of uw bankgegevens. Deze gegevens zijn privé en gevoelig. Als iemand anders ze heeft, kunnen ze toegang krijgen tot uw rekeningen, zich voordoen als u, geld van u stelen en meer.
Wanneer u het HTTP-protocol in platte tekst gebruikt, kan iedereen op het netwerk tussen u en de webserver de communicatie die u verzendt en ontvangt onderscheppen en lezen. Dit omvat uw wachtwoorden en andere gevoelige details. Andere gebruikers op uw thuisnetwerk, uw ISP en andere gebruikers op openbare Wi-Fi-hotspots waarmee u verbinding maakt, kunnen dit type aanval uitvoeren.
Als u HTTPS-beveiligde communicatie van en naar de webserver gebruikt, zijn uw gegevens versleuteld en kunnen ze door niemand anders worden gelezen. Deze codering houdt uw wachtwoorden en andere privégegevens veilig tijdens het surfen op internet.
Versleuteling is echter niet alleen belangrijk voor privé- of gevoelige gegevens; het is ook een handig hulpmiddel voor privacy. Het kan bijvoorbeeld voorkomen dat uw ISP uw surfgedrag op internet rondsnuffelt.
Door zoveel mogelijk van uw communicatie te versleutelen, wordt het minder duidelijk waar gevoelige gegevens verborgen zijn die aanvallers zouden kunnen proberen te stelen. Daarom wordt over het algemeen aanbevolen om waar mogelijk encryptie te gebruiken om alles wat u doet te beveiligen.
Met moderne hardware en coderingsalgoritmen voegt codering slechts een onmerkbare vertraging toe, dus u hoeft zich geen zorgen te maken dat het uw internetverbinding vertraagt.