Wat is een cryptografische hashfunctie?

Inhoudsopgave:

Wat is een cryptografische hashfunctie?
Wat is een cryptografische hashfunctie?
Anonim

Een cryptografische hashfunctie (CHF) is een algoritme dat kan worden uitgevoerd op gegevens zoals een individueel bestand of een wachtwoord om een waarde te produceren die een controlesom wordt genoemd.

Het belangrijkste gebruik van een CHF is om de authenticiteit van een stuk gegevens te verifiëren. Van twee bestanden kan alleen worden aangenomen dat ze identiek zijn als de controlesommen die uit elk bestand worden gegenereerd, met dezelfde cryptografische hashfunctie, identiek zijn.

Sommige veelgebruikte cryptografische hashfuncties zijn MD5 en SHA-1, hoewel er ook vele andere bestaan. Deze worden vaak "hash-functies" genoemd, maar dat is technisch niet correct. Een hashfunctie is een algemene term die CHF's omvat, samen met andere soorten algoritmen zoals cyclische redundantiecontroles.

Cryptografische hashfuncties: een gebruiksvoorbeeld

Stel dat u de nieuwste versie van de Firefox-browser downloadt. Om de een of andere reden moest je het downloaden van een andere site dan die van Mozilla. Omdat het niet wordt gehost op een site die u hebt leren vertrouwen, wilt u er zeker van zijn dat het installatiebestand dat u zojuist hebt gedownload precies hetzelfde is als het bestand dat Mozilla aanbiedt.

Met behulp van een checksum-calculator bereken je een checksum met behulp van een bepaalde cryptografische hashfunctie, zoals SHA-2, en vergelijk je die met degene die op de Mozilla-site is gepubliceerd. Als ze gelijk zijn, kun je er redelijk zeker van zijn dat de download die je hebt de download is die Mozilla je had bedoeld.

Image
Image

Kunnen cryptografische hashfuncties worden omgekeerd?

Cryptografische hash-functies zijn ontworpen om te voorkomen dat de controlesommen die ze maken, kunnen worden teruggedraaid naar de originele teksten. Hoewel ze vrijwel onmogelijk ongedaan kunnen worden gemaakt, zijn ze niet 100 procent gegarandeerd om gegevens te beschermen.

Hackers kunnen een regenboogtabel gebruiken om de platte tekst van een controlesom te achterhalen. Rainbow-tabellen zijn woordenboeken die duizenden, miljoenen of zelfs miljarden controlesommen bevatten naast hun corresponderende waarde in platte tekst.

Hoewel dit technisch gezien niet het omkeren van het cryptografische hash-algoritme is, zou het dat net zo goed kunnen zijn, aangezien het zo eenvoudig is om te doen. In werkelijkheid, aangezien geen enkele regenboogtabel elke mogelijke controlesom kan vermelden, zijn ze meestal alleen nuttig voor eenvoudige zinnen zoals zwakke wachtwoorden.

Hier is een vereenvoudigde versie van een regenboogtabel om te laten zien hoe men zou werken bij gebruik van de SHA-1 cryptografische hashfunctie:

Regenboogtabel voorbeeld
Platte tekst SHA-1 Controlesom
12345 8cb2237d0679ca88db6464eac60da96345513964
wachtwoord1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Een hacker moet weten welk cryptografisch hash-algoritme is gebruikt om de checksums te genereren om de waarden te achterhalen.

Voor extra bescherming voeren sommige websites die gebruikerswachtwoorden opslaan extra functies uit op het cryptografische hash-algoritme nadat de waarde is gegenereerd, maar voordat deze wordt opgeslagen. Dit proces produceert een nieuwe waarde die alleen de webserver begrijpt en die niet overeenkomt met de oorspronkelijke controlesom.

Nadat bijvoorbeeld een wachtwoord is ingevoerd en de controlesom is gegenereerd, kan het in verschillende delen worden opgesplitst en opnieuw worden gerangschikt voordat het wordt opgeslagen in de wachtwoorddatabase, of kunnen bepaalde tekens worden verwisseld met andere. Bij een poging tot authenticatie de volgende keer dat de gebruiker zich aanmeldt, keert de server deze extra functie om en wordt de oorspronkelijke controlesom opnieuw gegenereerd om te controleren of het wachtwoord van een gebruiker geldig is.

Het nemen van deze stappen beperkt het nut van een hack waarbij alle controlesommen worden gestolen. Het idee is om een functie uit te voeren die onbekend is, dus als de hacker het cryptografische hash-algoritme kent maar niet het aangepaste, dan is het niet nuttig om de wachtwoordcontrolesommen te kennen.

