Cyber Security Academy · Lektion

Hashfunktioner: SHA-256 och vidare

Utforska kryptografiska hashfunktioners egenskaper: kollisionsresistens, preimage-resistens och användningsområden.

Lektion 3 av 413 steg

Hashfunktioner: SHA-256 och vidare är en gratis lektion i Cyber Security Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Cyber Security Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.

Vad är en kryptografisk hashfunktion

En kryptografisk hashfunktion tar emot indata av godtycklig längd och producerar utdata med fast längd (digest). Den måste vara deterministisk, snabb att beräkna, motståndskraftig mot förbildsangrepp (kan inte inverteras), kollisionsresistent (det går inte att hitta två indata med samma hash) och lavinkänslig (en liten ändring → en helt annan hash).

SHA-2-familjen

SHA-2-familjen (utformad av NSA och standardiserad av NIST) innehåller:

  • SHA-256 — 256 bitars utdata, används i stor utsträckning
  • SHA-384 — 384 bitars utdata
  • SHA-512 — 512 bitars utdata, snabbare på 64-bitarsprocessorer

SHA-256 används i Bitcoin, TLS-certifikat och Git-commit-ID:n.

SHA-3-familjen

SHA-3 använder en helt annan konstruktion (Keccak sponge-konstruktionen) än SHA-2. Den standardiserades som en reserv om svagheter skulle upptäckas i SHA-2. SHA-3 är inte utbrett i praktiken, men används i vissa kryptografiska protokoll och i viss hårdvara.

MD5 och SHA-1: knäckta

Använd aldrig MD5 eller SHA-1 för säkerhetsändamål:

  • MD5: en kollision kan hittas på sekunder med vanlig hårdvara
  • SHA-1: den första praktiska kollisionen demonstrerades 2017 (SHAttered)

De är fortfarande användbara som kontrollsummor för ändamål som inte rör säkerhet (fildeduplicering), men inte för att garantera integritet.

Hashanvändning: filintegritet

Verifiering av nedladdningar:

sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodified

Hashanvändning: digitala signaturer

När vi signerar dokument krypterar vi inte hela dokumentet med den privata nyckeln (det går för långsamt). I stället:

  1. Hashar vi dokumentet (snabbt)
  2. Krypterar vi hashen med den privata nyckeln (litet och snabbt)
  3. Dekrypterar mottagaren med den publika nyckeln och jämför med sitt eget beräknade hashvärde

HMAC: nycklad hash för integritet

HMAC (Hash-based Message Authentication Code) kombinerar en hashfunktion med en hemlig nyckel för att skapa en autentiseringstagg. Den används för att verifiera både dataintegritet och äkthet. HMAC används i JWT:er, API-autentisering och TLS.

import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()

Längdutökningsattacker mot hashfunktioner

SHA-2 (Merkle-Damgård-konstruktionen) är sårbart för längdutökningsattacker: om du känner till H(secret+message) kan du beräkna H(secret+message+extension) utan att känna till hemligheten. HMAC förhindrar detta. SHA-3 är inte sårbart.

Regnbågstabeller och saltning

En regnbågstabell förberäknar mappningar mellan hash och indata för snabb sökning. Saltning förhindrar detta: genom att lägga till ett unikt slumpvärde för varje indata blir varje hash unik, vilket kräver fullständig brute force för varje post i stället för en sökning i en tabell.

Merkle-träd

Ett Merkle-träd är ett träd av hashvärden där varje föräldranod är hashen av sina barn. Det används i Bitcoins blockkedja, Git och loggar för certifikattransparens för att effektivt verifiera stora datamängder utan att ladda ned allt.

Välja rätt hashfunktion

Vägledning för val:

  • Allmän integritet/kontrollsummor: SHA-256
  • Lösenordslagring: Argon2id, bcrypt (INTE SHA-256 direkt)
  • Meddelandeautentisering: HMAC-SHA-256
  • Digitala signaturer: SHA-256 eller SHA-384 som underliggande hashfunktion
  • Undvik: MD5 och SHA-1 i säkerhetsrelaterade tillämpningar

Snabbtest: hashfunktioner

Vilken konstruktion förhindrar längdutökningsattacker och kräver samtidigt en hemlig nyckel?

Sammanfattning av lektionen

Hashfunktioner producerar digestvärden med fast längd från indata av godtycklig längd. SHA-256 och SHA-512 är aktuella standarder. MD5 och SHA-1 är knäckta ur säkerhetssynpunkt. HMAC lägger till en hemlig nyckel för autentiserad integritet. Använd Argon2/bcrypt för lösenord. Merkle-träd utökar hashning så att stora datamängder kan verifieras effektivt.

Gratis att börja

Lär dig Cyber Security Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
303

Vanliga frågor

Är lektionen ”Hashfunktioner: SHA-256 och vidare” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Cyber Security Academy, inklusive ”Hashfunktioner: SHA-256 och vidare”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Hashfunktioner: SHA-256 och vidare”?

Utforska kryptografiska hashfunktioners egenskaper: kollisionsresistens, preimage-resistens och användningsområden. Ni övar på Cyber Security Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cyber Security Academy?

Du behöver inga förkunskaper. Utbildningen i Cyber Security Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Hashfunktioner: SHA-256 och vidare”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cyber Security Academy-lektionen?

Ja. Varje Cyber Security Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Symmetrisk kryptering: AES och strömkrypton
  2. Asymmetrisk kryptering: RSA och elliptiska kurvor
  3. Hashfunktioner: SHA-256 och vidare
  4. Digitala signaturer och certifikat
← Tillbaka till Cyber Security Academy