Kriptografiese Hash-funksie

Kriptografiese Hash Funksie Definisie

'N Kriptografiese hash-funksie is 'n soort algoritme wat op 'n stuk data, soos 'n individuele lêer of 'n wagwoord, uitgevoer kan word om 'n kontrolesom te genereer.

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

Sommige algemeen gebruikte kriptografiese hash funksies sluit MD5 en SHA-1 in , hoewel baie ander ook bestaan.

Nota: Kriptografiese hashfunksies word dikwels net genoem as hashfunksies vir kort, maar dit is nie tegnies korrek nie. 'N Hash-funksie is 'n meer generiese term wat gewoonlik gebruik word om kriptografiese hashfunksies te dek, tesame met ander soorte algoritmes soos sikliese oortollige kontrole.

Kriptografiese Hashfunksies: 'n Gebruiksgeval

Kom ons sê jy laai die nuutste weergawe van die Firefox-blaaier af . Om watter rede dan ook, moet u dit aflaai van 'n ander webwerf as Mozilla. As jy nie op 'n webwerf geleer word wat jy geleer het om te vertrou nie, wil jy seker maak dat die installasie lêer wat jy net afgelaai het, presies dieselfde is wat Mozilla bied.

Met behulp van 'n tjeksentrumrekenaar bereken jy 'n tjeksentrum met 'n spesifieke kriptografiese hash-funksie (sê 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 download wat jy het, die een Mozilla was wat jy bedoel het.

Kyk wat is 'n kontrolelys? Vir meer oor hierdie spesiale sakrekenaars, plus nog meer voorbeelde oor die gebruik van tjeksels om seker te maak dat die lêers wat jy laai, regtig is wat jy verwag het.

Kan Kriptografiese Hashfunksies Teruggekeer word?

Kriptografiese hash funksies is ontwerp om te verhoed dat hulle die kontroles wat hulle in die oorspronklike tekste terugbring, keer.

Alhoewel hulle feitlik onmoontlik is om te keer, beteken dit nie dat hulle 100% gegarandeer is om data te beveilig nie.

Iets wat 'n reënboogtafel noem, kan gebruik word om die maklike teks van 'n kontrolesum vinnig uit te vind. Rainbow tafels is basies woordeboeke wat duisende, miljoene, of selfs miljarde hiervan langs die ooreenstemmende plaintext-waarde lys.

Terwyl dit nie die kriptografiese hash-algoritme tegnies omkeer nie , kan dit ook so wees, aangesien dit so eenvoudig is om te doen. In werklikheid, aangesien geen reënboektafel elke moontlike kontrolesum kan uitlig nie, is hulle gewoonlik net "nuttig" vir eenvoudige frases ... soos swak wagwoorde.

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

Gewone teks SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
password1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Aangesien hierdie waardes met behulp van die kontrolesom bereken word, sou dit vereis dat die hacker verstaan ​​watter kriptografiese hash-algoritme gebruik is om dit te genereer.

Vir meer beskerming, moet sommige webwerwe wat gebruikerswagwoorde stoor, addisionele funksies aan die kriptografiese hash-algoritme uitvoer nadat die waarde gegenereer is, maar voordat dit gestoor word.

Dit lewer 'n nuwe waarde wat net die webbediener verstaan ​​en dit stem nie ooreen met die oorspronklike kontrolesom nie.

Byvoorbeeld, nadat 'n wagwoord ingevoer is en die tjeksum 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 mense vervang word. Wanneer die gebruiker probeer om die volgende keer te bevestig, sal hierdie bykomende funksie deur die webbediener en die oorspronklike tjeksentum weer gegenereer word om te verifieer dat die wagwoord van 'n gebruiker geldig is.

Deur dit te doen, help dit om die bruikbaarheid van 'n hack te beperk waar al die tjeks gesteel word.

Weereens, die idee hier is om 'n funksie wat onbekend is, uit te voer sodat as die hacker die kriptografiese hash-algoritme ken, maar nie hierdie aangepaste een nie, dan is die wete-kontrolesoms onhelpbaar.

Wagwoorde en Kriptografiese Hashfunksies

Soortgelyk aan 'n reënboogtafel is hoe 'n databasis gebruikers wagwoorde red. Wanneer u wagwoord ingevoer word, word die kontrolesom gegenereer en vergelyk met die een wat op rekord is met u gebruikersnaam. U word dan toegang verleen indien die twee identies is.

