Vícefaktorové ověřování v ASP.NET Core
V předchozí lekci jste přizpůsobili a rozšířili ASP.NET základní identitu. V této lekci se dozvíte o vícefaktorové ověřování a o tom, jak se implementuje ve službě Identity.
Vícefaktorové ověřování
Vícefaktorové ověřování (MFA) je proces, ve kterém se uživateli při přihlašování zobrazí výzva k zadání dalších forem identifikace. Tato výzva může být určená pro kód z aplikace, hodnoty hardwarového tokenu nebo biometrické kontroly. Pokud potřebujete druhý typ ověřování, zabezpečení se vylepšuje.
Ověření požadované pro ověřování je rozdělené do tří typů:
- Něco, co víte, třeba heslo nebo bezpečnostní otázka.
- Něco, co máte, třeba hardwarový token nebo aplikaci na telefonu.
- Něco, co jste, třeba otisk prstu nebo sken obličeje.
Velká část účinnosti vícefaktorového ověřování pochází z používání různých typů ověřování. Nežádoucí osoba může mít přístup k několika věcem, které znáte, jako je vaše heslo a přezdívka dětství. Je ale těžší ohrozit něco, co víte i něco, co máte nebo jste.
Jednorázové heslo založené na čase
Jednorázové heslo (TOTP) založené na čase je dobře známý algoritmus, který generuje jedinečné číselné kódy, jejichž platnost vyprší po 30 sekundách. Algoritmus přebírá dva vstupy, aktuální čas a jedinečný klíč.
Uživatel při registraci zadá klíč do aplikace kompatibilní s toTP. Mezi takové aplikace patří:
- Microsoft Authenticator.
- Google Authenticator.
- Mnoho dalších!
Zadávání klíče do aplikace se dá zjednodušit kódem QR. Aplikace používá klíč a aktuální čas k vygenerování a zobrazení jedinečných kódů každých 30 sekund. Pokud kód, který aplikace vygeneruje, odpovídá tomu, co server očekává, ověření proběhne úspěšně. Algoritmus je navržený tak, aby odlišil menší rozdíly mezi hodinami na vašem zařízení a serverem.
Jako forma vícefaktorového ověřování se uživateli obvykle zobrazí výzva k zadání kódu TOTP v kombinaci s heslem. Heslo je něco, co víte, a kód je důkazem něčeho , co máte. Toto je jediný způsob, jak vygenerovat kód s klíčem uloženým v aplikaci.
Ve výchozím nastavení šablony projektu ASP.NET Core, které používají identitu, zahrnují podporu vícefaktorového ověřování pro ověřovací aplikace TOTP. Formulář konfigurace ověřovací aplikace v šabloně Razor Pages zobrazí registrační klíč 32 znaků pro počáteční hodnotu tokenu. Šablona ale ve výchozím nastavení negeneruje kód QR.
Poznámka:
Kódy odesílané textovými zprávami SMS jsou běžnou alternativou k protokolu TOTP. Koneckonců, telefon, který dostává zprávu SMS, je něco, co máte. SMS jako MFA je ale relativně snadné pro nežádoucí osobu porazit. Kódy SMS se proto už nepovažují za bezpečnou formu vícefaktorového ověřování.
Shrnutí
V této lekci jste zjistili, co je vícefaktorové ověřování a jak se ve výchozím nastavení implementuje ve službě ASP.NET Core Identity. V další lekci můžete přizpůsobit stávající formulář konfigurace ověřovací aplikace tak, aby poskytoval kód QR obsahující registrační klíč.