Lösenord

Ett lösenord är ett eller flera ord eller en kombination tecken som är hemliga, för att möjliggöra autentisering. I datorsammanhang är det vanligt att lösenordet bildas av nonsensartade kombinationer av tecken. Lösenord som är avsedda att bestå endast av siffror kallas ofta PIN-kod (från engelska: "personal identification number"). Lösenord som är avsedda att hanteras automatiskt (i allmänhet bestående av mycket stora tal) kallas för nycklar.

Den som känner till lösenordet kan använda det för att autentisera sig själv i något sammanhang, antingen för att visa att han eller hon tillhör en betrodd grupp eller för att bekräfta sin identitet, såsom för inloggningen till ett e-postkonto.

Självständiga lösenord och komplement
Lösenord kan förekomma för sig själva, som Ali Babas ”Sesam, öppna dig” eller en portkod. Vanligast är dock att lösenordet är ett komplement, som i fallet kod till bankomater, där både ett fysiskt kort och ett lösenord krävs för att ta ut pengar (här är det fråga om tvåfaktorautentisering). I datorsammanhang är lösenordet ofta ackompanjerat av ett användarnamn, och båda måste då anges korrekt för att tillträde ska ges. Också om användarnamnet har annan användning fungerar det ofta också som en utökning av lösenordet.

Lösenord i datorsammanhang
Vid en direktsändning i TV under 1970-talet kunde en tittare se när programmets talare matade in lösenordet i datorn. Efter detta skrivs lösenord aldrig ut i klartext utan endast symboltecken eller inga tecken alls visas för den som skriver in lösenordet.

Ju längre och mer avancerade lösenord man använder, desto svårare är det att knäcka dem. Samtidigt blir de svårare att minnas, varför krav på långa lösenord ofta leder till längre men enklare lösenord, lösenord som byts mer sällan och används i många olika system (varav en del kan vara opålitliga) eller lösenord som varieras på triviala sätt.

Lösenord i Unix
Lösenordens utveckling i Unix ger en bild av problematiken.

För att ett lösenord skall kunna kontrolleras måste det sparas på något sätt på det system som skall autentisera användaren. I operativsystemet Unix sparades lösenordet traditionellt i en fil som kunde läsas av alla användare, men i en form ur vilken lösenordet inte kan härledas: nollor och ett par angivna tecken (”salt”) krypterade med lösenordet. Krypteringsalgoritmen (DES) var modifierad på ett sätt som skulle göra krypteringen – och därmed masstest av lösenord – långsam också på specialkonstruerad maskinvara. En angripare som gissar lösenord måste testa lösenordet skilt för varje användare eller för varje salt.

Under 1990-talet började datorerna bli så kraftfulla att de traditionella Unix-lösenorden på högst 8 tecken ofta inte längre räckte, om angriparen fick testa lösenord på sin egen maskin. Ett välvalt lösenord på 6 tecken (26×6 ger drygt 68 miljarder möjligheter) räcker fortfarande långt, men typiska lösenord börjar vara möjliga att knäcka på en uppsättning hemdatorer. Då flyttades lösenorden över till en fil som endast kan läsas av administratören och vissa serverprogram. Därmed kan antalet gissningar per sekund begränsas, i den mån filen inte läcker ut. Parallellt med detta utvecklade man andra algoritmer, som framförallt gav möjlighet till längre lösenord, som inte är lika känsliga för hur de väljs.

Då man relaterar lösenordets längd till dess styrka gäller beräkningen i huvudsak lösenord som är att betrakta som en slumpmässig samling tecken. Man kan åstadkomma lösenord som kommer nära sådana till exempel genom att ta den andra bokstaven i varje ord i en ramsa, som inte är allmänt känd, och byta vissa bokstäver mot andra tecken: ”minns att gå till butiken varje dag!” kunde bli ”it8iuAd!” (åäö stöds inte). Beroende på språket man använder kan dock vissa tecken ha större sannolikhet än andra; lösenorden är alltid åtminstone något sämre än om tecknen valts helt slumpmässigt (om t.ex. ordens andra bokstav tenderar att vara en vokal lönar det sig att konstruera lösenordet på annat sätt).

Om lösenordet är ett riktigt ord, en kort kombination av ord, ett felvänt ord, ett namn, ett telefonnummer eller liknande kan det ofta gissas utan större ansträngning. Det finns datorprogram som givet en lista på lösenord i den form de sparats går igenom en uppsättning ordböcker, ord- och namnlistor och information som kan fås om användaren, modifierar dessa enligt givna mönster och testar alla kombinationer (ordboksattack). Med tillgång till lösenordsfilen kan miljoner möjligheter testas utan problem.

Ett mindre antal triviala lösenord, inklusive triviala variationer på tillgängligt användardata (kattens namn baksomfram) kan testas utan tillgång till lösenordsfilen i den mån en dator tillåter inloggning över nätet. För att minska exponeringen för dåliga lösenord undviker man att offentligt berätta användarnamnen, och undviker att tillåta nätinloggning med kända användarnamn (root, guest etc.).

Med nya algoritmer har man blivit av med begränsningen till åtta tecken. Eftersom de "nästan slumpmässiga" teckenkombinationerna man förut rekommenderade är svåra att minnas, i synnerhet då lösenordets längd ökar, har man övergått till att rekommendera lösenfraser. Då strävar man inte efter slumpmässighet, utan att genom tillräcklig längd göra frasen svårgissad. Också vad gäller fraser skall man undvika sådant som kan hittas i digitaliserad form, till exempel kända citat eller rader ur sånger och ramsor. Lösenfrasen måste vara betydligt längre än ett "nästan slumpmässigt" lösenord, ungefär tre gånger längre med en normal fras, alltså drygt tjugo tecken istället för åtta.

