Lösenord försvinner inte
Förra året fanns det nyhetsartiklar som cirkulerade på internet och hävdade att stora teknikföretag förenade sig för att eliminera lösenord. Vissa startups deklarerade till och med att lösenord var föråldrade och utdaterade.
Inledning
Förra året fanns det nyhetsartiklar som cirkulerade på internet och hävdade att stora teknikföretag som Apple, Google och Microsoft förenade sig för att eliminera lösenord. Vissa startups deklarerade till och med att lösenord var föråldrade och utdaterade. Efter att ha fördjupat mig i identitetshanteringens område i månader, började jag ifrågasätta validiteten och praktiken i dessa påståenden.
Vad gör ett lösenord?
Vid första anblicken verkar svaret uppenbart: lösenord används för inloggning och identitetsverifiering. Men jag har en annan synvinkel om du betraktar det faktum att lösenord inte verkligen kan verifiera vem du är:
- När en användare loggar in på en webbplats med en e-post och lösenord, har webbplatsen ingen möjlighet att bekräfta den faktiska personen bakom dessa uppgifter. Det kan vara en människa eller till och med en katt.
- Vem som helst kan låsa upp en iPhone med rätt PIN-kod.
I verkligheten är syftet med ett lösenord att anonymt bevisa ägandet av något: ett användarkonto, en enhet eller tillgång till en dörr.
De nuvarande "lösenordsdödarna"
De tidigare nämnda företagen har föreslagit olika "lösenordsdödare." Många hävdar att de är säkrare alternativ som eliminerar behovet av att användare ska komma ihåg komplexa, statiska lösenord under autentisering. Men de flesta av dessa alternativ är inte helt praktiska för att helt ta bort lösenord.
FIDO-autentisering
FIDO (Fast Identity Online) autentisering, som förklaras i den officiella dokumentationen, använder tekniker för offentlig nyckelkryptografi för registrering och inloggning (det är värt att notera att WebAuthn är en kärnkomponent i FIDO2-specifikationerna). På ytan verkar processen tilltalande:
Enkelt, eller hur? Tyvärr finns det ett betydande hinder på vägen: kompatibilitet. När det jämförs med den traditionella kombinationen av "identifierare och lösenord," kräver FIDO-autentisering:
- Webbplatser eller appar som stöder FIDO.
- Webbläsare och/eller operativsystem som stöder FIDO.
- Användarenheter som har en användarvänlig verifieringsmekanism.
Om någon av dessa krav inte uppfylls blir FIDO-autentisering otillgänglig, vilket tvingar fram ett kringgående med andra metoder.
Dessutom, även om alla villkor är uppfyllda, vad kvalificerar som en "användarvänlig verifieringsmekanism" på en enhet? För närvarande kan det innefatta biometriska metoder som fingeravtryck eller ansiktsigenkänning, tillsammans med en reservmöjlighet som en PIN-kod, även kallad lösenord. I slutändan är vi tillbaka på ruta ett.
Tekniskt sett är det inte en "lösenordsdödare" utan snarare en säkrare och användarvänlig autentiserings- eller verifieringsprocess som skyddas av lösenord.
Engångslösenord
Även om namnet innehåller termen "lösenord", är engångslösenord (OTP) inte traditionella lösenord eftersom de är dynamiska. Det finns två populära typer av OTP:
- Tidsbaserat engångslösenord (TOTP): Genererat algoritmiskt med aktuell tid som en källa till unikhet. Det används ofta i multi-faktor-autentisering (MFA) eller 2FA.
- SMS/E-post engångslösenord: Genererat på servern med hjälp av slumpmässiga algoritmer. I vissa länder har det använts flitigt som en primär inloggningsmetod.
TOTPs kanske inte är lika erkända vid namn. Till exempel, när en webbplats uppmanar dig att ställa in MFA och använda en app som Google Authenticator eller Duo för att skanna en QR-kod, använder du troligen TOTP. Du kanske också har märkt att webbplatsen ofta visar en lång "återställningskod" och råder dig att spara den eftersom den bara visas en gång. Vissa webbplatser uppmuntrar till och med användare att skriva ut den på papper. I huvudsak fungerar denna återställningskod som ett långt lösenord.
När det gäller SMS/e-post OTPs kan de vara dyra och opålitliga:
- Att bygga en SMS- eller e-postsändare från grunden kräver installation.
- E-postsändare behöver etablera ett positivt "rykte" för att förbättra leveransbarheten, annars kan sändaren flaggas som skräppost.
- Varje land har sina egna mobiloperatörer, vilket leder till oförutsägbara leveranstider och betydande kostnader för att skicka SMS, särskilt för startups.
Biometri
Termen "biometrisk" avser att endast använda biometriska metoder för nätverksautentisering. I själva verket finns det en grundläggande skillnad jämfört med andra metoder: biometrisk autentisering flyttar den ursprungliga uppgiften att "bevisa ägandet av något" till "bevisa vem du är." På grund av integritetsproblem används biometriska metoder främst för lokal autentisering.
Lösenord är dock inte perfekt
Som vi kan se, "lösenordsdödare" är i huvudsak att dölja lösenord eller använda lösenord som reservalternativ. Här är en sammanfattning av fördelarna med lösenord baserat på vår diskussion:
- Tillgänglighet och kompatibilitet: Lösenord kan användas i olika system och är tillgängliga för ett brett spektrum av användare.
- Kostnadseffektivitet och mångsidighet: Lösenordsbaserad autentisering är generellt kostnadseffektivare än andra metoder och anpassningsbar till olika scenarier.
- Anonymitet och integritet: Lösenord tillåter anonym användning och skyddar användarens integritet.
Men varje mynt har två sidor. Även om lösenord har sina fördelar, innebär det stora sårbarheter att enbart förlita sig på dem för autentisering. De kan vara svåra för slutanvändare att hantera, och om webbplatsägare misslyckas med att följa korrekta säkerhetspraxis, blir lösenord lätta att kompromettera. Farliga säkerhetspraxis inkluderar, men är inte begränsade till:
- Tillåta svaga eller läckta lösenord.
- Brist på enforcement av HTTPS för anslutningar.
- Användning av osäkra hash-algoritmer.
- Misslyckande med att strikt följa beprövade standarder som OAuth eller OpenID Connect (OIDC).
- Exponera databasen för allmänheten.
Slutsats
Jag avser inte att underminera någon av de nämnda autentiseringsmetoderna ovan. Tvärtom, när jag arbetar med att bygga Logto, har jag utvecklat en djup respekt för dessa anmärkningsvärda autentiseringsmetoder och individerna bakom dem.
Icke desto mindre är det omöjligt att uppnå 100% säkerhet. Det vi kan sträva efter är att minska möjligheten för attacker. Ett effektivt tillvägagångssätt är att kombinera lösenordsbaserad autentisering med engångslösenord baserat på aktuell enhet eller miljö, vilket lägger till ett extra lager av verifiering och har använts i stor utsträckning. Genom att dra nytta av styrkorna hos olika autentiseringstekniker kan vi skapa ett flerstegstillvägagångssätt som ger starkare skydd.
Avslutningsvis, istället för att fokusera på modeord som "lösenordsdödare" när lösenord inte verkligen elimineras, skulle det vara mer värdefullt att koncentrera sig på att uppnå en balans mellan säkerhet och användarupplevelse. Detta innebär att förstå styrkorna och begränsningarna hos olika autentiseringsmetoder och implementera dem på ett sätt som säkerställer både användardatans säkerhet och en sömlös användarupplevelse.