Aangesien 'n kriptografiese hash-funksie 'n nie-omkeerbare kontrolesom lewer, beteken dit dat jy jou wagwoord so eenvoudig kan maak as 12345 , in plaas van 12 @ 34 $ 5 , bloot omdat die kontrolesom nie verstaan ​​kan word nie? Dit is beslis nie , en hier is hoekom ...

Soos u kan sien, is hierdie twee wagwoorde onmoontlik om te ontsyfer net deur net by die kontrolesum te kyk:

MD5 vir 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 vir 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Dus, met die eerste oogopslag kan jy dink dat dit absoluut fyn is om een ​​van hierdie wagwoorde te gebruik. Dit is beslis waar as 'n aanvaller jou wagwoord probeer uitvind 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 Force Aanval is wanneer verskeie ewekansige steekproppe geneem word om 'n wagwoord te raai. In hierdie geval sal dit baie 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, getal of frase uit 'n lys van algemene (en minder algemeen gebruikte) wagwoorde kan probeer, "12345" beslis een wat probeer word.

Dus, alhoewel kriptografiese hash-funksies moeilik maak om onmoontlik te kontroleer, moet jy steeds 'n komplekse wagwoord vir al jou aanlyn- en plaaslike gebruikersrekeninge gebruik.

Wenk: Sien voorbeelde van swak en sterk wagwoorde as jy nie seker is of joune as 'n sterk wagwoord beskou word nie.

Meer inligting oor Cryptographic Hash Functions

Dit lyk of kriptografiese hash funksies verwant is aan enkripsie, maar die twee werk op baie verskillende maniere.

Enkripsie is 'n tweerigtingproses waar iets geïnkripteer word om onleesbaar te word, maar dan later gedekripteer om normaalweg weer gebruik te word. U kan lêers wat u gestoor het enkripteer , sodat almal wat toegang tot hulle het, nie kan gebruik nie, of u kan lêeroordragkripsie gebruik om lêers wat oor 'n netwerk beweeg, te enkripteer, soos dié wat u oplaai of aflaai.

Soos hierbo beskryf, funksioneer kriptografiese hash funksies anders omdat die kontrolesom nie bedoel is om omgekeerd te word met 'n spesiale dehash-wagwoord soos hoe geïnkripteer lêers met 'n spesiale dekripsie wagwoord gelees word nie. Die enigste doel om kriptografiese hash funksies te dien, is om twee stukke data te vergelyk, soos wanneer lêers afgelaai word, wagwoorde stoor, data uit 'n databasis trek, ens.

Dit is moontlik vir 'n kriptografiese hash-funksie om dieselfde kontrolesum vir verskillende stukke data te produseer. Wanneer dit gebeur, word dit 'n botsing genoem. Dit is duidelik dat dit 'n groot probleem is, aangesien die hele punt van 'n kriptografiese hash-funksie geheel en al kontroleums maak vir elke data wat daarin ingevoer word.

Die redes wat botsings kan voorkom, is omdat elke kriptografiese hash-funksie 'n waarde van 'n vaste lengte lewer, ongeag die insetdata. Byvoorbeeld, die MD5-kriptografiese hash-funksie genereer 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 , en e10adc3949ba59abbe56e057f20f883e vir drie heeltemal verskillende blokke data.

Die eerste tjeksentrum is vanaf 12345 , die tweede is uit meer as 700 letters en nommers gegenereer, en die derde is vanaf 123456 . Al drie insette is van verskillende lengtes, maar die resultate is altyd net 32 ​​karakters lank sedert MD5 gebruik is.

Soos u kan sien, is daar feitlik geen beperking op die aantal kontrolesums wat geskep kan word nie, aangesien elke klein verandering in die insette 'n heeltemal ander tjeksentrum moet produseer. Omdat daar egter ' n beperking is op die aantal tjeks wat een kriptografiese hash-funksie kan produseer, is daar altyd die moontlikheid dat jy 'n botsing sal ervaar.

Dit is waarom ander kriptografiese hash funksies geskep is. Terwyl MD5 'n waarde van 32 karakters genereer, SHA-1 genereer 40 karakters en SHA-2 (512) genereer 128. Hoe groter die aantal karakters wat die kontrolesum het, hoe minder sal 'n botsing voorkom omdat dit meer ruimte bied vir unieke waardes.