Platon Data Intelligence.
Vertikal søgning & Ai.

Seriøs sikkerhed: MD5 anses for at være skadelig – til en værdi af $600,000

Dato:

I en fascinerende juridisk overvejelse afgivet af den franske databeskyttelsesmyndighed CNIL (Den nationale kommission for databehandling og frihedsrettigheder), har energiselskabet Électricité de France, eller forkortet EDF, været det bøde på 600,000 EUR (ca. $600,000).

Den juridiske erklæring er, på samme måde som sådanne ting, ret lang og (i det mindste for ikke-advokater) sprogligt orotund, hvilket betyder, at du har brug for rimelige færdigheder i fransk for at forstå alle ins og outs i sagen, men den overordnede sag koges ned til fire overtrædelser.

De første tre vedrører generelle data-relaterede interaktioner med kunder, der dækker:

  • Afsendelse af kommercielle marketingmails uden behørigt samtykke.
  • Indsamling af data uden at afklare hvad eller hvorfor.
  • Håndterer ikke anmodninger pålideligt når kunder bad om at se deres data, til eller få dem slettet.

Men det er den sidste klage, der har vakt vores interesse: Sur le manquement à l'obligation d'assurer la sécurité des données.

På engelsk oversættes dette løst som manglende opbevaring af data sikkert, og forholder sig meget specifikt til usikker håndtering af adgangskoder.

MD5 anses for at være skadelig

Tilsynsmyndigheden bemærkede blandt andet, at på trods af at EDF hævdede, at det var salte-og-så-hashing adgangskoder ved hjælp af en accepteret hashing-algoritme, havde EDF stadig mere end 25,000 brugeres adgangskoder "sikret" med en enkelt MD5-hash så sent som i juli 2022.

Som du vil have hørt mange gange på Naked Security, opbevarer du kryptografisk hash af en adgangskode betyder, at du kan validere en adgangskode, når den præsenteres, blot ved at genberegne dens hash og sammenligne den med hashen for den adgangskode, der oprindeligt blev valgt.

Hvis hasherne matcher, kan du roligt udlede, at adgangskoderne matcher, uden nogensinde at skulle gemme den faktiske adgangskode.

Når den præsenteres, skal adgangskoden kun opbevares midlertidigt i hukommelsen og kan kasseres, så snart dens hash er beregnet.

Så længe hashing-algoritmen betragtes som kryptografisk sikker, kan den ikke med fordel "køres omvendt", så du kan ikke arbejde baglæns fra hashen for at afsløre noget om selve adgangskoden. (En hash af denne slags er kendt i jargonen som en envejs funktion.)

På samme måde forhindrer en anstændig hash-algoritme, at du starter med en kendt hash og udtænker en inputværdi – enhver input, ikke nødvendigvis den originale adgangskode – der producerer den ønskede hash.

Du skulle prøve input efter input, indtil du var heldig, hvilket for hashes selv på 128 bit ville tage for lang tid til at være et praktisk angreb. (En hash med den sikkerhedsforanstaltning, at den ikke tillader dig at finde ud af flere input med samme output, siges at være kollisionsbestandig.)

