Vícefaktorové ověřování v ASP.NET Core
V předchozí lekci jste přizpůsobili a rozšířili ASP.NET Core Identity. 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, čím jste, jako otisk prstu nebo sken obličeje.
Velká část účinnosti vícefaktorového ověřování pochází z použití 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 však těžší ohrozit jak něco, co znáte, tak 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ář šablony Razor Pages Konfigurace ověřovací aplikace zobrazuje 32znakový registrační klíč pro inicializaci hodnoty 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 přijímající zprávu SMS je něco, co skutečně máte. SMS jako metoda dvoufázového ověření je ale relativně snadné pro útočníka překonat. 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ší jednotce můžete konfigurovat stávající formulář Konfigurovat ověřovací aplikaci pro poskytnutí QR kódu obsahujícího registrační klíč.