Meteen naar de inhoud

webinar: Meld je aan voor ons aankomende webinar.

Aanmelden

Wat is het verschil tussen encryptie en hashing? Is hashing veiliger dan encryptie?

Encryptie versus hashing

Introductie

Op het gebied van gegevensbeveiliging, versleutelenoen hashing worden vaak vergeleken, maar waarom is dit het geval? Encryptie is een tweerichtingsfunctie waarbij gegevens als platte tekst worden doorgegeven en als versleutelde tekst naar buiten komen. Platte tekst is wat u in dit artikel leest, terwijl versleutelde tekst tekst is die onleesbaar is gemaakt door encryptie. Omdat encryptie tweerichtingsverkeer is, kunnen de gegevens worden ontsleuteld zodat ze weer leesbaar worden. Hashing daarentegen is eenrichtingsverkeer, wat betekent dat de platte tekst wordt versleuteld tot een unieke digest, door middel van een salt, die niet kan worden ontsleuteld. Technisch gezien kan hashing worden teruggedraaid, maar de rekenkracht die nodig is om de hash-digest te ontsleutelen, maakt decryptie onhaalbaar. U kunt decryptie nog complexer maken door een hash ook te salten. Een salt is willekeurige data die wordt gebruikt in het hash-algoritme om de hash-digest verder te compliceren. De salt wordt vervolgens met de hash-waarde opgeslagen in een database. Normaal gesproken gebruik je salt bij hashen als je de complexiteit van de hash-digest wilt verhogen, zonder het voor wachtwoordgebruikers ingewikkelder te maken als je wachtwoorden hasht.

Hashing werkt zo dat de platte tekst wordt doorgegeven aan een hash-algoritme dat vervolgens de hash-digest genereert. Het hash-algoritme zelf voert verschillende wiskundige berekeningen uit op de platte tekst om die hash-digest te genereren. Dit algoritme is het meest effectief wanneer het botsingsbestendig is. Botsingsbestendig betekent dat alle digests uniek zijn en elkaar niet overlappen. Dit betekent dat het hash-algoritme complex genoeg moet zijn om geen overlappende hashes te hebben, maar niet zo complex dat het te lang duurt om hashes te berekenen. Encryptie bestaat in twee verschillende vormen, en zowel encryptie als hashing kennen verschillende gemeenschappelijke algoritmen.

Veelvoorkomende encryptie- en hashing-algoritmen

Er zijn twee soorten encryptie: Asymmetrisch en symmetrischAsymmetrische encryptie gebruikt twee verschillende sleutels, een publieke en een privésleutel, voor encryptie en decryptie. De privésleutel wordt gebruikt om gegevens te encrypteren en blijft geheim voor iedereen, behalve voor degene die de gegevens versleutelt. De publieke sleutel is voor iedereen beschikbaar en wordt gebruikt voor decryptie. Met asymmetrische encryptie kan de authenticiteit van de gegevens worden geverifieerd, omdat gegevens die tijdens de overdracht worden gewijzigd, niet opnieuw kunnen worden versleuteld met de privésleutel. Symmetrische encryptie gebruikt dezelfde sleutel voor zowel encryptie als decryptie. Dit type encryptie verbruikt minder rekenkracht en is sneller, maar is minder veilig omdat er slechts één sleutel wordt gebruikt.

Symmetrische encryptie-algoritmen:

Asymmetrische encryptie-algoritmen:

Hash-algoritmen:

  • Berichtenoverzichtalgoritme (MD5)
  • Veilig hash-algoritme (SHA-1 [verouderd], SHA-2, SHA-3)
  • WHIRLPOOL
  • TIJGER
  • Cyclische reductiecontrole (CRC32)

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Gebruiksscenario's voor hashing en encryptie

Hoewel ze vergelijkbaar zijn, worden encryptie en hashing voor verschillende doeleinden gebruikt. Een van de toepassingen van hashing is het vergelijken van grote hoeveelheden data. Hashwaarden zijn veel gemakkelijker te vergelijken dan grote hoeveelheden data, omdat ze beknopter zijn. Hashing wordt ook gebruikt voor het in kaart brengen van data, omdat waarden met hashes snel te vinden zijn en goede hashes elkaar niet overlappen. Hashes worden gebruikt in digitale handtekeningen en om willekeurige strings te creëren om duplicatie van data in databases te voorkomen. Omdat hashing vrijwel onmogelijk om te keren is, worden hashingalgoritmen gebruikt voor wachtwoorden. Dit maakt het wachtwoord korter en onvindbaar voor aanvallers.

Encryptie daarentegen wordt vaak gebruikt voor het versleutelen van gegevens die onderweg zijn. Gegevens die worden verzonden, hoeven alleen door de ontvanger te worden gelezen en moeten daarom zo worden verzonden dat een aanvaller ze niet kan lezen. Encryptie verbergt de gegevens voor iedereen die ze tijdens de overdracht ontvangt en laat alleen de eigenaar van de decryptiesleutel de gegevens lezen. Encryptie wordt ook wel gebruikt in plaats van hashing voor het opslaan en ophalen van gegevens in databases, authenticatiemethoden en andere gevallen waarin gegevens in rust verborgen moeten blijven, maar later weer kunnen worden opgehaald.

Wanneer hashing gebruiken