Men MD5 har, som du sikkert ved, betydelige problemer med kollisioner, ligesom dens umiddelbare efterfølger SHA-1 (begge disse hashes udkom i begyndelsen af ​​1990'erne).

I disse dage anbefales ingen af ​​algoritmerne til brug nogen steder, af nogen, til noget formål, da der er lignende, men stadig sikre alternativer, som nemt kan bruges til at erstatte dem, såsom SHA-256 og SHA-512:

MD5-hash er 128 bit eller 16 bytes lang. SHA-256 og SHA-512 er henholdsvis 2x og 4x så lange. Men det er ikke denne ekstra hash-længde alene, der gør dem mere velegnede. Deres primære fordel i forhold til MD5 er, at de ikke har nogen specifikke kendte problemer med kollisioner, så deres kryptografiske sikkerhed anses ikke generelt for tvivlsom som følge heraf.

Saltning og udstrækning

Kort sagt, du ville ikke forvente, at nogen virksomhed, endsige en energisektor som EDF, ville bruge MD5 til noget kryptografisk formål overhovedet, endsige til at sikre adgangskoder.

Endnu værre var manglen på saltning, hvilket er hvor en del af data, der er valgt tilfældigt for hver bruger, blandes med adgangskoden, før dens hash beregnes.

Årsagen til et salt er simpel: det sikrer, at hashværdierne for potentielle adgangskoder ikke kan beregnes på forhånd og derefter tages med for at hjælpe med et angreb.

Uden saltning, hver gang enhver bruger vælger adgangskoden 123456, skurkene ved på forhånd, hvad dens hash ville være.

Også selvom brugeren vælger en mere passende adgangskode, som f.eks 34DF6467!Lqa9, kan du på forhånd fortælle, at dens MD5-hash vil være 7063a00e 41866d47 f6226e60 67986e91.

Hvis du har en lang nok liste af forudberegnede adgangskoder eller delvist beregnede adgangskoder (kendt ret glimrende i jargonen som en regnbue bord), kan du muligvis gendanne adgangskoden via tabellen i stedet for ved at prøve billioner af adgangskodekombinationer, indtil du er heldig.

Saltning betyder, at du har brug for et komplet, forudberegnet regnbuebord for hver bruger (tabellen bestemmes af kombinationen af ​​salt + adgangskode), og du ville ikke være i stand til at beregne hver regnbuetabel – en opgave, der kan tage flere uger og optage terabyte diskplads – indtil du alligevel har gendannet saltene,

Men der er mere, du skal gøre.

Selvom du inkluderer et salt, så forudberegnet "hash-ordbøger" ikke kan bruges, og du bruger en pålidelig kryptografisk algoritme som SHA-512, er en hash-beregning alene tilstrækkelig hurtig til, at angribere, der har anskaffet en database med hashes, kan prøv stadig milliarder af mulige adgangskoder i sekundet, eller endnu mere.

Så du skal bruge det, der hedder strækker også, hvor du ikke kun salter den indledende adgangskode, men derefter sender inputtet gennem hashing-algoritmen tusindvis af gange eller mere i en løkke, hvilket gør angreb betydeligt mere tidskrævende for enhver skurk, der ønsker at prøve.

I modsætning til gentagen addition, hvor du kan bruge en enkelt multiplikation som en genvej til at erstatte f.eks. beregningen 5+5+5+5+5+5 med 6×5, er der ingen genveje til gentagne hashes. At hash et input 1000 gange kræver 1000 "drejninger" af det kryptografiske beregningshåndtag.

Ikke kun et MD5-problem

Ironisk nok ser det ud til, at selvom EDF kun havde 25,800 kodeord hashed med MD5, og hævdede til sit forsvar, at det mest brugte SHA-512 i stedet, var det stadig ikke altid at salte eller strække de lagrede hashes.

Tilsynsmyndigheden rapporterer, at 11,200,000 adgangskoder var blevet saltet-og-hashed korrekt, men der var ikke desto mindre 2,400,000, der blot var blevet hash direkte én gang, uanset om det var med MD5 eller SHA-512.

Tilsyneladende har EDF nu fået sin adgangskodelagring op til bunden, men virksomheden fik alligevel en bøde på 600,000 EUR, og vil forblive offentligt noteret online på CNILs "frække skridt" i de næste to år.

Vi kan ikke være sikre på, hvilken bøde der ville være blevet idømt, hvis dommen kun havde involveret dårlig hashing, og EDF ikke også havde skullet stå til ansvar for de tre andre databeskyttelsesforbrydelser, der var nævnt i starten...

…men det viser, at dårlige kryptografiske valg kan koste dig penge på mere end én måde!

Hvad skal jeg gøre?

Gem dine kunders adgangskoder sikkert!

De ekstra beregningsmæssige omkostninger ved saltning og strækning kan vælges, så individuelle brugere ikke bliver generet, når de logger på, men alligevel får potentielle angribere deres angrebshastigheder øget med flere størrelsesordener.

Et adgangskodegendannelsesangreb, der kan tage en uge at udtrække 10 % af adgangskoder gemt som simple one-shot hashes, ville i teorien tage 200 år (10,000 uger), hvis du skulle gøre omkostningerne ved at beregne hver prøveadgangskode 10,000 gange sværere .

Læs vores fremragende forklarende artikel om netop dette emne:

Kort sagt anbefaler vi PBKDF2 "strække" algoritme med SHA-256 som sin kernehash, med en tilfældig per-bruger salt of 16 bytes (128 bit) eller mere.

Dette svarer til anbefalingerne i CNILs seneste dom.

CNIL giver ikke råd om antallet af PBKDF2-iterationer, men som du vil se i vores artikel, er vores råd (oktober 2022) at bruge 200,000 or more. (Du kan jævnligt øge antallet af sløjfer for at følge med stigningen i computerkraft.)

Hvis du ikke ønsker at bruge PBKDF2, foreslår vi, at du læser op på algoritmerne bcrypt, scrypt , Argon2 for at hjælpe dig med at træffe et klogt valg.

Bliv ikke fanget af det kryptografiske frække trin!


spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?