Udvikler: Firefox har kørt med svag kodeords-algoritme i årevis

2 kommentarer.  Hop til debatten
Udvikler: Firefox har kørt med svag kodeords-algoritme i årevis
Illustration: Bigstock.
Gennem de seneste ni år har Firefox anvendt en dårlig funktion til lagring af kodeord, mener manden bag AdBlock Plus.
19. marts 2018 kl. 22:35
errorÆldre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Den populære Firefox-browser har gennem de seneste ni år brugt en for svag algoritme til lagring af kodeord. Det anfører Wladimir Palant i et blogindlæg, som Bleepingcomputer har fundet.

Palant er ophavsmand til AdBlock Plus-udvidelsen.

Det drejer sig om den måde, det såkaldte 'master password' bliver behandlet på. Masterkodeordet kan aktiveres i både Firefox og mail-klienten Thunderbird. Når der anvendes et masterkodeord, så bliver de øvrige kodeord, som browseren eller mail-klienten lagrer for brugeren, gemt i et krypteret format. Alternativt skulle de blive gemt i klartekst.

Masterkodeordet gør, at der kan låses op for de øvrige kodeord.

Artiklen fortsætter efter annoncen

Men der er et problem i den måde, som masterkodeordet bliver håndteret på, mener Palant. Han har kigget i koden til open source-softwaren og er i den forbindelse stødt på funktionen sftkdb_passwordToKey().

Funktionen involverer, at masterkodeordet sammen med et salt bliver kørt gennem den kryptografiske hash-algoritme SHA-1 - en gang.

»Enhver, der nogensinde har designet en login-funktion på en hjemmeside, vil formentlig se et rødt flag her,« fortæller Palant i det blogindlæg, som Bleepingcomptuer.com refererer til.

Det røde flag består i, at strengen med masterkodeordet kun bliver kørt gennem SHA-1-algortimen en enkelt gang.

Da SHA-1 i denne sammenhæng er en hurtig algoritme, betyder det, at det er for nemt for en hacker at brute force sig frem til det oprindelige kodeord. Som flere vil vide, vil brute force her sige, at en masse kodeordsgæt bliver foretaget eksempelvis med hjælp fra processoren i et moderne grafik-kort.

Ifølge Palants blogindlæg, der refererer til denne artikel, så kan en Nvidia GTX 1080 således beregne 8,5 milliarder SHA-1 hashes i sekundet. Hvis brugeren samtidig har valgt et svagt masterkodeord, så vil det kunne knækkes på mindre end et minut, anfører Palant i indlægget.

Mindst 10.000 iterationer

Når først hackeren har fat i masterkodeordet, så vil det være muligt at tilgå de øvrige kodeord også lagret i Firefox eller i Thunderbird.

Ifølge artiklen hos Bleepingcomputer er best practice mindst 10.000 iterationer gennem SHA-1 algoritmen, og kodeordshuskere som LastPass har 100.000 iterationer. Men Firefox har altså foreløbig kun en gennemkørsel på masterkodeordet.

Problemstillingen er ikke just ny. Det viser et ni år gammelt indlæg på Mozilla bug tracker fra Justin Dolske, der rejser samme bekymring, som Palant.

Ifølge en aktuel melding fra Firefox-virksomheden Mozilla, som Bleepingcomputer refererer til, så vil problemet blive løst med lanceringen af en ny kodeords-manager til Firefox kaldet Lockbox.

Indtil da er det ifølge Bleepingcomputer under alle omstændigheder bedre at have et masterkodeord end ikke at have et, anfører Bleepingcomputer. Og i den forbindelse er et langt og kompliceret kodeord bedre end et kort og simpelt.

Palant mener, det bedste ville være, hvis Mozilla-udviklerne anvendte Argon2-algoritmen frem for SHA-1.

2 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
2
20. marts 2018 kl. 16:13

Hej Sune, du har en pointe. Jeg har fjernet obfuskeret fra artiklen. Jakob - V2

1
20. marts 2018 kl. 11:25

Ordet "obfuskere" passer vel ikke rigtigt i nogen af de sammenhænge det bliver anvendt i artiklen (og bliver ikke brugt i det oprindelige blogindlæg).

De enkelte passwords bliver ikke "obfuskerede", de bliver krypteret med master-passwordet.

Man kan muligvis argumentere for at behandlingen af masterpasswordet er en obfuskering, men det er ikke pointen med koden - det er at udføre key stretching. Den nævnte sftkdb_passwordToKey() laver ikke som sådan key stretching (den sha1'er salt+passphrase), men kommentar til funktionen er "This salted value will be based to a pkcs5 pbe function before it is used".

Jeg har ikke fulgt koden, men den gamle bug report nævner "This is then used [...] as input to a PKCS#5 PBKDF1 routine. The default iteration count is just 1" - ups!