Asymmetrische en symmetrische encrypties zijn de soorten encryptie Wordt gebruikt in cryptografie. Bij symmetrische encryptie is er slechts één sleutel nodig, die zowel voor encryptie als decryptie wordt gebruikt. De sleutel moet worden gedeeld tussen de partijen die gegevens willen encrypteren en decrypteren. Asymmetrische encryptie daarentegen gebruikt twee afzonderlijke sleutels die wiskundig aan elkaar gerelateerd zijn. De sleutels worden privésleutels en publieke sleutels genoemd. Over het algemeen is een certificaat gekoppeld aan een publieke sleutel, die informatie over de eigenaar van de publieke sleutel bevat.
Het certificaat bevat informatie zoals de naam van de organisatie, de gebruikte algoritmen, enz. Hoewel symmetrische en asymmetrische encryptie op elkaar lijken, is symmetrische encryptie vergelijkbaar sneller dan asymmetrische encryptie; qua prestaties is asymmetrische encryptie dus trager. Daarom wordt symmetrische encryptie vaak in combinatie met asymmetrische encryptie gebruikt. We zullen hier dieper op ingaan in de onderstaande use cases.
Symmetrische encryptie
Zoals hierboven besproken, gebruikt symmetrische encryptie dezelfde sleutel voor encryptie en decryptie. De verzender zou de sleutel dus op de een of andere manier naar de ontvanger sturen om de versleutelde gegevens te decoderen. De betrokken sleutel moet worden beschermd en veilig worden verzonden. Als de sleutel verloren gaat, kunnen de gegevens niet worden gedecodeerd. Als de sleutel wordt gecompromitteerd, komt de encryptie in gevaar.
Symmetrische sleutels worden dus tussen partijen overgedragen met behulp van asymmetrische encryptie, waardoor de symmetrische sleutel gecodeerd blijft. Er zijn nu twee verschillende sleutels betrokken bij het versleutelen en ontsleutelen van de gegevens.
Symmetrische encryptie is aanmerkelijk sneller dan asymmetrische encryptie. Daarom wordt het nog steeds massaal gebruikt.
Asymmetrische versleuteling
Asymmetrische encryptie maakt gebruik van twee afzonderlijke sleutels die wiskundig met elkaar verbonden zijn. De eerste sleutel wordt de privésleutel genoemd. De privésleutel is de zwaarst beveiligde sleutel. Vaak blijft deze sleutel in een HSM of een computer met een air-gapped netwerk om de bescherming van de privésleutel te garanderen. De openbare sleutel is afgeleid van de privésleutel en kan worden verspreid. Een certificaat wordt vaak aangemaakt met een openbare sleutel die informatie bevat over de eigenaar van de sleutel en enkele details over de sleutel zelf.
Het sleutelpaar is gebaseerd op priemgetallen met een uitgebreide lengte. De publieke en private sleutels worden gelijktijdig berekend met behulp van dezelfde wiskundige bewerking, namelijk valdeurfuncties. Het meest kenmerkende van valdeurfuncties is dat ze eenvoudig te berekenen zijn in één richting; ze zijn echter lastig te berekenen in de omgekeerde volgorde. Met een private sleutel kunnen we de publieke sleutel vinden, maar de private sleutel kan niet worden verkregen met behulp van de publieke sleutel.
Hoewel asymmetrische encryptie de sleutels beter beschermt, zijn ze relatief trager dan symmetrische encryptie. Daarom wordt asymmetrische encryptie vaak gebruikt om de geheime sleutel uit te wisselen, wat kan worden gebruikt om symmetrische encryptie te realiseren voor snellere gegevensoverdracht en om de encryptie en decryptie van de gegevens te versnellen.
Gebruikers verhalen
Symmetrische encryptie
Symmetrische encryptie gebruikt één sleutel voor encryptie en decryptie. Daarom is het het meest geschikt voor het encrypteren en decrypteren van lokale data. Enkele voorbeelden van toepassingen van symmetrische encryptie zijn:
- Gegevens in rust: Data-at-rest verwijst naar gegevens die zijn opgeslagen op een fysieke schijf en niet tussen apparaten worden overgedragen. Deze gegevens kunnen worden opgeslagen op harde schijven, SSD's, flashdrives, enz. Data-at-rest omvat vaak gegevens die waardevol kunnen zijn voor aanvallers, omdat ze meestal klantgegevens, werknemersgegevens, bedrijfsgeheimen, intellectuele eigendommen, enz. bevatten. Om deze gegevens adequaat te kunnen beschermen, gebruiken organisaties symmetrische encryptie.
Een effectieve manier om alle gegevens op een fysieke schijf te versleutelen, is door de schijf zelf te versleutelen. Dit wordt volledige schijfversleuteling of volledige schijfversleuteling genoemd, wat minder voordelen heeft dan gedeeltelijke of mapversleuteling. Veel bestanden (zoals Word-bestanden) maken een tijdelijk bestand aan wanneer ze worden geopend. Dit tijdelijke bestand kan ongecodeerd blijven. Veel Linux-distributies bieden volledige schijfversleuteling tijdens de installatie van het besturingssysteem, en Microsoft levert BitLocker Drive Encryption voor Windows. Volledige schijfversleuteling laat het opstartvolume ongecodeerd zodat het besturingssysteem kan opstarten, maar alle andere volumes, inclusief swap-ruimte en tijdelijke bestanden, blijven gecodeerd. - Bank- en betalingssector: De bank- en betalingssector is een van de veiligste sectoren en er zijn veel compliance-vereisten om deze veilig te houden. Tegelijkertijd is het ook een van de drukste sectoren, wat snelheid vereist. Symmetrische encryptie biedt snelle encryptie en decryptie van grote hoeveelheden data, waaronder transacties. Deze data kan vaak persoonlijk identificeerbare informatie (PII) bevatten, die beschermd moet worden om te voldoen aan PCI DSS en identiteitsdiefstal te voorkomen. Ook moeten de identiteit van de gebruiker en de authenticiteit van de transacties snel worden gewaarborgd. Dit is een van de redenen waarom de banksector symmetrische encryptie gebruikt.
Asymmetrische versleuteling
Asymmetrische encryptie is langzamer dan symmetrische encryptie en wordt daarom gebruikt voor kleine hoeveelheden data, zoals het uitwisselen van geheime sleutels of het verstrekken van digitale identiteiten.
Naarmate organisaties de digitale tijd ingaan, worden digitale handtekeningen cruciaal om authentieke gegevens te identificeren en iemands identiteit te garanderen. Digitale handtekeningen garanderen dat de betrokken gegevens niet zijn gewijzigd en dat de gegevens (waaronder pdf's, applicaties, enz.) authentiek zijn. De ontvanger van ondertekende gegevens gebruikt een digitale handtekening om aan een derde partij aan te tonen dat de geclaimde persoon de handtekening heeft gegenereerd. Dit wordt vaak 'non-repudiation' genoemd, omdat de persoon de handtekening later niet zomaar kan ontkennen.
De volgende stappen leggen uit hoe een digitale handtekening wordt gebruikt om informatie uit te wisselen tussen een verzender en een ontvanger:
- Ten eerste worden de te verzenden gegevens gehasht met behulp van hashing-algoritmen zoals SHA-256. Hashing is een eenrichtingsfunctie die een unieke waarde genereert voor een unieke invoer. De oorspronkelijke gegevens kunnen niet worden verkregen met behulp van de hashwaarde. Dit garandeert de integriteit van de gegevens: als de gegevens worden gewijzigd, verandert de bijbehorende hashwaarde ook.
- De hash wordt vervolgens versleuteld met de privésleutel van de verzender. Dit creëert een digitale handtekening.
- De digitale handtekening wordt nu toegevoegd en naar de afzender verzonden.
- Nadat de gegevens en de digitale handtekening zijn ontvangen, wordt de handtekening ontsleuteld met behulp van de openbare sleutel van de verzender. Deze sleutel levert de hashwaarde die in de eerste stap is gegenereerd.
- De ontvanger hasht vervolgens de verkregen gegevens.
- Als de hash die in stap 5 is verkregen gelijk is aan de hash die de ontvanger in stap 4 heeft verkregen, is de data-integriteit gewaarborgd. Als de hashes echter niet overeenkomen, zijn de gegevens gewijzigd.
Digitale handtekeningen zijn bedoeld voor gebruik in e-mails, gegevensoverdracht, distributie van software en andere toepassingen. Hierbij is het belangrijk dat de integriteit van de gegevens gewaarborgd is en dat de authenticiteit van de oorsprong van de gegevens gewaarborgd is.
Gebruiksvoorbeeld van asymmetrische en symmetrische encryptie
Asymmetrische en symmetrische encryptiemethoden worden vaak in combinatie met elkaar gebruikt om een evenwicht te behouden tussen prestaties, veilige overdracht, identificatie, enz. Het kan zijn dat één enkele encryptiemethode niet voldoende is.
Gebruiksscenario 1: Berichtentoepassingen
Veel berichtenapps, zoals WhatsApp, Telegram en Signal, bieden end-to-end-encryptie om de vertrouwelijkheid van de betrokken gebruikers te waarborgen en gebruikers te authenticeren, zodat ze veilig met elkaar kunnen communiceren.
Bij end-to-end encryptie worden de berichten en gesprekken versleuteld, zodat niemand anders dan de gebruiker de platte tekst kan ontvangen. Alleen de gegevens worden versleuteld, maar de headers, trailers en routeringsinformatie van de berichten blijven ongecodeerd.
Een van de beste functies is dat zelfs als de sleutel op een of andere manier is gecompromitteerd via het fysieke apparaat van de gebruiker, de sleutel niet kan worden gebruikt om eerder gecodeerde tekst te ontsleutelen.
Om dit te bereiken, worden zowel symmetrische als asymmetrische encryptiemethoden gebruikt. Asymmetrische encryptie wordt gebruikt om de communicatie tussen gebruikers te starten, waarbij geheime sleutels worden uitgewisseld voor symmetrische encryptie. Nadat de communicatie tot stand is gebracht en een geheime sleutel is uitgewisseld, wordt symmetrische encryptie gebruikt gedurende de gehele communicatie.
Ten eerste, wanneer de applicatie aan de kant van de gebruiker wordt geïnstalleerd, wordt het sleutelpaar aangemaakt. De openbare sleutel van de gebruiker wordt geregistreerd en opgeslagen op de applicatieserver, maar de privésleutel blijft op het apparaat van de gebruiker staan. De gebruiker die het gesprek wil starten, ontvangt de openbare sleutel van de ontvanger van de applicatieserver. Met de openbare sleutel stuurt de verzender een versleuteld bericht naar de ontvanger. Het versleutelde bericht bevat parameters om een symmetrische sessie tussen de betrokken partijen tot stand te brengen.
De ontvanger zou zijn of haar privésleutel gebruiken om het bericht te decoderen en een symmetrische encryptie tussen de verzender en de ontvanger te ontwikkelen. Zodra de sessie tot stand is gebracht, wisselen clients berichten uit die beveiligd zijn met een berichtensleutel. Deze sleutel gebruikt AES256 in CBC-modus voor encryptie en HMAC-SHA256 voor authenticatie. De versleutelde sessie zou alleen opnieuw worden aangemaakt wanneer de applicatie opnieuw wordt geïnstalleerd of het apparaat wordt gewijzigd.
Gebruiksscenario 2: HTTPS
HTTPS (Hypertext Transfer Protocol Secure) is een beveiligde versie van het HTTP-protocol dat het SSL/TLS-protocol gebruikt voor encryptie en authenticatie. HTTPS wordt gespecificeerd door RFC 2818 (mei 2000) en gebruikt standaard poort 443 in plaats van poort 80 van HTTP.
Het HTTPS-protocol maakt het voor websitegebruikers mogelijk om gevoelige gegevens zoals creditcardnummers, bankgegevens en inloggegevens veilig via internet te verzenden. Daarom is HTTPS essentieel voor het beveiligen van online activiteiten zoals winkelen, bankieren en thuiswerken. HTTPS is nu het standaardprotocol voor alle websites, ongeacht of ze gevoelige gegevens met gebruikers uitwisselen.
Een HTTPS-verbinding tussen een client en een server maakt gebruik van zowel symmetrische als asymmetrische encryptie. Net als bij de vorige wordt asymmetrische encryptie eerst gebruikt om communicatie tot stand te brengen en geheimen uit te wisselen, waarna symmetrische encryptie wordt gebruikt voor de rest van de communicatie. De sleutel die voor symmetrische encryptie wordt gebruikt, wordt een sessiesleutel genoemd. Sessiesleutels worden willekeurig gegenereerd wanneer een sessie wordt aangemaakt en worden alleen voor die specifieke sessie gebruikt. De stappen die bij HTTPS worden gebruikt, zijn:
- Wanneer de client verbinding probeert te maken met de server, verstuurt de server eerst een TLS-certificaat. De betreffende CA verifieert het certificaat om de authenticiteit van het certificaat en de betrokken server te garanderen.
- Het certificaat bevat ook cipher suites en de maximaal ondersteunde TLS-versie.
- Nadat het certificaat is geverifieerd en de algoritmen en TLS-versies maximaal zijn ingesteld voor zowel de client als de server, genereert de client een sessiesleutel. Deze wordt gecodeerd met de openbare sleutel van de server en naar de server verzonden.
- De server decodeert de sessiesleutel met behulp van zijn privésleutel.
- De sessiesleutel wordt vervolgens gebruikt voor symmetrische encryptie en gegevens worden uitgewisseld tussen de server en de client met behulp van de sessiesleutel.
- De sessie wordt voortgezet met alleen symmetrische encryptie.
Conclusie
Symmetrische encryptie is inderdaad een van de snelste encryptietechnieken, maar de geheime sleutel moet veilig worden uitgewisseld om effectief te zijn. Asymmetrische encryptie wordt daarom gebruikt om de sleutel uit te wisselen voor symmetrische encryptie. In beide gevallen wordt asymmetrische encryptie kortstondig gebruikt om parameters uit te wisselen en symmetrische encryptie in te stellen voor de rest van de communicatie. Omdat asymmetrische encryptie traag en resource-intensief is, wordt het alleen gebruikt om de tekortkomingen van symmetrische encryptie te compenseren. Daarom worden beide technieken samen gebruikt om optimale, veilige communicatie te bereiken, privacy te behouden, authenticiteit, data-integriteit en correcte authenticatie te waarborgen.
