LOADING

Type to search

Hur skapar man ett säkert lösenord?

Hur skapar man ett säkert lösenord?

Share

Återkommande i tidningar så läser man om olika attacker på hemsidor och lösenord som är på vift. I och med informationsflödet på internet så kommer vi att besöka fler och fler hemsidor som kräver inloggning. Men det kan vara komplicerat att komma ihåg alla login och lösenord till sidorna, särskilt om man vill ha unika lösenord.

Jag kommer nu använda 8st olika teckenuppsättningar som jag hänvisar till nedan i texten.

[A]: 0123456789
[B]: abcdefghijklmnopqrstuvwxyz
[C]: ABCDEFGHIJKLMNOPQRSTUVWXYZ
[D]: abcdefghijklmnopqrstuvwxyz0123456789
[E]: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
[F]: AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
[G]: AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789

För ett lösenord som består av 4st siffror [A] finns totalt 10000st olika kombinationer. Om vi utgår från [B] eller [C] så finns det 456 976st kombinationer. Väljer vi att blanda siffror och bokstäver ([D] och [E]) så är vi uppe i 1,6 miljoner kombinationer. [F] och [G] så har vi ytterligare kombinationer. Som ni kan förstå så kommer det att ta längre tid att komma på lösenordet om vi blandar siffror och bokstäver enligt [F] och [G], mot [A] till [E].

Vi kan prova ett lösenord mot en tjänst på nätet som räknar ut hur fort det går att hitta rätt lösenord och utgår ifrån lösenordet ”zae9” så tar det mindre än 1 sekund att testa sig fram till detta lösenord. Väljer man att blanda in en stor bokstav ”zAe9” så lägger man på en parameter som en ev. hackare behöver ta hänsyn till för hitta lösenordet. Nu tar det strax över sekunden, bara genom att byta ut en liten bokstav till en stor.

Vi kan enkelt konstatera att ett lösenord på 4:a tecken inte är särskilt säkert, oavsett om vi blandar stora och små tecken med siffror om man skriver ett lite program som går igenom teckenkombination för teckenkombination. Tvingas vi till 4:a tecken som pinkoder och annat, så behöver man komplettera med att man har ett visst antal försök på sig innan man låser kontot helt eller under en viss tid.

Vad händer om vi utökar till flera tecken?

Vi lägger till ett ”q” till vårt lösenord ”zAe9q” och vi har utökat tiden till runt 1 minut och 21 sekunder. Inte ens 5 tecken tar någon längre tid att knäcka med nyare datorer. Tar vi lösenordet ”zAe9q7” så är vi nu faktiskt uppe i 1 timme, 23 minuter och 27 sekunder. Så från att gå ifrån 4 tecken till 6 tecken, så har vi utökat antalet kombinationer och gått från 1 sekund till över 1 timme. Ju längre man får jobba med att knäcka ett lösenord desto mindre intressant är det att ge sig på dom.

Det är väl bra? Det kan vara bra om vi slumpar vårt lösenord, eftersom vissa använder sig av en teknik där man samlat ihop vanliga kombinationer i en databas och börjar testa lösenorden mot en databas. Funkar inte det så testar man tecken för tecken i en så kallade Brute Force-attack, där man går igenom alla tänkbara teckenkombinationer.

Ibland så kan det vara svårt att komma ihåg en slumpat lösenord. Vi testar och tar ett ord eller ett företag. I detta fall testar vi med ”Fiat” så tar det över 1 sekund att hitta det, ungefär som ett slumpat ord. Lägger vi till ”en” till lösenordet så får vi ”enFiat” så tar det lite över 29 minuter eftersom vi har nu 6 tecken med alla kombinationer. Vårt tidigare lösenord så visade vi att ”zAe9q7” tog över 1½timme med lika många tecken. Vad är skillnaden? Vi har lagt till en parameter som man måste ta hänsyn till när man ska knäcka lösenord och det är siffror.

Vi börjar leka lite med att ta ett fabrikat och en modell istället, det är nästan lika lätt som att bara komma ihåg ett fabrikat. I mitt fall väljer jag ”Fiat126” som lösenord och det tar då upp till 2 dagar att komma fram om man går igenom alla tecken, stora och små tillsammans med siffror. Börjar man med bokstaven a och fortsätter upp till z så kommer man inse att ”Fiat126” borde vara snabbare att hitta än ”Zzzz126” och därför är det osäkert att ange en exakt tid. Är lösenordet ”Zzzz126” snabbare att hitta ”Aaaa126”? Det beror på om jag valt att gå från Z till A eller A till Z när jag skrivit min kod för att knäcka lösenordet.

