ToolsBench

MD5, SHA-1 eller SHA-256: Hva er forskjellen?

· 6 min lesing · Tools-Bench Guider

En hashfunksjon tar hvilke som helst inndata — et passord, en fil, ett enkelt tegn — og lager et fingeravtrykk med fast lengde. Endrer du én bit i inndataene, endres fingeravtrykket fullstendig. Den egenskapen ligger bak integritetssjekker av filer, lagring av passord, digitale signaturer og mesteparten av rørleggerarbeidet i sikkerheten på internett.

MD5, SHA-1 og SHA-256 er de tre navnene du oftest støter på, og de kan ikke byttes om på: to av dem er kryptografisk knekt. Her er hva det faktisk betyr, og hvordan du velger.

Det alle tre har til felles

Alle er enveisfunksjoner: det går raskt å beregne hashen av noen inndata, men å regne en hash tilbake til inndataene er i praksis umulig. Alle er deterministiske — de samme inndataene gir alltid den samme hashen, og det er det som gjør hasher nyttige som fingeravtrykk. Og alle gir et resultat med fast størrelse uansett hvor store inndataene er: MD5 gir 128 biter (32 heksadesimale tegn), SHA-1 gir 160 biter (40 tegn) og SHA-256 gir 256 biter (64 tegn).

Sikkerheten i en hash hviler på kollisjonsmotstand: det skal være praktisk umulig å finne to ulike inndata som gir samme hash. Det er denne egenskapen som skiller de tre.

MD5: rask, overalt — og knekt

MD5 er fra 1992 og var internettets standard fingeravtrykk i mange år. Kollisjonsmotstanden falt sammen i 2004, da forskere viste to ulike inndata med samme MD5-hash; i dag tar det sekunder på en bærbar PC å lage MD5-kollisjoner. Angrepet er ikke teoretisk — skadevaren Flame brukte i 2012 en MD5-kollisjon til å forfalske et kodesigneringssertifikat fra Microsoft.

Hva det betyr i praksis: en angriper kan lage to filer med identisk MD5-hash — én ufarlig og én ondsinnet — så MD5 må aldri brukes til noe som har med sikkerhet å gjøre: ikke signaturer, ikke sertifikater, ikke passordlagring, ikke kontroll av nedlastinger fra kilder du ikke stoler på. Hva det ikke betyr: MD5 fungerer fortsatt helt fint som en rask sjekksum mot tilfeldig skade — å oppdage en mislykket nedlasting eller en sikkerhetskopi med feil — der ingen motstander er involvert.

SHA-1: samme historie, et tiår senere

SHA-1 (1995) var MD5s sterkere søsken og arvet rollen — og til slutt også skjebnen. Google og CWI viste den første praktiske SHA-1-kollisjonen i 2017 («SHAttered»-angrepet, to ulike PDF-er med samme hash), og innen 2020 var kollisjoner billige nok for angripere med gode ressurser. Nettlesere sluttet å godta TLS-sertifikater med SHA-1 allerede i 2017.

Du møter fortsatt SHA-1 i eldre systemer — særlig Git, som historisk har identifisert commits med SHA-1 (forsterket mot kjente angrep, og på vei over til SHA-256). Behandle den som MD5: akseptabel som en eldre sjekksum, uakseptabel til alt en angriper kan ha interesse av.

SHA-256: dagens standard

SHA-256 tilhører SHA-2-familien (2001) og har ingen kjente praktiske angrep — ingen kollisjoner og ingen vesentlig svekkelse etter to tiår med kryptoanalyse. Den er standarden for TLS-sertifikater, kodesignering, kontroll av programvareutgivelser, blokkjeder (hele arbeidsbeviset i Bitcoin er SHA-256) og offentlig bruk som NIST-standard.

Tommelfingerregelen er enkel: er du i tvil, bruk SHA-256. At resultatet er lengre og beregningen tregere enn med MD5, betyr ingenting for nesten noen reelle arbeidsoppgaver — selv store filer hashes på et øyeblikk med moderne maskinvare.

Ett viktig forbehold: ingen rask hash — heller ikke SHA-256 — egner seg til å lagre passord. Raske hasher er nettopp det angripere vil ha, fordi de kan prøve milliarder av kandidater i sekundet. Passord trenger bevisst langsomme algoritmer med salt, som bcrypt, scrypt eller Argon2.

Sjekk en hash selv

Det vanlige brukstilfellet: et nettsted publiserer SHA-256-hashen til en fil det distribuerer, og du kontrollerer at nedlastingen din stemmer før du stoler på den. Hash-generatoren i Tools-Bench beregner MD5, SHA-1 og SHA-256 for tekst eller filer direkte i nettleseren — filen leses lokalt på enheten din og lastes aldri opp, så du kan trygt ta fingeravtrykk av selv konfidensielle dokumenter.

Ofte stilte spørsmål

Hvis MD5 er knekt, hvorfor publiserer nedlastingssider fortsatt MD5-sjekksummer?

Fordi MD5 fortsatt virker fint mot tilfeldig skade — det vanlige tilfellet — og vanen er gammel. Den svikter bare når en angriper kontrollerer både filen og den publiserte hashen. Seriøse prosjekter publiserer SHA-256 i tillegg eller i stedet.

Kan en hash dekrypteres tilbake til originalen?

Nei — hashing er ikke kryptering og forkaster informasjon for godt. Sider for «MD5-dekryptering» er oppslagstabeller med forhåndsberegnede hasher for vanlige inndata, og det er nettopp derfor usaltede hasher er utrygge for passord.

Hva er SHA-384, SHA-512 og SHA-3?

SHA-384 og SHA-512 er større varianter av SHA-2 — samme oppbygning, lengre resultat, brukt der man vil ha ekstra margin. SHA-3 er en strukturelt annerledes algoritme som ble standardisert i 2015 som en forsikring i tilfelle SHA-2 noen gang blir svekket. Til vanlig bruk er SHA-256 fortsatt det fornuftige standardvalget.

Prøv selv