Blog

i ett tidigare inlägg diskuterade Zix | AppRiver hur de ansvariga för SolarWinds-attacken hade missbrukat tokens och certifikat som en del av deras infektionskedja. De skadliga aktörerna missbrukade samma typer av tillgångar i ytterligare kampanjer riktade mot andra enheter. Detta resulterade i en bekräftad certifikatsäkerhetsincident hos en e-postsäkerhetsleverantör.

Zix | AppRiver kände att det var nödvändigt att ge sina kunder en serie artiklar som diskuterar de berörda typerna av autentiseringsmetoder och hur de fungerar. Vi börjar med tokenbaserad autentisering.

tokenbaserad autentisering: en översikt

tokenbaserad autentisering adresserar några av begränsningarna för sessionsbaserad autentisering. I det senare skapar en server en session för en användare när de loggar in. Den lagrar sessions-ID i en cookie, som åtföljer alla efterföljande förfrågningar om användaren förblir inloggad. Servern verifierar sedan en användares identitet genom att jämföra cookien med sessionsdata som lagras i minnet.

en illustration av sessionsbaserad autentisering. (Källa: Sherry Hsu)
en illustration av sessionsbaserad autentisering. (Källa: Sherry Hsu)

problemet här är att sessionsbaserad autentisering lider av vissa nackdelar. För det första kräver det att servern lagrar sessioner i sitt minne. Det finns också frågan om cookies som fungerar på flera enheter i olika medier (till exempel webb och mobil).

det är där tokenbaserad autentisering kommer in. Denna form av autentisering innebär ett program som ger en signerad token till klienten vid validering av en uppsättning användaruppgifter. Klienten lagrar den token och skickar den med varje begäran, vid vilken tidpunkt servern verifierar token och skickar information.

 en illustration av tokenbaserad autentisering med en JSON Web Token (JWT). (Källa: Sherry Hsu)
en illustration av tokenbaserad autentisering med en JSON Web Token (JWT). (Källa: Sherry Hsu)

i den meningen skiljer sig tokenbaserad autentisering från sessionsbaserad autentisering genom att den är statslös. Det handlar inte om att lagra information om en användare på en server eller i en session. Den lagrar data i token på klientsidan.

fördelar och utmaningar med tokenbaserad autentisering

tokenbaserad autentisering kommer med många fördelar. Chop-Chop noterar att tokens fungerar på olika webbplatser och medier, vilket skapar en möjlighet för en större mångfald av användare—särskilt de som använder mobila enheter. Utöver allt detta står tokens för en användares referenser i processen att ge tillgång till data; någon som komprometterade en token skulle inte automatiskt få tillgång till den drabbade användarens kontouppgifter.

med det sagt är tokenbaserad autentisering inte utan sina utmaningar. Devbridge Group noterar att vissa sessionstoken inte genereras på ett säkert sätt, till exempel. Detta gör det möjligt för en angripare med ett tillräckligt stort urval av sessions-id att räkna ut ett mönster och gissa tokens för en större pool av användare. Det finns också frågan om angripare som utnyttjar osäkra tokenlager, flera inloggningar och/eller långa valideringstider för token för att stjäla autentiseringshemligheter.

hur man säkert använder tokenbaserad autentisering

bekräfta riskerna som diskuterats ovan, här är några bästa metoder för att säkert använda tokenbaserad autentisering:

  1. generera starka tokens. I synnerhet rekommenderar Devbridge att tokens har en stor uppsättning möjliga värden, innehåller en viss pseudorandomness och består av minst 16 byte i längd.
  2. ge tokens ett utgångsdatum. Det är viktigt att ställa in villkor för hur länge en token förblir giltig, noterar Auth0. Självklart, om en användare fortfarande är aktiv, kan token automatiskt förnyas. Men det finns också visdom att låta en token löpa ut när användaren loggar ut och avslutar token oavsett vad efter en viss tid har gått.
  3. Tillåt flera inloggningar. Som nämnts av Devbridge är det möjligt att använda nyckelattribut för att förhindra parallella autentiseringar där mer än en person interagerar med samma användarkonto samtidigt.
  4. säkert lagra tokens. Lokal lagring är inte vägen att gå här. DEV Community rekommenderar användningen av en cookiepolicy som heter SameSite för att specificera villkoren under vilka en cookie kan skickas i en begäran om flera domäner. En strikt samesite policy tillsammans med kravet att människor måste en webbläsarversion som stöder denna funktion kommer att bidra till att hålla sessionstoken säkra.

Lämna ett svar

Din e-postadress kommer inte publiceras.