Uwierzytelnianie wieloskładnikowe w ASP.NET Core
W poprzedniej lekcji dostosowano i rozszerzono ASP.NET Core Identity. W tej lekcji dowiesz się więcej na temat uwierzytelniania wieloskładnikowego i sposobu implementacji w usłudze Identity.
Uwierzytelnianie wieloskładnikowe
Uwierzytelnianie wieloskładnikowe (MFA) to proces, w którym użytkownik jest monitowany o dodatkowe formy identyfikacji podczas logowania. Ten monit może dotyczyć kodu z aplikacji, wartości tokenu sprzętowego lub skanowania biometrycznego. Jeśli potrzebujesz drugiego typu uwierzytelniania, zabezpieczenia są rozszerzone.
Dowód wymagany do uwierzytelniania jest podzielony na trzy typy:
- Coś, co wiesz, jak hasło lub pytanie zabezpieczające.
- Coś, co masz, na przykład token sprzętowy lub aplikację na telefonie.
- Coś, co stanowi o twojej tożsamości, jak odcisk palca lub skan twarzy.
Znaczna część skuteczności uwierzytelniania wieloskładnikowego wynika z używania różnych typów uwierzytelniania. Przeciwnik może być w stanie uzyskać dostęp do wielu rzeczy, które znasz, takich jak hasło i pseudonim dzieciństwa. Jednak trudniej jest naruszyć zarówno coś, co wiesz, jak i coś, co masz lub jesteś.
Jednorazowe hasło oparte na czasie
Hasło jednorazowe oparte na czasie (TOTP) to dobrze znany algorytm, który generuje unikatowe kody liczbowe wygasające po 30 sekundach. Algorytm przyjmuje dwa dane wejściowe, bieżący czas i unikatowy klucz.
Użytkownik wprowadza klucz do aplikacji zgodnej z protokołem TOTP podczas rejestrowania. Takie aplikacje obejmują:
- Microsoft Authenticator.
- Google Authenticator.
- Wiele innych!
Wprowadzenie klucza do aplikacji można usprawnić za pomocą kodu QR. Aplikacja używa klucza i bieżącego czasu do generowania i wyświetlania unikatowych kodów co 30 sekund. Jeśli kod generowany przez aplikację jest zgodny z oczekiwaniami serwera, uwierzytelnianie zakończy się pomyślnie. Algorytm został zaprojektowany tak, aby tolerował drobne różnice między zegarami na urządzeniu a serwerem.
Jako forma uwierzytelniania wieloskładnikowego użytkownik jest zwykle proszony o kod TOTP razem z hasłem. Hasło jest coś, o czym wiesz, a kod jest dowodem coś, co posiadasz. Jest to jedyny sposób generowania kodu przy użyciu klucza przechowywanego w aplikacji.
Domyślnie szablony projektów ASP.NET Core korzystające z tożsamości obejmują obsługę uwierzytelniania wieloskładnikowego dla aplikacji uwierzytelnienia TOTP. Szablon Razor Pages formularza aplikacja uwierzytelniająca wyświetla 32-znakowy klucz rejestracji do inicjacji wartości tokenu. Jednak szablon domyślnie nie generuje kodu QR.
Notatka
Kody wysyłane przez wiadomości SMS są powszechną alternatywą dla protokołu TOTP. W końcu coś, co masz, to telefon odbierający wiadomość SMS . Jednak SMS jako MFA jest stosunkowo łatwy do pokonania przez przeciwnika. W związku z tym kody SMS nie są już uważane za bezpieczną formę uwierzytelniania wieloskładnikowego.
Streszczenie
W tej lekcji przedstawiono, czym jest uwierzytelnianie wieloskładnikowe i jak jest ono domyślnie implementowane w usłudze ASP.NET Core Identity. W następnej lekcji możesz dostosować istniejącą Skonfigurować aplikację uwierzytelniania formularza, aby podać kod QR zawierający klucz rejestracji.