Multifaktorautentisering i ASP.NET Core
I föregående lektion anpassade och utökade du ASP.NET Core Identity. I den här lektionen får du lära dig mer om multifaktorautentisering och hur den 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 vet, till exempel ett lösenord eller en säkerhetsfråga.
- Något du har, till exempel en maskinvarutoken eller en app på din telefon.
- Något du är, som ett fingeravtryck eller ansiktsskanning.
En stor del 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. Det är dock svårare att kompromissa med 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.
Användaren anger nyckeln i en TOTP-kompatibel app vid registrering. Sådana appar omfattar:
- Microsoft Authenticator.
- Google Authenticator.
- Många andra!
Att ange nyckeln i appen kan effektiviseras med en QR-kod. Appen använder nyckeln och den aktuella tiden 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 förlåta 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 vet och koden är ett bevis på något du har. Det här är det enda sättet att generera koden med nyckeln som lagras i appen.
Som standard innehåller de ASP.NET Core-projektmallar som använder identitet 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.
Not
Koder som skickas via SMS är ett vanligt alternativ till TOTP. Trots allt är telefonen som tar emot SMS-meddelandet något du har. SMS som MFA är dock relativt lätt 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 Identity 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.