Wat is 'n kriptografiese hash-funksie?

INHOUDSOPGAWE:

Wat is 'n kriptografiese hash-funksie?
Wat is 'n kriptografiese hash-funksie?
Anonim

'n Kriptografiese hash-funksie (CHF) is 'n algoritme wat op data soos 'n individuele lêer of 'n wagwoord uitgevoer kan word om 'n waarde te produseer wat 'n kontrolesom genoem word.

Die hoofgebruik van 'n CHF is om die egtheid van 'n stuk data te verifieer. Twee lêers kan slegs as identies aanvaar word as die kontrolesomme wat uit elke lêer gegenereer word, met dieselfde kriptografiese hash-funksie, identies is.

Sommige kriptografiese hash-funksies wat algemeen gebruik word, sluit MD5 en SHA-1 in, hoewel baie ander ook bestaan. Dit word dikwels na verwys as "hash-funksies", maar dit is nie tegnies korrek nie. 'n Hash-funksie is 'n generiese term wat CHF's insluit saam met ander soorte algoritmes soos sikliese oortolligheidkontroles.

Kryptografiese Hash-funksies: 'n Gebruiksgeval

Sê jy laai die nuutste weergawe van die Firefox-blaaier af. Om een of ander rede moes jy dit van 'n ander webwerf as Mozilla s'n aflaai. Omdat dit nie op 'n webwerf aangebied word wat jy geleer het om te vertrou nie, wil jy seker maak dat die installasielêer wat jy sopas afgelaai het presies dieselfde is as die een wat Mozilla bied.

Deur 'n kontrolesomrekenaar te gebruik, bereken jy 'n kontrolesom met behulp van 'n spesifieke kriptografiese hash-funksie, soos SHA-2, en vergelyk dit dan met die een wat op Mozilla se webwerf gepubliseer is. As hulle gelyk is, kan jy redelik seker wees dat die aflaai wat jy het die een is wat Mozilla bedoel het jy moet hê.

Image
Image

Kan kriptografiese hash-funksies omgekeer word?

Kryptografiese hash-funksies is ontwerp om die vermoë te voorkom om die kontrolesomme wat hulle skep, terug te keer na die oorspronklike tekste. Alhoewel dit feitlik onmoontlik is om om te keer, is hulle egter nie 100 persent gewaarborg om data te beskerm nie.

Hackers kan 'n reënboogtabel gebruik om die gewone teks van 'n kontrolesom uit te vind. Reënboogtabelle is woordeboeke wat duisende, miljoene of selfs biljoene kontrolesomme saam met hul ooreenstemmende gewone tekswaarde lys.

Alhoewel dit nie tegnies die kriptografiese hash-algoritme omkeer nie, kan dit net sowel wees, aangesien dit so maklik is om te doen. In werklikheid, aangesien geen reënboogtabel elke moontlike kontrolesom wat bestaan kan lys nie, is dit gewoonlik net nuttig vir eenvoudige frases soos swak wagwoorde.

Hier is 'n vereenvoudigde weergawe van 'n reënboogtabel om te wys hoe 'n mens sal werk wanneer die SHA-1 kriptografiese hash-funksie gebruik word:

Rainbow Table Voorbeeld
Plaintext SHA-1 Kontrolesom
12345 8cb2237d0679ca88db6464eac60da96345513964
wagwoord1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

'n Hacker moet weet watter kriptografiese hash-algoritme gebruik is om die kontrolesomme te genereer om die waardes uit te vind.

Vir bykomende beskerming, voer sommige webwerwe wat gebruikerwagwoorde stoor bykomende funksies op die kriptografiese hash-algoritme uit nadat die waarde gegenereer is maar voordat dit gestoor is. Hierdie proses produseer 'n nuwe waarde wat net die webbediener verstaan en wat nie ooreenstem met die oorspronklike kontrolesom nie.

Byvoorbeeld, nadat 'n wagwoord ingevoer is en die kontrolesom gegenereer is, kan dit in verskeie dele geskei word en herrangskik word voordat dit in die wagwoorddatabasis gestoor word, of sekere karakters kan met ander omgeruil word. Wanneer daar probeer word om te staaf wanneer die gebruiker volgende keer aanmeld, keer die bediener hierdie bykomende funksie om, en die oorspronklike kontrolesom word weer gegenereer om te verifieer dat 'n gebruiker se wagwoord geldig is.

Om hierdie stappe te doen, beperk die bruikbaarheid van 'n hack waar al die kontrolesomme gesteel word. Die idee is om 'n funksie uit te voer wat onbekend is, so as die hacker die kriptografiese hash-algoritme ken, maar nie die pasgemaakte een nie, dan is dit nie nuttig om die wagwoordkontrolesomme te ken nie.