Over het algemeen is hashing waardevol in situaties waarin u een representatie van gegevens met een vaste grootte nodig hebt, de integriteit van gegevens efficiënt wilt verifiëren of een snelle en uniforme distributie van gegevens in verschillende toepassingen nodig hebt, zoals beveiliging, gegevensopvraging en gedistribueerde systemen. Hashfuncties worden veel gebruikt in diverse toepassingen binnen de computerwetenschappen en informatiebeveiliging. Hier zijn enkele scenario's waarin hashing bijzonder nuttig is:

  1. Verificatie van gegevensintegriteit

    Hashing wordt vaak gebruikt om de integriteit van gegevens te verifiëren. Door een hashwaarde (checksum) van een gegeven te genereren en deze te vergelijken met een eerder berekende hashwaarde, kan snel worden vastgesteld of de gegevens zijn gewijzigd. Dit is cruciaal om de integriteit van bestanden te waarborgen tijdens gegevensoverdracht of -opslag.

  2. Wachtwoord opslag

    Hashing is essentieel voor het veilig opslaan van wachtwoorden. In plaats van daadwerkelijke wachtwoorden op te slaan, slaan systemen de hashwaarden van wachtwoorden op. Tijdens inlogpogingen wordt het ingevoerde wachtwoord gehasht en vergeleken met de opgeslagen hash. Op deze manier zijn de oorspronkelijke wachtwoorden, zelfs als de gehashte waarden zijn gecompromitteerd, niet eenvoudig te achterhalen.

  3. Digitale handtekeningen

    Hashfuncties vormen een fundamenteel onderdeel van digitale handtekeningen. Bij digitale handtekeningen wordt een hash van het bericht ondertekend met een privésleutel. Ontvangers kunnen de handtekening verifiëren met de openbare sleutel van de afzender en de berekende hash vergelijken met de ontvangen hashwaarde.

  4. Cryptografische toepassingen

    Hashfuncties worden veel gebruikt in cryptografische protocollen en algoritmen. Ze spelen een rol in berichtauthenticatiecodes (MAC's), sleutelafleidingsfuncties (KDF's) en diverse andere beveiligingsmechanismen om de integriteit en authenticiteit van gegevens te waarborgen.

  5. Hashtabellen en gegevensophaling

    Hashfuncties worden gebruikt in hashtabellen, een datastructuur die efficiënt gegevensophalen mogelijk maakt. Door sleutels met behulp van een hashfunctie aan indices in een array toe te wijzen, maken hashtabellen snelle opzoekbewerkingen mogelijk.

Wanneer gegevens versleutelen

Het versleutelen van gegevens is cruciaal in scenario's waar vertrouwelijkheid en privacy voorop staan. Hier zijn verschillende situaties waarin het versleutelen van gegevens sterk wordt aanbevolen:

  1. Datatransmissie

    Bij het verzenden van gevoelige informatie via netwerken, zoals bij online bankieren, het openen van e-mailaccounts of het doen van online aankopen, zorgt versleuteling van de gegevens ervoor dat deze, zelfs bij onderscheppen, niet gemakkelijk te begrijpen zijn door onbevoegden. Veilige protocollen zoals HTTPS gebruiken versleuteling om gegevens tijdens de overdracht te beschermen.

  2. Opgeslagen persoonlijke informatie

    Persoonlijke gegevens, waaronder financiële gegevens, medische gegevens en identificatiegegevens, moeten worden versleuteld wanneer ze op apparaten of servers worden opgeslagen. Dit helpt de gegevens te beschermen tegen ongeautoriseerde toegang, met name in geval van diefstal van het apparaat of datalekken.

  3. Databasebeveiliging

    Databases met gevoelige informatie, zoals gebruikersgegevens, creditcardgegevens of bedrijfsgegevens, moeten encryptie gebruiken ter bescherming tegen ongeautoriseerde toegang. Encryptiemechanismen zoals Transparent Data Encryption (TDE) kunnen worden gebruikt om volledige databases of specifieke kolommen te versleutelen.

  4. Back-up en opslag

    Back-ups en opslag van gegevens, zowel op fysieke apparaten als in de cloud, moeten worden versleuteld. Dit beschermt de informatie bij gegevensverlies of diefstal van opslagmedia.

  5. Laptops en mobiele apparaten

    Het versleutelen van gegevens op laptops, mobiele telefoons en andere draagbare apparaten is essentieel. Bij verlies of diefstal van deze apparaten voorkomt versleuteling dat onbevoegden gemakkelijk toegang krijgen tot de opgeslagen gegevens.

vergelijkingen

EncryptieHashing
DefinitieEen tweerichtingsfunctie die platte tekstgegevens omzet in onontcijferbare cijfertekst.Een eenrichtingsmethode om gevoelige gegevens te verbergen. Met behulp van een hash-algoritme zet hashing een platte tekst om in een unieke hash-digest die niet zonder aanzienlijke moeite kan worden teruggezet naar de oorspronkelijke platte tekst.
Omkeerbaar of onomkeerbaar?Omkeerbaaronomkeerbare
Variabele of vaste lengte-uitvoer?Variabele lengteVaste lengte
TypesAsymmetrisch en symmetrischHashing
Gemeenschappelijke algoritmenAES, RC4, DES, RSA, ECDSASHA-1, SHA-2, MD5, CRC32, WHIRLPOOL