Du downloader et program, og siden viser en lang række bogstaver og cifre ved siden af linket: det er et fingeraftryk (en hash), der lader dig kontrollere, at filen hverken er beskadiget eller ændret. De samme mekanismer bruges i en anden sammenhæng til at gemme adgangskoder. De to anvendelser kræver forskellige algoritmer, og at blande dem sammen er en almindelig sikkerhedsfejl.
Hvad et fingeraftryk er
En hashfunktion gør vilkårlige data (et ord, en fil på 4 GB) til en streng af fast længde. Den er deterministisk (det samme input giver altid det samme fingeraftryk) og følsom: ændres en enkelt bit, ændres resultatet fuldstændigt. SHA-256 af teksten “abc” begynder for eksempel med ba7816bf…, mens SHA-256 af “abd” begynder med a52d159f…, uden nogen lighed. Handlingen kan ikke vendes om: man kan ikke finde teksten ud fra fingeraftrykket.
| Algoritme | Størrelse | Hexadecimale tegn | Status |
|---|---|---|---|
| MD5 | 128 bits | 32 | Brudt som sikkerhed (kollisioner kan konstrueres); nok til at opdage utilsigtet beskadigelse. |
| SHA-1 | 160 bits | 40 | Forældet som sikkerhed. |
| SHA-256 | 256 bits | 64 | Den nuværende reference for integritet. |
| SHA-512 | 512 bits | 128 | Længere fingeraftryk. |
Kontrollér en downloadet fil trin for trin
- Find det offentliggjorte fingeraftryk på den officielle side (ofte “SHA256” eller “checksum”), helst på en HTTPS-side, der er en anden end downloadlinket.
- Åbn SHA-256-hashgenerator (eller MD5-hashgenerator, hvis kun MD5 er offentliggjort), og slip filen. Den læses i blokke på 4 MB med en statuslinje: selv en stor fil dræner ikke hukommelsen. Du kan slippe flere.
- Indsæt det forventede fingeraftryk i “Sammenlign”: hex (store eller små bogstaver, med eller uden “:”), base64 eller en linje fra sha256sum accepteres.
- Viser værktøjet et match, er filen identisk med den, udgiveren har udsendt. Ellers skal du ikke åbne den: download den igen.
Et vigtigt punkt: et fingeraftryk kontrollerer, at du har modtaget den samme fil som den beskrevne, ikke at filen er harmløs. Hvis en angriber kontrollerer både filen og det fingeraftryk, der vises på den samme side, beviser kontrollen intet.
Hash af tekst: detaljerne, der ændrer alt
Tekst hashes som UTF-8, præcis som den er skrevet. Et afsluttende linjeskift ændrer fingeraftrykket: SHA-256 af “abc” og af “abc” efterfulgt af et linjeskift er fuldstændigt forskellige (edeaaff3… mod ba7816bf…). Det er den hyppigste årsag til “min hash passer ikke”: tjek for usynlige mellemrum og linjeskift. Sæt kryds ved HMAC for at lave en godkendelseskode med en hemmelig nøgle: kun den, der kender nøglen, kan genskabe det samme fingeraftryk.
Adgangskoder: hvorfor ikke en almindelig SHA-256
SHA-256 er bevidst meget hurtig, og det er netop et problem for adgangskoder: en angriber med en lækket database kan prøve milliarder af gæt i sekundet. Til at gemme adgangskoder bruger man derfor bevidst langsomme algoritmer med et tilfældigt “salt” (bcrypt, scrypt, Argon2). Saltet er tilfældigt og indgår i resultatet: den samme adgangskode giver en forskellig hash hver gang, og kontrollen virker stadig.
Skal du vælge en stærk adgangskode, så læs Stærke adgangskoder: entropi, adgangssætninger og databrud.
Almindelige fejl
- At bruge MD5 eller SHA-1 til signaturer eller adgangskoder.
- At gemme adgangskoder med en almindelig SHA-256, selv med salt.
- At sammenligne fingeraftryk med øjet: ét enkelt bogstav er forskelligt, og du ser det ikke. Brug værktøjets sammenligning.
- At ignorere forskelle i store/små bogstaver eller linjeskift, når tekst hashes.
- At tro, at et identisk fingeraftryk garanterer, at filen er harmløs.
Ærlige begrænsninger
- En hash krypterer intet: den kan ikke vendes om, men korte adgangskoder kan findes ved at gætte.
- MD5- og SHA-1-fingeraftryk bør ikke længere bruges til sikkerhed.
- En langsom algoritme som bcrypt er et solidt valg, men erstatter ikke en komplet politik (begrænsning af forsøg, tofaktorgodkendelse).
Ofte stillede spørgsmål
Uploades min fil for at beregne dens fingeraftryk?
Nej. Beregningen sker i din browser; filen læses i blokke på 4 MB på din enhed.
Hvorfor har to næsten ens tekster uensartede fingeraftryk?
Det er meningen: ændres en enkelt bit, ændres resultatet fuldstændigt. Det kaldes lavineeffekten.
Kan MD5 stadig bruges?
Til at opdage utilsigtet beskadigelse, ja. Til ethvert sikkerhedsformål (signatur, adgangskode), nej: brug SHA-256 eller, til adgangskoder, bcrypt.
Hvad er forskellen på en hash og en HMAC?
En hash afhænger kun af dataene: alle kan genberegne den. En HMAC blander en hemmelig nøgle ind og beviser, at beskeden kommer fra en, der kender nøglen.
Kan en tekst genfindes ud fra sit fingeraftryk?
Ikke direkte. Men en kort eller almindelig adgangskode kan findes ved at gætte, og derfor er en langsom algoritme som bcrypt værdifuld.