Lösenord har använts i tusentals år som ett sätt att identifiera oss för andra och på senare tid för datorer. Det är ett enkelt koncept – en delad information som hålls hemlig mellan individer och som används för att ”bevisa” identitet.
Lösenord i IT-sammanhang uppstod på 1960-talet med stordatorer – stora centralt drivna datorer med fjärrstyrda ”terminaler” för användaråtkomst. De används nu för allt från den PIN-kod vi anger i en bankomat till inloggning på våra datorer och olika webbplatser.
Men varför måste vi ”bevisa” vår identitet för de system vi har tillgång till? Och varför är det så svårt att få rätt lösenord?
Vad är ett bra lösenord?
Intill relativt nyligen kunde ett bra lösenord vara ett ord eller en fras med så lite som sex till åtta tecken. Men nu har vi riktlinjer för minsta längd. Detta beror på ”entropi”.
När vi talar om lösenord är entropi ett mått på förutsägbarhet. Matematiken bakom detta är inte komplicerad, men låt oss undersöka det med ett ännu enklare mått: antalet möjliga lösenord, som ibland kallas ”lösenordsutrymmet”.
Om ett lösenord med ett tecken endast innehåller en liten bokstav finns det endast 26 möjliga lösenord (”a” till ”z”). Genom att inkludera stora bokstäver ökar vi vårt lösenordsutrymme till 52 möjliga lösenord.
Lösenordsutrymmet fortsätter att expandera när längden ökar och andra teckentyper läggs till.
Om man tittar på ovanstående siffror är det lätt att förstå varför vi uppmuntras att använda långa lösenord med stora och små bokstäver, siffror och symboler. Ju mer komplext lösenordet är, desto fler försök behövs för att gissa det.
Problemet med att vara beroende av lösenordets komplexitet är dock att datorer är mycket effektiva på att upprepa uppgifter – inklusive att gissa lösenord.
Förra året sattes ett rekord för en dator som försökte generera alla tänkbara lösenord. Den uppnådde en hastighet på över 100 000 000 000 000 gissningar per sekund.
Med hjälp av denna datorkraft kan cyberbrottslingar hacka sig in i system genom att bombardera dem med så många lösenordskombinationer som möjligt, i en process som kallas brute force-attacker.
Och med molnbaserad teknik kan man gissa ett lösenord med åtta tecken på så lite som 12 minuter och det kostar så lite som 25 US-dollar.
Och eftersom lösenord nästan alltid används för att ge tillgång till känsliga uppgifter eller viktiga system motiverar detta cyberbrottslingar att aktivt söka efter dem. Det driver också en lukrativ onlinemarknad som säljer lösenord, varav en del kommer med e-postadresser och/eller användarnamn.
Hur lagras lösenord på webbplatser?
Lösenord på webbplatser lagras vanligtvis på ett skyddat sätt med hjälp av en matematisk algoritm som kallas hashing. Ett hashatat lösenord är oigenkännligt och kan inte omvandlas tillbaka till lösenordet (en oåterkallelig process).
När du försöker logga in hashasas lösenordet du anger med samma process och jämförs med den version som lagras på webbplatsen. Denna process upprepas varje gång du loggar in.
Till exempel får lösenordet ”Pa$$$w0rd” värdet ”02726d40f378e716981c4321d60ba3a325ed6a4c” när det beräknas med hjälp av hashningsalgoritmen SHA1. Prova själv.
När man står inför en fil full av hashade lösenord kan man använda sig av en brute force-attack där man prövar alla kombinationer av tecken för en rad olika lösenordslängder. Detta har blivit så vanligt att det finns webbplatser som listar vanliga lösenord tillsammans med deras (beräknade) hashade värde. Du kan helt enkelt söka efter hashvärdet för att avslöja motsvarande lösenord.
Stöld och försäljning av lösenordslistor är numera så vanligt att en särskild webbplats – haveibeenpwned.com – finns tillgänglig för att hjälpa användare att kontrollera om deras konton är ”i farten”. Detta har vuxit till att omfatta mer än 10 miljarder kontouppgifter.
Om din e-postadress finns med på denna webbplats bör du definitivt ändra det upptäckta lösenordet, liksom på alla andra webbplatser där du använder samma inloggningsuppgifter.
Är mer komplexitet lösningen?
Man skulle kunna tro att med så många lösenordsintrång som sker dagligen skulle vi ha förbättrat våra rutiner för val av lösenord. Tyvärr har förra årets årliga lösenordsenkät från SplashData visat på små förändringar under fem år.
I takt med att datorkapaciteten ökar verkar lösningen vara ökad komplexitet. Men som människor är vi inte skickliga på (eller motiverade att) komma ihåg mycket komplexa lösenord.
Vi har också passerat den punkt där vi bara använder två eller tre system som kräver ett lösenord. Det är nu vanligt att vi har tillgång till ett stort antal webbplatser som alla kräver ett lösenord (ofta av varierande längd och komplexitet). En nyligen genomförd undersökning visar att det i genomsnitt finns 70-80 lösenord per person.
Den goda nyheten är att det finns verktyg för att lösa dessa problem. De flesta datorer har numera stöd för lagring av lösenord i antingen operativsystemet eller webbläsaren, vanligtvis med möjlighet att dela den lagrade informationen mellan flera enheter.
Exempel är Apples iCloud Keychain och möjligheten att spara lösenord i Internet Explorer, Chrome och Firefox (även om det är mindre tillförlitligt).
Password managers som KeePassXC kan hjälpa användarna att generera långa, komplexa lösenord och lagra dem på en säker plats för när de behövs.
Denna plats måste fortfarande skyddas (vanligtvis med ett långt ”huvudlösenord”), men genom att använda en lösenordshanterare kan du ha ett unikt, komplext lösenord för varje webbplats du besöker.
Detta förhindrar inte att ett lösenord stjäls från en sårbar webbplats. Men om det stjäls behöver du inte oroa dig för att ändra samma lösenord på alla dina andra webbplatser.
Det finns naturligtvis sårbarheter i dessa lösningar också, men det är kanske en historia för en annan dag.