Ethical Hacking Academy · Lektion

Hashing

MD5, SHA, bcrypt

Lektion 2 af 413 trin

Hashing er en gratis Ethical Hacking Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ethical Hacking Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.

Hvad er en hash?

En hashfunktion tager input af enhver størrelse og producerer et output med fast størrelse, som kaldes et digest. Det samme input giver altid det samme digest.

Det afgørende er, at hashing er en envejsoperation. Du kan ikke matematisk føre et digest tilbage til det oprindelige input. Det er det, der gør hashes forskellige fra både kodning og kryptering.

Egenskaber ved en god hash

En kryptografisk hashfunktion bør være:

  • Deterministisk: Det samme input giver det samme output.
  • Hurtig at beregne (ved generel hashing), men helst langsom ved hashing af passwords.
  • Modstandsdygtig over for preimage-angreb: Når du kender et digest, kan du ikke finde inputtet.
  • Kollisionsresistent: Det skal være vanskeligt at finde to input med samme digest.
  • Lavineeffekt: En ændring af én bit vender cirka halvdelen af outputbittene.

MD5

MD5 producerer et digest på 128 bit (32 hexadecimale tegn). Det er hurtigt og historisk udbredt, men er kryptografisk kompromitteret: Der findes praktiske kollisionsangreb.

Brug aldrig MD5 til sikkerhed. Du vil stadig møde det til kontrolsummer for filer og i ældre systemer, hvilket gør det til et hyppigt mål under sikkerhedsvurderinger.

echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99

SHA-familien

SHA-familien (Secure Hash Algorithm) er mere robust:

  • SHA-1: 160 bit. Regnes nu for kompromitteret (kollisionsangrebet »SHADOW HAMMER« / SHAttered). Undgå det.
  • SHA-2: Omfatter SHA-256 og SHA-512. Bruges bredt og er i øjeblikket sikkert.
  • SHA-3: Et nyere design baseret på Keccak, som er et alternativ til SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...

Hashing er ikke kryptering

Kryptering kan reverseres med en nøgle. Hashing kan slet ikke reverseres. Det er netop derfor, hashing bruges til at lagre passwords: Serveren har aldrig brug for originalen.

Når du logger ind, hasher serveren det, du skrev, og sammenligner det med den gemte hash. Hvis de stemmer overens, er du godkendt. Klartekst-passwordet gemmes aldrig.

Problemet: Rainbow tables

Fordi hashning er deterministisk, er hashværdien af 'password' den samme for alle brugere. Angribere beregner på forhånd enorme opslagstabeller med hashværdi-til-klartekst, kaldet rainbow tables.

Hvis to brugere har den samme adgangskode, er deres gemte hashes identiske, hvilket afslører denne oplysning. Simple, hurtige hashes som MD5 eller SHA-256 alene er uegnede til adgangskoder.

Salting

Et salt er en unik, tilfældig værdi, der føjes til hver adgangskode før hashning. Det betyder:

  • Identiske adgangskoder giver forskellige hashes.
  • Forudberegnede rainbow tables bliver ubrugelige.

Salt-værdien gemmes sammen med hashværdien; den er ikke hemmelig. Dens opgave er at gøre hver hashværdi unik, så angribere tvinges til at knække dem enkeltvis.

stored = salt + hash(salt + password)
# salt is random and unique per user

bcrypt: Bygget til adgangskoder

bcrypt er specifikt designet til lagring af adgangskoder. Det er med vilje langsomt og har en konfigurerbar omkostningsfaktor (arbejdsfaktor), som gør det langsommere, efterhånden som hardwaren bliver bedre.

En bcrypt-hash indeholder algoritmen, omkostningen og salt-værdien i én streng. Langsomheden er en fordel: Den begrænser, hvor hurtigt angribere kan gætte.

$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hash

Andre langsomme hashes

Ud over bcrypt omfatter moderne muligheder for hashning af adgangskoder:

  • scrypt: kræver meget hukommelse og modstår GPU- og ASIC-angreb.
  • Argon2: vinder af Password Hashing Competition, kan indstilles efter tid og hukommelse. Det anbefalede moderne valg.
  • PBKDF2: anvender en hurtig hash tusindvis af gange; acceptabel, men svagere end de ovenstående.

HMAC og integritet

Hashes bruges også til integritet, ikke kun adgangskoder. En HMAC (Hash-based Message Authentication Code) kombinerer en hash med en hemmelig nøgle for at kontrollere både en meddelelses integritet og ægthed.

Kontrolsummer for filer (ofte SHA-256) lader dig kontrollere, at en download ikke er blevet ændret. Som hacker kan uoverensstemmende kontrolsummer afsløre ændrede eller ondsindede filer.

Hashes i praksis

Som hacker støder du hele tiden på hashes:

  • /etc/shadow på Linux gemmer saltede adgangskode-hashes med præfikser som $6$ (SHA-512) eller $2b$ (bcrypt).
  • Windows gemmer NTLM-hashes i SAM-databasen.
  • Webapps gemmer hash af adgangskoder i deres brugertabeller.

Når du genkender præfikset, kan du straks se algoritmen og vælge din strategi til at knække hashværdien.

$6$rounds=5000$salt$hash   # SHA-512 crypt
$2b$12$saltandhash...      # bcrypt

Hurtigt tjek

Vælg det mest sikre valg til lagring af brugeradgangskoder.

Opsummering

Du forstår nu hashning:

  • Hashning er en ensrettet, fastlængde og deterministisk transformation, som adskiller sig fra kodning og kryptering.
  • MD5 og SHA-1 er kompromitterede; brug SHA-256 til generel integritetskontrol.
  • Brug langsomme, saltede algoritmer til adgangskoder: bcrypt, scrypt eller Argon2.
  • Salt-værdier besejrer rainbow tables; HMAC tilføjer nøglebaseret integritet.

Nu skal du udforske symmetrisk og asymmetrisk kryptering med AES og RSA.

Gratis at komme i gang

Lær Ethical Hacking Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
31
Lektioner
111

Ofte stillede spørgsmål

Er lektionen “Hashing” gratis?

Ja — hele teksten til “Hashing” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ethical Hacking Academy-kurset, skal du opgradere til CoddyKit PRO. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Hashing”?

MD5, SHA, bcrypt Du øver dig i Ethical Hacking Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Ethical Hacking Academy?

Der kræves ingen tidligere erfaring. Ethical Hacking Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Hashing”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Ethical Hacking Academy-lektion?

Ja. Alle Ethical Hacking Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Kodning kontra kryptering
  2. Hashing
  3. Symmetrisk og asymmetrisk
  4. Cracking af hashes
← Tilbage til Ethical Hacking Academy