Cryptology Academy · Lektion

Argon2: Hukommelseskrævende hashing af adgangskoder

Udforsk Argon2i, Argon2d og Argon2id, og forstå betydningen af hukommelseskrævende beregninger.

Lektion 3 af 413 trin

Argon2: Hukommelseskrævende hashing af adgangskoder er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 3 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

Argon2 vandt Password Hashing Competition (PHC) i 2015 og er OWASP's vigtigste anbefaling. Dets hukommelseskrævende design modvirker GPU- og ASIC-angreb, som bcrypt ikke kan modstå.

Hvorfor hukommelseskrav er vigtige

GPU'er har tusindvis af kerner, men begrænset RAM pr. kerne (~1 KB). Argon2 kræver mindst 64 MB RAM pr. hash. Angribere, der forsøger at beregne 1000 hashværdier parallelt, skal bruge 64 GB RAM — dyrt og begrænset.

Argon2-varianter

Argon2d: dataafhængig adgang — hurtigst, men sårbar over for timingangreb via sidekanaler. Argon2i: datauafhængig adgang — sikker mod timingangreb. Argon2id: hybrid — anbefales til de fleste applikationer.

Argon2-parametre

m: hukommelse i kilobyte (OWASP: 19456 KB = mindst 19 MB, 64 MB anbefales) t: tidsomkostning / iterationer (3 anbefales) p: parallelitet / tråde (4 anbefales) salt: 16 tilfældige byte resultat: 32 byte

Argon2id i Python

from argon2 import PasswordHasher ph = PasswordHasher( memory_cost=65536, # 64 MB time_cost=3, parallelism=4 ) hash = ph.hash('my_password') # Verify: ph.verify(hash, 'my_password') # True

Argon2-hashformat

$argon2id$v=19$m=65536,t=3,p=4$ bmFuZG9tc2FsdHJhbmRvbQ$ KaE5Jjy7E8...hashed... Alle parametre gemmes i hashstrengen. Verificeringen er selvstændig — der er ikke behov for separat lagring af parametre.

OWASP's Argon2id-anbefalinger 2024

Minimum: m=19456 KB (19 MB), t=2, p=1 Anbefalet: m=65536 KB (64 MB), t=3, p=4 Høj sikkerhed: m=262144 KB (256 MB), t=4, p=8 Tilpas værdierne efter den tilgængelige hukommelse på din server.

Argon2 sammenlignet med bcrypt og PBKDF2

Argon2id: hukommelseskrævende, modstandsdygtig over for ASIC-angreb, anbefales til nye systemer. bcrypt: bredt understøttet, ikke hukommelseskrævende, god understøttelse af ældre systemer. PBKDF2: FIPS-kompatibel, ikke hukommelseskrævende, brug den i regulerede miljøer.

Strategi til opgradering af hash

Ved opgradering fra bcrypt til Argon2: 1. Tilføj en ny kolonne til den nye hash 2. Ved næste login: verificér med den gamle bcrypt-hash, beregn en ny hash med Argon2, og gem den nye hash 3. Efter X måneder: kræv en nulstilling af adgangskoden for brugere, der endnu ikke er blevet opgraderet

Argon2 i rigtige frameworks

Django: set PASSWORD_HASHERS=['django.contrib.auth.hashers.Argon2PasswordHasher'] Node.js: use argon2 package (not argon2-ffi) PHP 7.2+: built-in PASSWORD_ARGON2ID constant in password_hash()

Pepper: hemmelighed på serversiden

En pepper er en hemmelighed på serversiden, der blandes med adgangskoden før hashing: hash(password + pepper). Selv hvis databasen lækkes, skal angriberen også bruge pepperen. Rotering af pepperen = ugyldiggørelse af alle hashes.

Hurtigt tjek

Hvorfor er Argon2 mere modstandsdygtig over for GPU-angreb end bcrypt?

Opsummering

Argon2id er det bedste værktøj til hashing af adgangskoder i dag. Dernæst sammenligner vi alle tre algoritmer og lærer at vælge den rigtige til din situation.
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 “Argon2: Hukommelseskrævende hashing af adgangskoder” gratis?

Ja — hele teksten til “Argon2: Hukommelseskrævende hashing af 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 “Argon2: Hukommelseskrævende hashing af adgangskoder”?

Udforsk Argon2i, Argon2d og Argon2id, og forstå betydningen af hukommelseskrævende beregninger. 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 3 af 4.

Hvor lang tid tager lektionen “Argon2: Hukommelseskrævende hashing af 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