Multifaktorautentisering i ASP.NET Core

Slutförd

I föregående lektion anpassade du och utökade ASP.NET Core identitet. I den här lektionen får du lära dig mer om multifaktorautentisering och hur det implementeras i Identitet.

Multifaktorautentisering

Multifaktorautentisering (MFA) är en process där en användare uppmanas att ange ytterligare former av identifiering vid inloggning. Den här uppmaningen kan vara för en kod från en app, ett maskinvarutokenvärde eller en biometrisk genomsökning. När du behöver en andra typ av autentisering förbättras säkerheten.

Beviset som krävs för autentisering kategoriseras i tre typer:

  • Något du känner till, till exempel ett lösenord eller en säkerhetsfråga.
  • Något du har, till exempel en maskinvarutoken eller en app på telefonen.
  • Något du är, som ett fingeravtryck eller ansiktsskanning.

Mycket av MFA:s effektivitet kommer från att använda olika typer av autentisering. En angripare kanske kan få tillgång till flera saker du vet, till exempel ditt lösenord och ditt barndoms smeknamn, men det är svårare att kompromettera både något du vetoch något du har eller är.

Tidsbaserat engångslösenord

Tidsbaserat engångslösenord (TOTP) är en välkänd algoritm som genererar unika numeriska koder som upphör att gälla efter 30 sekunder. Algoritmen tar två indata, den aktuella tiden och en unik nyckel.

Vid registrering anger användaren nyckeln i en TOTP-kompatibel app. Sådana appar omfattar:

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

Att ange nyckeln i appen kan effektiviseras med en QR-kod. Appen använder nyckeln och aktuell tid för att generera och visa unika koder var 30:e sekund. Om koden som appen genererar matchar vad servern förväntar sig lyckas autentiseringen. Algoritmen är utformad för att vara förlåtande för mindre skillnader mellan klockorna på enheten och servern.

Som en form av MFA uppmanas användaren vanligtvis att ange en TOTP-kod i kombination med ett lösenord. Lösenordet är något du känner till och koden är ett bevis på något du har. Det beror på att det enda sättet att generera koden är med nyckeln som lagras i appen.

Som standard innehåller ASP.NET Core projektmallar som använder Identity stöd för multifaktorautentisering för TOTP-autentiseringsappar. Razor Pages-mallens formulär Konfigurera autentiseringsapp visar en registreringsnyckel på 32 tecken för att ange tokenvärdet. Mallen genererar dock inte någon QR-kod som standard.

Anteckning

Koder som skickas via SMS är ett vanligt alternativ till TOTP. När allt kommer kommer, telefonen som tar emot SMS-meddelandet är något du har. SMS som MFA är dock relativt enkelt för en angripare att besegra. Därför betraktas SMS-koder inte längre som en säker form av MFA.

Sammanfattning

I den här lektionen har du lärt dig vad multifaktorautentisering är och hur den implementeras i ASP.NET Core identitet som standard. I nästa lektion kan du anpassa det befintliga formuläret Konfigurera autentiseringsapp för att tillhandahålla en QR-kod som innehåller registreringsnyckeln.