Wagwoorde en kriptografiese hash-funksies

'n Databasis stoor gebruikerwagwoorde op 'n manier soortgelyk aan 'n reënboogtabel. Wanneer u wagwoord ingevoer word, word die kontrolesom gegenereer en vergelyk met die een op rekord met u gebruikersnaam. Jy word dan toegang verleen as die twee identies is.

Gegewe dat 'n CHF 'n nie-omkeerbare kontrolesom produseer, is dit veilig vir jou om jou wagwoord so eenvoudig te maak soos 12345, in plaas van 12@34 $5, bloot omdat die kontrolesomme self nie verstaan kan word nie? Nee, en hier is hoekom.

Hierdie twee wagwoorde is albei onmoontlik om te ontsyfer net deur net na die kontrolesomme te kyk:

MD5 vir 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 vir 12@34$5: a4d3cc004f487b18b2ccd4853053818b

Met die eerste oogopslag dink jy dalk dat dit goed is om enige van hierdie wagwoorde te gebruik. Dit is waar as 'n aanvaller probeer om jou wagwoord uit te vind deur die MD5-kontrolesom te raai, wat niemand doen nie, maar nie waar as 'n brute krag- of woordeboekaanval uitgevoer word nie, wat 'n algemene taktiek is.

'n Brute krag-aanval vind plaas wanneer verskeie ewekansige steeks geneem word om 'n wagwoord te raai. In hierdie geval sal dit maklik wees om 12345 te raai, maar redelik moeilik om die ander een lukraak uit te vind.'n Woordeboekaanval is soortgelyk deurdat die aanvaller elke woord, nommer of frase uit 'n lys algemene (en nie-so-algemene) wagwoorde kan probeer, en 12345 is een van daardie algemene wagwoorde. wagwoorde.

Selfs al lewer kriptografiese hash-funksies moeilike tot onmoontlik-om-te-raai kontrolesomme, moet jy steeds 'n komplekse wagwoord vir al jou aanlyn- en plaaslike gebruikersrekeninge gebruik.

Meer inligting oor kriptografiese hash-funksies

Dit lyk dalk of kriptografiese hash-funksies met enkripsie verband hou, maar die twee werk op verskillende maniere.

Enkripsie is 'n tweerigtingproses waar iets geënkripteer word om onleesbaar te word en dan later gedekripteer om weer normaal gebruik te word. Jy kan lêers wat jy gestoor het enkripteer sodat enigiemand wat toegang daartoe verkry, dit nie kan gebruik nie, of jy kan lêeroordragkodering gebruik om lêers wat oor 'n netwerk beweeg te enkripteer, soos dié wat jy aanlyn op- of aflaai.

Kryptografiese hash-funksies werk anders, deurdat die kontrolesomme nie bedoel is om omgekeer te word met 'n spesiale dehashing-wagwoord nie. Die enigste doel van CHF's is om twee stukke data te vergelyk, soos wanneer lêers afgelaai word, wagwoorde gestoor word en data van 'n databasis afgehaal word.

Dit is moontlik vir 'n kriptografiese hash-funksie om dieselfde kontrolesom vir verskillende stukke data te produseer. Wanneer dit gebeur, word dit 'n botsing genoem, wat 'n groot probleem is, aangesien die hele punt van die funksie is om unieke kontrolesomme te maak vir elke data-invoer daarin.

Botsings kan voorkom is omdat elke CHF 'n waarde van 'n vaste lengte produseer, ongeag die insetdata. Byvoorbeeld, die MD5 kriptografiese hash-funksie genereer 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983, en e10adc3949089a totaal van drie data vir e10adc39490887 blocke2e0887

Die eerste kontrolesom is vanaf 12345. Die tweede is gegenereer uit meer as 700 letters en syfers, en die derde is van 123456. Al drie invoere is van verskillende lengtes, maar die resultate is altyd net 32 karakters lank, aangesien MD5-kontrolesom gebruik is.

Daar is geen beperking op die aantal kontrolesomme wat geskep kan word nie, want elke klein verandering in die invoer is veronderstel om 'n heeltemal ander kontrolesom te produseer. Omdat daar 'n beperking is op die aantal kontrolesomme wat een CHF kan produseer, is daar altyd die moontlikheid dat jy 'n botsing sal teëkom.

Dit is hoekom ander kriptografiese hash-funksies geskep is. Terwyl MD5 'n waarde van 32 karakters genereer, genereer SHA-1 40 karakters en SHA-2 (512) genereer 128. Hoe groter die aantal karakters die kontrolesom het, hoe minder waarskynlik is dat 'n botsing sal plaasvind.

Aanbeveel: