Individuell saltning av varje lösenord löser rainbow table-problemet. Men så länge användare tillåts ha korta lösenord (Amazon och Apple tillåter exempelvis sex tecken) så är ren brute force fullt möjligt. Och det blir inte bättre i takt med att datorer blir snabbare.
Bästa alternativen verkar vara Secure Remote Password protocol som jag skrev om i förrgår eller att nyttja maximal långsamhet i Blowfish, det vill säga bcrypt à la OpenBSD. Olle Segerdahl kommenterade bloggen med dessa tips i februari i år under mitt inlägg om genererade toString().
ДДДДДДДД == 簡簡簡簡簡簡簡簡 == ©©©©©©©©?
Joseph Bonneau, doktorand vid Cambridge, upptäckte att Gawker tolkar alla icke-ASCII-tecken i lösenord som likvärdiga. Dvs du kan logga in på ett konto som har lösenordet "ДДДДДДДД" med valfritt annat icke-ASCII-lösenord med samma antal tecken, t ex "簡簡簡簡簡簡簡簡" och "©©©©©©©©".
Problemet visade sig vara en bugg i jBCrypt innan v 0.3 där alla icke-ASCII-tecken byttes ut mot '?' innan hashning. Det finns beskrivet i en advisory från februari i år.
Fyra slutsatser:
- Uppgradera om ni använder jBCrypt < 0.3.
- Använd bara ASCII-tecken i era lösenord och låt istället längden ge er säkerhet mot brute force. Det är bra när ni är utomlands också.
- Gawker kör åtminstone nu bcrypt vilket trots allt hedrar dem. Alla ni med vanliga lösenordshashar i databasen bör ta en funderare.
- Om Gawker körde bcrypt redan i våras så var det särdeles dumt att inte uppgradera jBCrypt till 0.3 när patchen kom i februari. Om de driftsatte jBCrypt 0.2 efter hacket så var det ännu dummare. Men det sätter återigen fingret på ramverks- och bibliotekspatchning. Vem håller koll på alla säkerhetsuppdateringar i olika lib man har länkat in? "Ingen" är min gissning i de flesta fall.
Gott nytt år!
2 kommentarer:
De flesta lösenord hos Gawker var sparade med gamla DES-baserade crypt() funktionen (12-bit salt och max 8 tecken input, endast ASCII) och alltså INTE bcrypt. Detta medförde att de flesta lösenord kunde knäckas inom väldigt kort tid. Mer läsning: http://intrepidusgroup.com/insight/2010/12/crypt3-rainbow-tables/ http://blogs.wsj.com/digits/2010/12/13/the-top-50-gawker-media-passwords/
Ah, sant. Även duosecurity-länken i mitt inlägg hade info om DES crypt(3). Jag bara gissade att om de hade gamla jBCrypt 0.2 nu så borde de haft det tidigare också.
Var det månne en crypt(3)/bcrypt-mixad miljö hela vägen och efter hacket så övergick till bara bcrypt utan att installera ny jBCrypt-version?
Skicka en kommentar