Wachtwoorden en cryptografische hashfuncties

Een database bewaart gebruikerswachtwoorden op een manier die vergelijkbaar is met een regenboogtabel. Wanneer uw wachtwoord is ingevoerd, wordt de controlesom gegenereerd en vergeleken met degene die is geregistreerd met uw gebruikersnaam. U krijgt dan toegang als de twee identiek zijn.

Gezien het feit dat een CHF een niet-omkeerbare controlesom oplevert, is het dan veilig voor u om uw wachtwoord zo eenvoudig te maken als 12345, in plaats van 12@34 $5, simpelweg omdat de checksums zelf niet begrepen kunnen worden? Nee, en dit is waarom.

Deze twee wachtwoorden zijn beide onmogelijk te ontcijferen door alleen maar naar de checksums te kijken:

MD5 voor 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 voor 12@34$5: a4d3cc004f487b18b2ccd4853053818b

Op het eerste gezicht denk je misschien dat het prima is om een van deze wachtwoorden te gebruiken. Dit is waar als een aanvaller je wachtwoord probeert te achterhalen door de MD5-controlesom te raden, wat niemand doet, maar niet als een brute kracht of woordenboekaanval wordt uitgevoerd, wat een veelgebruikte tactiek is.

Een brute force-aanval vindt plaats wanneer meerdere willekeurige steken worden genomen bij het raden van een wachtwoord. In dit geval zou het gemakkelijk zijn om 12345 te raden, maar vrij moeilijk om willekeurig de andere te achterhalen. Een woordenboekaanval is vergelijkbaar in die zin dat de aanvaller elk woord, getal of zin uit een lijst met veelvoorkomende (en niet-zo-veelvoorkomende) wachtwoorden kan proberen, en 12345 is een van die veelvoorkomende wachtwoorden. wachtwoorden.

Hoewel cryptografische hashfuncties moeilijk tot onmogelijk te raden controlesommen opleveren, moet u toch een complex wachtwoord gebruiken voor al uw online en lokale gebruikersaccounts.

Meer informatie over cryptografische hashfuncties

Het lijkt misschien alsof cryptografische hashfuncties verband houden met codering, maar de twee werken op verschillende manieren.

Encryptie is een tweerichtingsproces waarbij iets wordt gecodeerd om onleesbaar te worden en later wordt gedecodeerd om weer normaal te worden gebruikt. Je kunt bestanden die je hebt opgeslagen versleutelen zodat iedereen die er toegang toe heeft ze niet kan gebruiken, of je kunt codering voor bestandsoverdracht gebruiken om bestanden te versleutelen die zich over een netwerk verplaatsen, zoals degene die je online uploadt of downloadt.

Cryptografische hashfuncties werken anders, in die zin dat de checksums niet bedoeld zijn om te worden teruggedraaid met een speciaal dehash-wachtwoord. Het enige doel van CHF's is om twee stukken gegevens te vergelijken, zoals bij het downloaden van bestanden, het opslaan van wachtwoorden en het ophalen van gegevens uit een database.

Het is mogelijk dat een cryptografische hashfunctie dezelfde controlesom produceert voor verschillende stukjes gegevens. Wanneer dit gebeurt, wordt het een botsing genoemd, wat een enorm probleem is, aangezien het hele punt van de functie is om unieke controlesommen te maken voor elke gegevensinvoer erin.

Er kunnen botsingen optreden omdat elke CHF een waarde van een vaste lengte produceert, ongeacht de invoergegevens. De cryptografische hashfunctie van MD5 genereert bijvoorbeeld 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 en e10adc3949ba59abbe56e057f20f883e voor drie totaal verschillende gegevensblokken.

De eerste controlesom is van 12345. De tweede is gegenereerd uit meer dan 700 letters en cijfers, en de derde is van 123456. Alle drie de ingangen hebben verschillende lengtes, maar de resultaten zijn altijd slechts 32 tekens lang, aangezien de MD5-controlesom werd gebruikt.

Er is geen limiet aan het aantal controlesommen dat kan worden gemaakt, omdat elke kleine verandering in de invoer een compleet andere controlesom zou moeten opleveren. Omdat er een limiet is aan het aantal controlesommen dat één CHF kan produceren, is er altijd de mogelijkheid dat u een botsing tegenkomt.

Dit is de reden waarom er andere cryptografische hashfuncties zijn gemaakt. Terwijl MD5 een waarde van 32 tekens genereert, genereert SHA-1 40 tekens en SHA-2 (512) 128. Hoe groter het aantal tekens van de controlesom, hoe kleiner de kans dat er een botsing zal optreden.

Aanbevolen: