Cryptology Academy · Lektion

Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder

Forstå regnbuetabeller, brute-force-hastighed og salt.

Lektion 1 af 413 trin

Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 1 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 Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Velkommen

Sikker lagring af adgangskoder er et af de mest misforståede emner inden for sikkerhed. I denne lektion forstår vi, hvorfor hurtige hashes som SHA-256 er katastrofalt uegnede til adgangskoder.

Hvad sker der, når databaser lækker

Databasebrud sker hele tiden. I 2024 lækkede RockYou2024 10 milliarder adgangskoder. Hvis dine brugeres adgangskoder gemmes i gendannelig form, vil angribere kunne gendanne dem.

Naiv SHA-256-lagring

Dårligt mønster: hashed = sha256(password) store(username, hashed) Problemer: (1) sha256 er ekstremt hurtig, (2) den samme adgangskode → den samme hash (ingen saltning), (3) der findes regnbuetabeller for almindelige adgangskoder.

Angreb med regnbuetabel

En regnbuetabel er en forudberegnet kobling mellem hash→password for millioner af almindelige adgangskoder. SHA-256('password') er altid den samme hash. Opslag i tabellen: øjeblikkelig dekryptering af de fleste adgangskoder.

Saltets rolle

Salt = tilfældige bytes, der sættes foran adgangskoden før hashing. hash = sha256(salt + password) Hver bruger får et unikt salt. Regnbuetabeller bliver ubrugelige — angriberen skal udføre brute force mod hver bruger individuelt.

Men salt alene er ikke nok

En moderne GPU beregner 10 MILLIARDER SHA-256-hashes i sekundet. Selv med unikke salte kan en angriber med lækkede hashes udføre brute force på adgangskoder på 8 tegn på få minutter.

Hastighedsproblemet

SHA-256 er designet til at være hurtig — til filintegritet, TLS osv. Hastighed er en fjende ved hashing af adgangskoder. Vi har brug for bevidst langsomme algoritmer, der modstår brute force.

Nøgleudvidelse

Nøgleudvidelse gentager hashfunktionen tusindvis af gange: for i in range(100000): h = sha256(h). Det gør både angriberen og forsvareren langsommere — men hardwarefordelen er stadig på angriberens side.

Hukommelseshårde funktioner

Moderne hashfunktioner til adgangskoder kræver store mængder RAM, ikke kun CPU-cyklusser. GPU'er har begrænset RAM pr. kerne sammenlignet med CPU'er. Argon2's hukommelseshårdhed neutraliserer fordelene ved GPU'er og ASIC'er.

Almindelige fejl

Undgå: - sha256(password) - sha256(salt + password) without iteration - md5(password) (or any MD5) - Kryptering af adgangskoder (de kan dekrypteres) - sha256(sha256(password)) (still fast)

Hvad skal du bruge i stedet

Brug: bcrypt (mest udbredt), Argon2id (anbefalet af OWASP og hukommelseshård), PBKDF2-SHA256 (FIPS-kompatibel og acceptabel). Alle tre er bevidst langsomme og bruger salt som standard.

Hurtigt tjek

Hvorfor er SHA-256 uegnet til hashing af adgangskoder, selv når der bruges salt?

Opsummering

SHA-256 er forkert til adgangskoder. Næste gang undersøger vi bcrypt — algoritmen, der bevidst gør hashing langsom og modstandsdygtig over for hardware.
Gratis at komme i gang

Lær Cryptology 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
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder” gratis?

Ja — hele teksten til “Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder” 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 Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder”?

Forstå regnbuetabeller, brute-force-hastighed og salt. Du øver dig i Cryptology 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å Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology 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 1 af 4.

Hvor lang tid tager lektionen “Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder”?

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 Cryptology Academy-lektion?

Ja. Alle Cryptology 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. Hvorfor almindelig SHA-256 ikke er egnet til adgangskoder
  2. bcrypt: Algoritme og omkostningsfaktor
  3. Argon2: Hukommelseskrævende hashing af adgangskoder
  4. PBKDF2 og valg af den rette algoritme
← Tilbage til Cryptology Academy