Men för den som känner mig och vet att jag gillar Fiat och modellen 126:an gör det lätt att gissa, då man kanske enbart behöver göra några försök ”fiat126” eller Fiat126”. Så att använda lösenord som är förknippat med en själv tar tid för någon utomstående att knäcka, medan vänner och bekanta som känner en har det lättare. Här är det vanligt att man testar familjemedlemmar, intressen och födelsedagar. Därför bör sådant undvikas om man vill behålla information för sig själv för ens bekanta.

Nu har jag visat lösenorden när man kommer till bokstäver och siffror, men vi har ytterligare en parameter att lägga till våra lösenord och det är vissa specialtecken. Kompletterar vi vårt lösenord med ett specialtecken till ”Fiat126!” så kommer lösenordet ta upp mot 14 år att gå igenom. Vi har inte förändrat nämnvärt svårighetsgraden på vårt lösenord att komma ihåg, vi har en bil, modell som består av siffror och ett utropstecken i detta fall som ett specialtecken. Byter vi modell till ”Fiat1800!” så har vi lagt till ett tecken som gör att det tar ännu längre tid att gå igenom möjliga kombinationer eftersom för varje tecken vi lägger till så tar det längre tid och kombinationerna ökar drastiskt. Översätt ”Fiat” till ”rövarspråket” så får vi lösenordet ”Fofiatot126!” som då blir 12 tecken långt istället för 8, och tidsmässigt gått från år till millenium.

Man kan även tänka sig att man byter ut olika bokstäver mot siffror. Tar man ordet ”Siffror” så kan vi byta ut ”i” mot ”1” och ”o” mot ”0” (nolla) så får vi lösenordet ”S1ffr0r” som då tar över 3 dagar att hitta. Vi byter ut ”i” mot ”!” där man kan tänka sig ett upp och nedvänt i så är vi genast upp på över 1 månad att hitta lösenordet. Små kluriga förändringar som gör att det tar längre tid att prova knäcka lösenord.

När man kommer till användandet av specialtecken så är det viktigt att ni tänker på att de går att nå ifrån er smartphone, så välj specialtecken med omsorg så ni inte utesluter att kunna logga in från en mobiltelefon.

Hur kan vi bygga säkrare unika lösenordskombinationer?

Eftersom vi inte vet hur olika webbsidor sparar ner lösenorden i en databas så kan vi inte vara säkra på hur lösenorden hanteras. Det bästa är att ha unika lösenord som bara fungerar på respektive hemsida där den ska användas. När man krypterar ett lösenord så brukar man använda sig av SALT för att lägga till flera tecken till lösenordet, innan det krypteras och det såg vid tidsmässigt vara en fördel ovan. Mitt lösenord ”Fiat126!” skulle få lite extra ”SALT” och kanske krypteras som ”Fiat126!Velomobile”. Vi går från 8 tecken till 18 tecken och databasen blir mycket jobbigare att knäcka tills man hittat ”SALT”-ordet.

SALT:et syns inte för användaren, men det hjälper till att göra lösenordet unikt i databasen, eftersom mitt SALT är ”Velomobile” och det blir då 10st tecken extra. Bara ordet ”Velomobile” tar upp till 7 år att hitta, lägg då till ditt egna lösenord.

Om alla skulle använda samma system för att kryptera lösenordet så skulle alla som har samma lösenord få samma krypteringssträng och då är vi tillbaka på ruta ett. Det är viktigt för webbutvecklare att utnyttja olika SALT på olika hemsidor. Allt för att försvåra om databasen kommer i orätta händer. Jag som utvecklar är egentligen ointresserad av om någon har ”Fiat126!” eftersom jag förhoppningsvis krypterar och SALT:ar lösenordet först och jämför mot databasen där lösenordet är undansparat krypterat och det ät det jag är intresserad av att det ska matcha.

