2009-03-10

Istället för lösenord

En miljon lösenord på Spotify kan ha hamnat i händerna på hackare.
- Metro

Hackare kan ha kommit över lösenord till Spotify-konton
- Expressen

Spotify hackat - lösenord på drift
- Teknik360

Vadå "kan"? Har man kommit åt lösenorden eller inte?

Svaret är faktiskt: nja.

Inga datasystem med några som helst anspråk på säkerhet lagrar lösenord i klartext. Hur vanliga krypterade lösenord är vet jag inte, men det är heller inte det säkraste - man vet aldrig när någon kodknäckare med lite maskintid över kommer och lyckas ta reda på att A skall läsas som B, B som C osv. Eller hur det nu är krypterat.

Det absolut vanligaste sättet att hantera lösenord är genom så kallade hash-funktioner. Det är en funktion som tar en godtycklig mängd data - en bokstav, eller tio eller miljoner - och räknar ut en kontrollsumma (liknande den som finns i alla våra personnummer). Det man sparar är inte lösenordet, ens i krypterad form, utan dess kontrollsumma.

När användaren skall logga in och uppger ett lösenord, så räknar man ut kontrollsumman på detta, och jämför det med den lagrade kontrollsumman. Är de identiska så utgår man ifrån att det uppgivna lösenordet är detsamma som det som först angavs. Om de är olika, så kan så icke vara fallet - det räcker med att man skrivit in en bokstav för mycket eller för lite för att kontrollsumman skall bli helt annorlunda.

Det finns visserligen ingenting som hindrar att två olika lösenord har samma kontrollsumma; det är bara mycket osannolikt (exakt hur osannolikt står i papperen).

Men om jag nu är en hackare som kommit över sådana här "kontrollsummor" för lösenord. Jag vet att användarnamnet kalle har ett lösenord X, vars kontrollsumma är 9E107D9D372BB6826BD81D3542A419D6 (för att ta ett faktiskt exempel på en 128-bitars hash uträknad med den mycket spridda MD5-algoritmen). Hur räknar jag ut X? Eller ett annat lösenord som ger samma kontrollsumma? Ja, problemet är inte hur det skall gå till, utan att faktiskt göra det - för i princip behöver man gå igenom alla möjliga lösenord ett efter ett för att hitta ett som ger samma kontrollsumma.

Inte för att det inte gjorts. Häromåret satte man 200 Playstation 3:or på ett sådant problem. Det tog 16 timmar. Kriminella med tillgång till s.k. botnets kan ha ännu mer datakraft tillgänglig.

Ännu så länge finns det enklare sätt om man vill komma åt ett visst konto, som att gå igenom listor med vanliga lösenord, liksom namn på familjemedlemmar, husdjur, bilnummer osv. Eller att se om ett lösenord på ett ställe även låser upp samma persons konto på bloggen, forumet osv.

Att knäckande av MD5-hashar ligger inom det möjligas gräns innebär att man bör byta mot säkrare algoritmer, och att man inte skall slarva ens med kontrollsummorna. Men samma sak är det - inte ännu.


Washington Post: Hashing over tiny details
Spotify: Security notice med fler tekniska detaljer

Inga kommentarer: