Du laster ned et program, og nettstedet viser en lang rekke bokstaver og sifre ved siden av lenken: det er et fingeravtrykk (hash) som lar deg kontrollere at filen verken er skadet eller endret. De samme mekanismene brukes, i en annen sammenheng, til å lagre passord. De to bruksområdene krever ulike algoritmer, og å blande dem sammen er en vanlig sikkerhetsfeil.
Hva et fingeravtrykk er
En hashfunksjon gjør alle data (et ord, en fil på 4 GB) om til en streng med fast lengde. Den er deterministisk (samme inndata gir alltid samme fingeravtrykk) og følsom: å endre én enkelt bit endrer resultatet fullstendig. For eksempel begynner SHA-256 av teksten «abc» med ba7816bf…, mens SHA-256 av «abd» begynner med a52d159f…, uten noen likhet i det hele tatt. Operasjonen kan ikke reverseres: du kan ikke hente teksten tilbake fra fingeravtrykket.
| Algoritme | Størrelse | Heksadesimale tegn | Status |
|---|---|---|---|
| MD5 | 128 biter | 32 | Brutt for sikkerhetsbruk (kollisjoner kan lages); nok til å oppdage tilfeldig skade. |
| SHA-1 | 160 biter | 40 | Foreldet for sikkerhetsbruk. |
| SHA-256 | 256 biter | 64 | Dagens referanse for integritet. |
| SHA-512 | 512 biter | 128 | Lengre fingeravtrykk. |
Kontrollere en nedlastet fil, trinn for trinn
- Finn det publiserte fingeravtrykket på det offisielle nettstedet (ofte «SHA256» eller «checksum»), helst på en HTTPS-side som er en annen enn nedlastingslenken.
- Åpne SHA-256-hashgenerator (eller MD5-hashgenerator hvis bare MD5 er publisert) og slipp filen. Den leses i blokker på 4 MB med fremdriftslinje: selv en stor fil (opptil 4 GB) tar ikke slutt på minnet. Du kan slippe flere.
- Lim inn det forventede fingeravtrykket under «Sammenlign»: hex (store eller små bokstaver, med eller uten «:»), base64 eller en linje fra sha256sum godtas.
- Hvis verktøyet viser samsvar, er filen identisk med den utgiveren ga ut. Ellers bør du ikke åpne den: last den ned på nytt.
Et viktig poeng: et fingeravtrykk verifiserer at du fikk den samme filen som den som er beskrevet, ikke at filen er ufarlig. Hvis en angriper kontrollerer både filen og fingeravtrykket som vises på samme side, beviser kontrollen ingenting.
Hashe tekst: detaljene som endrer alt
Tekst hashes som UTF-8, nøyaktig slik den er skrevet. Et avsluttende linjeskift endrer fingeravtrykket: SHA-256 av «abc» og av «abc» etterfulgt av et linjeskift er helt ulike (edeaaff3… mot ba7816bf…). Dette er den hyppigste årsaken til «hashen min stemmer ikke»: se etter usynlige mellomrom og linjeskift. Kryss av for HMAC for å lage en autentiseringskode med en hemmelig nøkkel: bare den som kjenner nøkkelen, kan lage det samme fingeravtrykket.
Passord: hvorfor ikke SHA-256, og bcrypt i stedet
SHA-256 er laget for å være rask, og det hjelper en angriper som kan prøve milliarder av passord i sekundet. bcrypt er med vilje tregt og har flere egenskaper som passer for passord:
- Saltet er tilfeldig og ligger inne i resultatet: det samme passordet gir en ny hash hver gang, og verifiseringen fungerer likevel.
- bcrypt leser bare de første 72 bytene av passordet (i UTF-8 teller en bokstav som å for 2 og en emoji for 4): verktøyet varsler når grensen overskrides.
- Utregningen går uten at skjermen fryser, med en ekte fremdriftslinje; passordet sendes eller lagres ikke.
For å velge et sterkt passord, les Sterke passord: entropi, passordfraser og datalekkasjer.
Vanlige feil
- Å bruke MD5 eller SHA-1 til signaturer eller passord.
- Å lagre passord med en ren SHA-256, selv med salt.
- Å sammenligne fingeravtrykk med øyet: én enkelt bokstav er forskjellig, og du ser det ikke. Bruk sammenligningen i verktøyet.
- Å se bort fra forskjeller i store og små bokstaver eller linjeskift når du hasher tekst.
- Å tro at et identisk fingeravtrykk garanterer at filen er ufarlig.
Ærlige begrensninger
- En hash krypterer ingenting: den kan ikke reverseres, men korte passord kan finnes ved å gjette.
- MD5- og SHA-1-fingeravtrykk bør ikke lenger brukes til sikkerhet.
- bcrypt er et solid valg, men erstatter ikke en fullstendig policy (begrensning av forsøk, tofaktorautentisering).
Vanlige spørsmål
Lastes filen min opp for å regne ut fingeravtrykket?
Nei. Utregningen skjer i nettleseren din; filen leses i blokker på 4 MB på enheten din.
Hvorfor har to nesten identiske tekster helt ulike fingeravtrykk?
Det er med vilje: å endre én enkelt bit endrer resultatet fullstendig. Dette kalles skredeffekten.
Er MD5 fortsatt brukbar?
For å oppdage tilfeldig skade, ja. Til alle sikkerhetsformål (signatur, passord), nei: bruk SHA-256 eller, for passord, bcrypt.
Hvilken bcrypt-kostnad bør jeg velge?
10 til 12 for et nettsted. Velg den høyeste verdien serverne dine takler uten å gjøre innloggingen treg for brukerne.
Kan en tekst hentes tilbake fra fingeravtrykket?
Ikke direkte. Men et kort eller vanlig passord kan finnes ved å gjette, og derfor er en langsom algoritme som bcrypt verdifull.