Vi kan även använda unika SALT när vi ska fundera ut egna lösenord. Om vi tar t.ex. en inloggning på Facebook så kan vi utnyttja förkortningar och årtal för att SALT:a lösenordet. T.ex. kan vi förkorta Facebook med ”FB” och lägga till när ens ena barn är fött. Vi tar ett valfritt grundord t.ex. ”fiat” och lägger till ”FB” och ”02” och få ut lösenordet ”fiatFB02”. Tar vi inloggning till Aftonbladet så kan det då bli ”fiatAB02”. Vi har nu två lösenord som bygger på ett system som kombinerar versaler och gemener tillsammans med siffror och då 218 triljoner kombinationer per lösenord. Dagens datorer har dock gått igenom alla varianter och hittar det på lite över 7 månader. Komplettera det med ett specialtecken ”fiatAB02!” så har vi ett lösenord som jag inte kommer att hitta under min livstid när artikeln skrevs.

Genom att komma på egna system an vi börja använda unika lösenord på varje sida. Vi behöver bara komma ihåg ett grundord, del utav namnet på sidan och kanske ett årtal. Vill man så kan man byta ut Facebook till ”F8” och Aftonbladet till ”A11” för att inte göra en så tydlig koppling till Facebook och Aftonbladet. Våra lösenord blir då ”fiatF802” och ”fiatA1102”. Kommer ni på var ”F8” och ”A11” kommer ifrån? Tips, räkna bokstäver i företagsnamnet…

Man kan även tänka sig att man använder ett mumbojumbo grundord, t.ex. ”Fvddfmidmo”. Svårt att komma ihåg för den ovana, men kan man texten till Carolas ”Främling” så är det första bokstaven i varje ord. Skriv på en lapp ”Främling” och lägg på skrivbordet för att komma ihåg, ingen kommer veta var och hur långt du har valt. Kan dock bli lite lustigt om man sitter och nynnar för kollegorna på ”Främling” när man ska logga in… eller varför inte ta en favoritdikt eller bibelcitat.

Kommer man över flera databaser med lösenord där inte lösenorden är krypterade så kommer man kunna hitta systemet, men idag så har de flesta seriösa sidor sina lösenord krypterade på något sätt i deras databas och därför bör det kunna fungera med grundord och kombinationer av vilken sida man ska logga in på.

Problemet med att vissa företag tvingar användare att byta lösenord varannan månad gör att man får svaga lösenord. Normal förfarande så använder man samma grundord, sen lägger man på ett löpnummer. ”Fiat1”, blir ”Fiat2” och tillslut så kommer jag veta att ”Fiat3” är det som jag testar om ”Fiat2” har slutat att fungera. Genom att jag har ett system med minst 8-10 tecken, där jag utnyttjar stora och små bokstäver, kombinerat med siffror och specialtecken, kommer göra lösenordet mer svårknäckt än att jag ska behöva byta det 6ggr om året.

Kan man se hur säkerheten fungerar på hemsidor och om lösenordet krypteras?

En sida som skickar ut ett glömt lösenord i klartext kan man räkna ut själv att de är sparade okrypterade, eftersom krypteringen bör vara av sådan typ att den inte går att dekryptera. Dessa sidor bör ni välja helt unika lösenord som inte följer något system, för att vara helt säkra på att inte era eventuella system kan röjas.

Om man får en begränsning hur kort/långt ett lösenord så använder man en tråkig krypteringsalgoritm. Använder sidan algoritmen SHA265 så kommer ditt lösenord bestå av 64 tecken i databasen, oavsett om ditt lösenord är 4 eller 32 tecken när det sparas ner. Därför anser jag att man inte behöver begränsa lösenordets längd mer än kanske begränsa det till 64 tecken. Men även här kan jag som webbutvecklare bara ta hand om de 64st första tecknen i min krypterade teckensträng.

Med inblick av det jag tidigare skrivit av vikten att blanda stora och små tecken, siffor och då specialtecken i sina lösenord, så är det tråkigt om man nu inte kan välja ett lösenord med specialtecken. Sidor som är begränsade till att bara utnyttja bokstäver och siffor hjälper då inte till att man kan skapa krångliga och säkra lösenord. Det borde inte ligga på systemutvecklaren att begränsa möjligheten, utan ligga i vårt intresse att skapa valfria lösenord som är unika och krångliga.

I detta med lösenord så finns det alltid ett men… Mer om det i en annan artikel som tar upp hur allt hänger ihop från webbläsare till server. Där jag kommer visa att hur krångliga och säkra lösenord faktiskt kommer att kunna vara synliga någonstans från webbläsaren tills den når servern. Både för systemägare eller om vi jagar gratis WIFI på stan.

Denna artikel är skriven av Tommy Leandersson.

Tags

Leave a Comment

Your email address will not be published. Required fields are marked *