Seriøs sikkerhet: MD5 anses som skadelig – til en verdi av $600,000 XNUMX PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Seriøs sikkerhet: MD5 anses som skadelig – til en verdi av $600,000 XNUMX

I en fascinerende juridisk overveielse overlevert av den franske databeskyttelsesregulatoren CNIL (Nasjonal kommisjon for databehandling og friheter), har energiselskapet Électricité de France, eller forkortet EDF, vært det bøtelagt 600,000 XNUMX euro (omtrent $ 600,000).

Den juridiske erklæringen er, på samme måte som slike ting, ganske lang og (i det minste for ikke-advokater) språklig orotund, noe som betyr at du trenger rimelige ferdigheter i fransk for å forstå alle detaljer i saken, men den generelle saken koker ned til fire overtredelser.

De tre første er opptatt av generelle datarelaterte interaksjoner med kunder, og dekker:

  • Sende kommersielle markedsførings-e-poster uten riktig samtykke.
  • Samle data uten å avklare hva eller hvorfor.
  • Håndterer ikke forespørsler pålitelig når kunder ba om å se dataene deres, eller få dem slettet.

Men det er den siste klagen som vekket vår interesse: Sur le manquement à l'obligation d'assurer la sécurité des données.

På engelsk oversettes dette løst som manglende lagring av data sikkert, og forholder seg veldig spesifikt til usikker håndtering av passord.

MD5 anses som skadelig

Regulatoren bemerket blant annet at til tross for at det hevdet at det var salting-og-så-hashing passord ved hjelp av en akseptert hashing-algoritme, hadde EDF fortsatt mer enn 25,000 5 brukeres passord "sikret" med en enkelt MD2022-hash så sent som i juli XNUMX.

Som du har hørt mange ganger på Naked Security, lagrer du kryptografisk hash av et passord betyr at du kan validere et passord når det presenteres ganske enkelt ved å beregne hashen på nytt og sammenligne det med hashen til passordet som opprinnelig ble valgt.

Hvis hashen samsvarer, kan du trygt slutte at passordene samsvarer, uten å måtte lagre det faktiske passordet.

Når det presenteres, trenger passordet bare å lagres midlertidig i minnet, og kan forkastes så snart hashen er beregnet.

Så lenge hashing-algoritmen anses som kryptografisk sikker, kan den ikke med fordel "kjøres i revers", så du kan ikke jobbe bakover fra hashen for å avsløre noe om selve passordet. (En hash av denne typen er kjent i sjargongen som en enveisfunksjon.)

På samme måte forhindrer en anstendig hash-algoritme at du starter med en kjent hash og utarbeider en eller annen inngangsverdi – enhver inngang, ikke nødvendigvis det originale passordet – som produserer ønsket hash.

Du må prøve input etter input til du er heldig, noe som for hashes selv på 128 bits ville ta for lang tid til å være et praktisk angrep. (En hash med den sikkerhetsmessige forholdsregelen at du ikke kan finne ut flere innganger med samme utgang sies å være kollisjonsbestandig.)

Men MD5, som du sikkert vet, har betydelige problemer med kollisjoner, det samme gjør umiddelbar etterfølger SHA-1 (begge disse hashene kom ut på begynnelsen av 1990-tallet).

I disse dager er ingen av algoritmene anbefalt for bruk hvor som helst, av noen, for noe formål, gitt at det finnes lignende, men fortsatt sikre alternativer som enkelt kan brukes til å erstatte dem, for eksempel SHA-256 og SHA-512:

MD5-hasher er 128 biter eller 16 byte lange. SHA-256 og SHA-512 er henholdsvis 2x og 4x så lange. Men det er ikke denne ekstra hasjlengden alene som gjør dem mer egnet. Deres primære fordel fremfor MD5 er at de ikke har noen spesifikke kjente problemer med kollisjoner, så deres kryptografiske sikkerhet anses ikke generelt som tvilsom som et resultat.

Salting og tøying

Kort sagt, du ville ikke forvente at noe selskap, enn si en energisektor som EDF, skulle bruke MD5 til noe kryptografisk formål i det hele tatt, enn si for å sikre passord.

Enda verre var imidlertid mangelen på salting, som er der en del av data som er valgt tilfeldig for hver bruker blandes inn med passordet før hashen beregnes.

Årsaken til et salt er enkel: det sikrer at hash-verdiene til potensielle passord ikke kan beregnes på forhånd og deretter tas med for å hjelpe med et angrep.

Uten salting, hver gang en bruker velger passordet 123456, skurkene vet på forhånd hva hasjen dens ville være.