Istället för lösenord kan man i en del system använda långa maskinellt genererade nycklar, möjligen i sin tur krypterade med hjälp av ett lösenord. Detta används till exempel av SSH, SSL och Kerberos. Nycklarna kan förvaras i en fil på den egna datorn eller en server, på en minnessticka eller på ett smartkort (vanligen specialkonstruerat för uppgiften).

Lösenordens styrka
Lösenord knäcks oftast genom Brute force- och ordboksattacker, men även "rainbow tables" kan användas för att knäcka dem. Oftast blir lösenord som krypteras till databaser och operativsystem krypterade i MD5 eller SHA-1.

Hur starkt ett lösenord är beror teoretiskt sett på dels hur många gissningar som i medeltal krävs innan man gissar rätt, dels hur lång tid en enskild gissning tar. Vanligen förvaras en "hash" av lösenordet på serverdatorn som kontrollerar lösenordet då man loggar in. Så länge hash-filen är skyddad kan man med serverprogramvaran begränsa antalet gissningar per tidsenhet, till exempel till tre försök på tre sekunder, det vill säga ungefär hundratusen gissningar per dygn. Om en angripare får tag på hash-filen kan han med en egen dator pröva hundratals miljoner gissningar per sekund, beroende på vilken hashfunktion som använts, angriparens datorresurser med mera. Ofta används så kallat salt för att tvinga angriparen att pröva lösenorden skilt för varje användare.

I praktiken har många av användarna i varje system svaga lösenord, som kan gissas med ordboksattacker.

För slumpmässiga automatiskt genererade lösenord fås styrkan genom denna formel. Om lösenordet ens till en del kan gissas ger tabellen ingen information om dess styrka.

b = "bas"
t = "antal tecken"
k = "kombinationer"

Här räknas endast a–z som bokstäver. Andra bokstäver hanteras inte alltid ändamålsenligt av de berörda datorprogrammen, till exempel kan de bytas mot någon av de förstnämnda eller ignoreras då lösenordet prövas.

När man använder fraser som lösenord kan den som skall bryta lösenordet utnyttja att tecknen skall bilda ord, eller att vissa bokstavskombinationer är vanligare än andra. Om man antar att varje bokstav tillför två bitar information som inte kan härledas av omgivande bokstäver motsvarar en fras på femton tecken ett välvalt (d.v.s. lika svårgissat som ett slumpgenererat) lösenord med sex gemener (a–z) eller fem godtyckliga tecken. Ett sådant lösenord ger inte tillräckligt skydd om angriparen kan pröva lösenorden på en uppsättning egna maskiner.

Metoder för att komma runt säkerheten 
Skyddet ett lösenord på datorn erbjuder behöver inte alltid vara säkert bara för att lösenordet är starkt, de kan ibland kringgås. Datormiljön erbjuder speciella utmaningar så som avlyssning av trafik, tangentloggning och även återställningfunktioner som ibland kan användas för att komma runt ett lösenord, även programsårbarheter kan användas för att komma runt lösenord.

Metoder för att skapa starka lösenord 
För att skapa starka lösenord kan man blanda versaler, gemener, siffror och specialtecken: använda många typers tecken. Man bör undvika kända ord och namn, eller ord och namn som någon utomstående kan koppla till lösenordets innehavare då det är lätt att gissa sig till. Ett starkt lösenord bör bestå av minst 12 tecken. Angripare känner till de vanligaste lösenorden som används, därför är det viktigt att använda ovanliga lösenord. Ibland hackas företags databaser med lösenord med följden att användaruppgifter och lösenord läcker till angripare. Därför bör man använda unika lösenord för varje tjänst.

Ett knep för att minnas ett starkt lösenord som är långt, opersonligt, ovanligt och unikt är att använda sig av en fras eller mening istället för ett ord.

För att skapa ett starkt lösenord kan man ta hjälp av lösenordshanterare.

Säker lösenordhantering 
Det är inte ovanligt att personer delar med sig av sina lösenord till familj, partner och vänner. Det anses dock riskabelt då relationer kan ändras och det är svårt att veta om den som fått reda på lösenordet hanterar informationen ansvarsfullt.

Webbläsare kan erbjuda funktionen att spara lösenord vilket är användarvänligt men riskabelt då personer som lånar datorn, eller stjäl den, kan se lösenorden och ta kontroll över dem. Lösenordet som används för tillgång till e-post anses vara extra viktigt att skydda då det är en adress som ofta används för att återställa inloggningsuppgifter till andra webbsidor och tjänster. Det innebär att om e-posten hackas kan angriparen lätt byta lösenord även på andra tjänster.

Allt fler konton och tjänster erbjuder tvåfaktorsautentisering. Det innebär att användare, utöver sitt lösenord, behöver ytterligare en kod för att logga in. Användandet av tvåfaktorsautentisering stärker säkerheten väsentligt.

Det finns tjänster som hjälper användare att skapa och minnas sina olika lösenord, så kallade lösenordshanterare. Lösenordshanterare är en ett program som sparar alla lösenord i ett krypterat valv. Användaren behöver således bara komma ihåg ett enda lösenord – lösenordet till lösenordshanteraren. Exempel på lösenordshanterare är ,  och .

Ett lösenord blir inte automatiskt mindre säkert med tiden. Lösenord behöver bara bytas om lösenordet är svagt, man vet eller tror att lösenordet blivit röjt eller om man får kännedom om att en webbsida eller tjänst man använder har råkat läcka lösenord.

Se även
Lösen
Have I Been Pwned?

Källor

Datasäkerhet