tidigare i år publicerades cirka 6,5 miljoner LinkedIn-kontolösenord på ett hackarforum. Hasherna var enkla SHA1-smältningar beräknade från användarens lösenord, som lagras i LinkedIn-backend-infrastrukturen.
det tog inte lång tid för hackare att börja knäcka dem, med över hälften av dem knäckta på nästan ingen tid.
det finns två huvudorsaker till att en sådan snabb sprickbildning var möjlig:
* användningen av själva SHA1-funktionen
* snabba GPU: er
Låt oss ta en titt på båda.
SHA1-funktionen var huvudsakligen utformad för att ersätta den svagare funktionen MD5. Det skapades för att vara snabbt, och det är det verkligen. På ett AMD / ATI 7970 – grafikkort beräknar” hashcat ” (se https://hashcat.net/oclhashcat-plus/) lite över två miljarder SHA1-hashes per sekund. Det betyder att många kombinationer kan testas på mycket kort tid.
för att övervinna detta ”problem” finns moderna och säkrare algoritmer, till exempel sha512crypt-funktionen som används i Ubuntu och senaste versioner av Fedora Core Linux. I stället för 2 miljarder hashar per sekund spricker samma GPU-kort bara lite över 12 000 sha512crypt-kombinationer per sekund. Till exempel tar kontroll av en miljard sha512crypt-kombinationer cirka 24 timmar; men mindre än 1 sekund för SHA1.
på grund av dagens snabba GPU: er är ett bra råd när det gäller säkerhet att välja ett komplext lösenord, det:
* innehåller både stora och små bokstäver
* innehåller minst ett mellanslag
* innehåller siffror
* innehåller flera symboler som !@ #
* det är inte baserat på ett känt ord
* det är minst 12 tecken i storlek, men ju längre desto bättre
många av de människor jag känner använder lösenfraser som är mellan 20 och 50 tecken i storlek. Detta är ett bra råd som gör det osannolikt att även i händelse av att ditt lösenord hash läckt, ingen kommer att knäcka den.
Föreställ dig min förvåning idag när jag försökte logga in på ett äldre Hotmail-konto och fick följande:
Microsoft-kontolösenord kan innehålla upp till 16 tecken.
om du har använt ett lösenord som har mer än 16 tecken anger du de första 16.
mitt tidigare lösenord har varit cirka 30 tecken i storlek och nu fungerar det inte längre. Jag kunde dock logga in genom att skriva bara de första 16 tecknen.
denna begränsning är välkänd (se Graham Cluleys utmärkta inlägg om lösenordsgränserna för olika tjänster) men det som fick min uppmärksamhet var att genom att klippa lösenordet till 16 tecken skulle det fungera.
för att dra detta trick med äldre lösenord hade Microsoft två val:
* lagra fullständiga klartext lösenord i deras db; jämför endast de första 16 tecknen
* beräkna hash endast på de första 16; ignorera resten
lagra klartext lösenord för onlinetjänster är en bestämd no-no i säkerhet. Det andra valet kan innebära att Hotmail sedan starten tyst använde endast de första 16 tecknen i lösenordet.
för att vara ärlig är jag inte säker på vilken som är värre.
PS: min lärare sa alltid att tänka positivt och försöka avsluta med en optimistisk anteckning. Så här går: ”tack Google för GMail”.