Selv om brukeren velger et mer passende passord, som f.eks 34DF6467!Lqa9, kan du fortelle på forhånd at dens MD5-hash vil være 7063a00e 41866d47 f6226e60 67986e91.

Hvis du har en lang nok liste over forhåndsberegnet passord, eller delvis beregnede passord (kjent ganske glimrende i sjargongen som en regnbuebord), kan du kanskje gjenopprette passordet via tabellen i stedet for å prøve trillioner av passordkombinasjoner til du er heldig.

Salting betyr at du trenger et komplett, forhåndsberegnet regnbuebord for hver bruker (tabellen bestemmes av kombinasjonen av salt + passord), og du ville ikke være i stand til å beregne hver regnbuetabell – en oppgave som kan ta flere uker og oppta terabyte med diskplass – før du har gjenopprettet saltene uansett,

Men det er mer du må gjøre.

Selv om du inkluderer et salt, slik at forhåndsberegnet "hash-ordbøker" ikke kan brukes, og du bruker en pålitelig kryptografisk algoritme som SHA-512, er én hash-beregning alene tilstrekkelig rask til at angripere som har skaffet seg en database med hashes kan prøv fortsatt ut milliarder av mulige passord i sekundet, eller enda mer.

Så du bør bruke det som heter stretching også, hvor du ikke bare salter det innledende passordet, men deretter sender inndataene gjennom hashing-algoritmen tusenvis av ganger eller mer i en løkke, og dermed gjør angrep betraktelig mer tidkrevende for alle skurker som ønsker å prøve.

I motsetning til gjentatt addisjon, hvor du kan bruke en enkelt multiplikasjon som en snarvei for å erstatte for eksempel regnestykket 5+5+5+5+5+5 med 6×5, er det ingen snarveier for gjentatte hashes. For å hash en inngang 1000 ganger krever 1000 "svinger" av det kryptografiske beregningshåndtaket.

Ikke bare et MD5-problem

Ironisk nok ser det ut til at selv om EDF bare hadde 25,800 5 passord hashe med MD512, og hevdet i sitt forsvar at det for det meste brukte SHA-XNUMX i stedet, var det fortsatt ikke alltid salting eller tøyning av de lagrede hashene.

Regulatoren rapporterer at 11,200,000 2,400,000 5 passord var riktig saltet-og-hashed, men det var likevel 512 XNUMX XNUMX som ganske enkelt hadde blitt hash direkte én gang, enten det var med MDXNUMX eller SHA-XNUMX.

Tilsynelatende har EDF nå fått passordlagringen sin på bunnen av, men selskapet ble uansett bøtelagt EUR 600,000 XNUMX, og vil forbli offentlig notert online på CNILs "frekke trinn" de neste to årene.

Vi kan ikke være sikre på hvilken bot som ville blitt ilagt hvis dommen kun hadde involvert dårlig hashing, og EDF ikke også hadde måttet svare for de tre andre databeskyttelseslovbruddene som var oppført i starten...

…men det viser at dårlige kryptografiske valg kan koste deg penger på mer enn én måte!

Hva gjør jeg?

Lagre kundenes passord sikkert!

De ekstra beregningsmessige kostnadene ved salting og strekking kan velges slik at individuelle brukere ikke er til sjenanse når de logger på, men potensielle angripere får angrepshastigheten økt med flere størrelsesordener.

Et passordgjenopprettingsangrep som kan ta en uke å trekke ut 10 % av passordene som er lagret som enkle one-shot hashes, vil i teorien ta 200 år (10,000 10,000 uker) hvis du skulle gjøre kostnadene ved å beregne hvert prøvepassord XNUMX XNUMX ganger vanskeligere .

Les vår utmerket forklaringsartikkel om akkurat dette emnet:

Kort sagt anbefaler vi PBKDF2 "stretching" algoritme med SHA-256 som kjernehash, med en tilfeldig per-bruker salt of 16 bytes (128 biter) eller mer.

Dette samsvarer med anbefalingene i CNILs siste dom.

CNIL gir ikke råd for antall PBKDF2-iterasjoner, men som du vil se i artikkelen vår, er vårt råd (oktober 2022) å bruke 200,000 or more. (Du kan jevnlig øke antall løkker for å holde tritt med økningen i datakraft.)

Hvis du ikke vil bruke PBKDF2, foreslår vi at du leser opp algoritmene bcrypt, scrypt og Argon2 for å hjelpe deg med å ta et klokt valg.

Ikke bli fanget av det kryptografiske slemme trinnet!


Tidstempel:

Mer fra Naken sikkerhet