Längden på ett lösenord är avgörande för säkerheten. Ju längre lösenord desto säkrare, så klart. Främst beror det på att ett längre lösenord tar längre tid att gissa sig till (Brute Force) än ett kortare. Men hur lång tid tar det?
Ett litet räkneexempel. Om jag med en modern dator med L0phtcrack försöker hacka ett Windows-lösenord som innehåller en slumpmässig blandning av stora och små bokstäver samt siffror (inga andra tecken, för enkelhets skull) så tar det ungefär så här lång tid att testa igenom alla möjliga kombinationer:
4 teckens längd – blixtsnabbt
5 teckens längd – nån minut
6 teckens längd – 2 timmar
7 teckens längd – 4 dagar
8 teckens längd – 8 månader
9 teckens längd – 45 år
10 teckens längd – 2800 år
Om man tänker sig att man tvingas att byta lösenord var 90:e dag och någon startar en brute force-attack direkt efter bytet, hur stor är sannolikheten att man lyckas få fram lösenordet innan det byts igen?
4 teckens längd – 100% sannolikhet
5 teckens längd – 100% sannolikhet
6 teckens längd – 100% sannolikhet
7 teckens längd – 100% sannolikhet
8 teckens längd – 34% sannolikhet
9 teckens längd - 0,5% sannolikhet
10 teckens längd – 0,009% chans
Nu finns det några punkter på vilken den här kalkylen är orealistisk. Till exempel:
- att Brute Force-attacken lyckas starta i samma sekund som lösenordet är bytt är inte rimligt. I praktiken har man kortare tid på sig.
- Antalet tillåtna tecken i lösenord är betydligt fler än de som räknats med här. Räknar man med att blanda in även de vanligaste specialtecknena som finns på tangentbordet (!”#¤%;:,.<> osv…) så skulle ett 8-teckens lösenord istället för 8 månader ta 20 år att knäcka.
För att kunna göra en Brute Force-attack med den här prestandan krävs det att man kommit över det “krypterade” lösenord, t ex genom att kopiera lösenordsdatabasen från en dator. Har man inte det utan tvingas testa varje lösenord med en regelrätt inloggning spelar det in andra faktorer (svarstider i system, roundtrip-tider i nät osv…) vilket gör att man inte kan göra mer än några få försök per sekund. Det är alltså inte rimligt med Brute Force-attacker över internet så länge lösenorden är mer än 3-4 tecken långa.
Alla antagande ovan är alltså baserade på att lösenorden består av slumpmässiga strängar. Använder man lösenord som innehåller ord som finns i ordlistor t ex är man rökt med en gång.
Slutsats: Se till att dina/användarnas lösenord är:
- långa, helst 10 tecken.
- slumpmässiga. Inga ord. Se mina tidigare tips på hur man gör för att skapa och komma ihåg såna.
- hemliga. Det är ett gravt tjänstefel att dela med sig, och att inte byta omedelbart om man tror att nån kommit över ens lösenord.
- permanenta. Tvinga dom inte att byta.
Kom ihåg: Det är betydligt lättare att komma ihåg ett 10 tecken långt lösenord som man själv kommit på och som man vet att man får behålla, än ett 8 tecken långt lösenord som du tvingades hitta på förra månaden och som du vet att du inte får behålla mer än 2 månader till.
Comments on this entry are closed.