En kryptografisk hash-funktion er en algoritme, som kan køres på data som en individuel fil eller et kodeord for at producere en værdi kaldet et checksum.
Hovedbrugen af en kryptografisk hash-funktion er at verificere ægtheden af et stykke data. To filer kan antages at være identiske, hvis de checksum der genereres fra hver fil, der bruger den samme kryptografiske hash-funktion, er identiske.
Nogle almindeligt anvendte kryptografiske hash-funktioner omfatter MD5 og SHA-1, selvom mange andre også eksisterer.
Kryptografiske hashfunktioner kaldes ofte "hash-funktioner", men det er ikke teknisk korrekt. En hash-funktion er et generisk udtryk, der omfatter kryptografiske hashfunktioner sammen med andre slags algoritmer som cyklisk redundans kontrol.
Kryptografiske Hash Funktioner: En brugs sag
Sig, at du downloader den nyeste version af Firefox-browseren. Af en eller anden grund behøvede du at downloade det fra et andet websted end Mozillas. Fordi det ikke hostes på et websted, du har lært at stole på, vil du gerne sørge for, at installationsfilen, du lige har downloadet, er nøjagtig den samme som den ene Mozilla tilbyder.
Ved hjælp af en checksumregnemaskine beregner du et checksum ved hjælp af en bestemt kryptografisk hash-funktion, såsom SHA-2, og sammenligner derefter den med den, der udgives på Mozillas websted. Hvis de er ens, kan du være rimeligt sikker på, at den download, du har, er den ene Mozilla, du har til hensigt at have.
Kan Kryptografiske Hashfunktioner Tilbagevendes?
Kryptografiske hash-funktioner er designet til at forhindre evnen til at vende de checksums, de skaber tilbage til de originale tekster. Men selvom de næsten ikke er muligt at vende om, er de ikke 100% garanterede at beskytte data.
Hackere kan bruge et regnbuebord til at finde ud af den almindelige tekst af et checksum.
Regnbordsborde er ordbøger, der angiver tusinder, millioner eller endda milliarder checksums sammen med deres tilsvarende almindelig tekstværdi.
Selv om dette ikke teknisk reverserer den kryptografiske hash-algoritme, kan det lige så godt være, da det er så nemt at gøre. I virkeligheden, da ingen regnbue bord kan liste alle mulige checksum i eksistens, er de normalt kun nyttige til enkle sætninger som svage adgangskoder.
Her er en forenklet version af et regnbuebord til at vise, hvordan man ville arbejde, når man bruger SHA-1 kryptografiske hash-funktionen:
| Simpel tekst | SHA-1 Kontrolsum |
| 12345 | 8cb2237d0679ca88db6464eac60da96345513964 |
| password1 | e38ad214943daad1d64c102faec29de4afe9da3d |
| jeg elsker min hund | a25fb3505406c9ac761c8428692fbf5d5ddf1316 |
| Jenny400 | 7d5eb0173008fe55275d12e9629eef8bdb408c1f |
| dallas1984 | c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2 |
En hacker skal vide, hvilken kryptografisk hashalgoritme der blev brugt til at generere checksums for at finde ud af værdierne.
For at få ekstra beskyttelse udfører nogle websteder, der gemmer brugeradgangskoder, yderligere funktioner på kryptografisk hash-algoritmen, efter at værdien er genereret, men før den er gemt. Denne proces producerer en ny værdi, som kun webserveren forstår, og det svarer ikke til det originale checksum.
Når en adgangskode f.eks. Er indtastet og checksummet genereres, kan det være adskilt i flere dele og omarrangeres, før det er gemt i adgangskodedatabasen, eller visse tegn kan byttes med andre. Når du forsøger at godkende næste gang brugeren logger på, vender webserveren denne ekstra funktion, og det oprindelige checksum genereres igen for at verificere, at en brugers adgangskode er gyldig.
Under disse trin begrænses brugen af et hack, hvor alle checksums bliver stjålet. Ideen er at udføre en funktion, der er ukendt, så hvis hackeren kender kryptografisk hash-algoritmen, men ikke den brugerdefinerede, er det uhensigtsmæssigt at kende adgangskode-kontrolsummen.
Passwords og kryptografiske Hash funktioner
En database gemmer brugeradgangskoder på en måde, der ligner et regnbuebord. Når din adgangskode er indtastet, genereres checksummen og sammenlignes med den på posten med dit brugernavn. Du får derefter adgang, hvis de to er ens.
I betragtning af at en kryptografisk hash-funktion producerer et ikke-omstillbart checksum, er det sikkert for dig at gøre dit kodeord så enkelt som 12345, i stedet for 12@34$5, simpelthen fordi checksummerne selv ikke kan forstås? Nej, og her er hvorfor.
Disse to adgangskoder er begge umulige at dechiffrere ved blot at kigge på checksummerne:
MD5 til 12345: 827ccb0eea8a706c4c34a16891f84e7b
MD5 for 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b
Ved første øjekast tror du måske, at det er fint at bruge et af disse adgangskoder. Dette er sandt, hvis en angriber prøvede at finde ud af dit kodeord ved at gætte MD5 checksummet, som ingen gør, men ikke sandt, hvis der udføres en brute force eller et ordbordsangreb, hvilket er en fælles taktik.
Et brutalt kraftangreb opstår, når flere tilfældige stabs tages ved at gætte et kodeord. I dette tilfælde ville det være let at gætte 12345, men temmelig svært at finde ud af den anden. Et ordbordsangreb er ens, fordi angriberen kan prøve hvert ord, nummer eller sætning fra en liste over almindelige (og ikke så almindelige) adgangskoder, og12345 er et af disse fælles adgangskoder.
Selvom kryptografiske hashfunktioner skaber vanskelige, umulige guess checksums, skal du stadig bruge en kompleks adgangskode til alle dine online og lokale brugerkonti.
Flere oplysninger om Cryptographic Hash funktioner
Det kan virke som kryptografiske hash-funktioner er relateret til kryptering, men de to arbejder på forskellige måder.
Kryptering er en tovejsproces, hvor noget er krypteret for at blive uleseligt og derefter dekrypteret senere for at blive brugt normalt igen. Du kan muligvis kryptere filer, du har gemt, så alle, der har adgang til dem, ikke kan bruge dem, eller du kan bruge filoverførselskryptering til at kryptere filer, der flytter over et netværk, som dem du uploader eller downloader online.
Kryptografiske hash-funktioner virker forskelligt, idet checksummerne ikke skal reverseres med et specielt dehashing-kodeord. Det eneste formål med kryptografiske hashfunktioner er at sammenligne to datastykker, f.eks. Ved at downloade filer, lagre adgangskoder og trække data fra en database.
Det er muligt for en kryptografisk hash-funktion at producere det samme checksum for forskellige datatyper. Når dette sker, kaldes det en kollision, hvilket er et stort problem i betragtning af hele punktet med en kryptografisk hash-funktion er at gøre unike checksum for hver dataindgang i den.
Kollisioner kan forekomme, fordi hver kryptografiske hash-funktion producerer en værdi af en fast længde uanset inddataene. For eksempel genererer MD5 kryptografiske hash-funktionen 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 og e10adc3949ba59abbe56e057f20f883e for tre helt forskellige databaser.
Den første checksum er fra 12345. Den anden blev genereret fra over 700 bogstaver og tal, og den tredje er fra 123456.
Alle tre indgange er af forskellig længde, men resultaterne er altid kun 32 tegn lange, siden MD5 checksum blev brugt.
Der er ingen grænse for antallet af checksums, der kunne oprettes, fordi hver lille ændring i inputet skal producere et helt andet checksum. Fordi der er en grænse for antallet af checksums, som en kryptografisk hash-funktion kan producere, er der altid mulighed for at du oplever en kollision.
Derfor er der skabt andre kryptografiske hash-funktioner. Mens MD5 genererer en værdi på 32 tegn, genererer SHA-1 40 tegn, og SHA-2 (512) genererer 128. Jo større antallet af tegn, som checksummet har, desto mindre sandsynligt er det for en kollision.




