Vícefaktorové ověřování v ASP.NET Core

Dokončeno

V předchozí lekci jste přizpůsobili a rozšířili ASP.NET Core Identity. V této lekci se seznámíte s vícefaktorovým ověřováním a jeho implementací ve službě Identity.

Ověřování pomocí služby Multi-Factor Authentication

Vícefaktorové ověřování (MFA) je proces, při kterém se uživateli při přihlašování zobrazí výzva k dalším formám identifikace. Tato výzva může být zadání kódu z aplikace, hodnoty hardwarového tokenu nebo biometrické kontroly. Pokud potřebujete druhý typ ověřování, zabezpečení se zlepšuje.

Důkaz vyž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 v telefonu.
  • Něco, co jste, třeba otisk prstu nebo sken obličeje.

Většina efektivity vícefaktorového ověřování vychá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 z dětství, ale je těžší ohrozit to, co víte, i něco, co máte nebo jste.

Jednorázové heslo založené na čase

Jednorázové heslo založené na čase (TOTP) je dobře známý algoritmus, který generuje jedinečné číselné kódy, jejichž platnost vyprší po 30 sekundách. Algoritmus přijímá dva vstupy, aktuální čas a jedinečný klíč.

Při registraci uživatel zadá klíč do aplikace kompatibilní s totp. Mezi tyto aplikace patří:

  • Microsoft Authenticator
  • Google Authenticator
  • LastPass Authenticator

Zadávání klíče do aplikace se dá zjednodušit pomocí kódu 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á očekávání serveru, ověření proběhne úspěšně. Algoritmus je navržený tak, aby odpouštějí drobné 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 znáte, a kód je důkazem toho, co máte. Je to proto, že jediným způsobem, jak kód vygenerovat, je klíč uložený v aplikaci.

Šablony projektů ASP.NET Core, které používají identitu, ve výchozím nastavení zahrnují podporu vícefaktorového ověřování pro ověřovací aplikace TOTP. Formulář ověřovací aplikace Konfigurace ověřovací aplikace v šabloně Razor Pages zobrazí registrační klíč o 32 znaménce, který nastaví hodnotu tokenu. Šablona ale kód QR ve výchozím nastavení negeneruje.

Poznámka

Kódy poslané textovými zprávami SMS jsou běžnou alternativou k TOTP. Koneckonců, telefon, který obdrží SMS zprávu, je něco, co máte. Sms jako vícefaktorové ověřování je ale pro nežádoucí osobu relativně snadné porazit. V důsledku toho se kódy SMS už nepovažují za bezpečnou formu vícefaktorového ověřování.

Souhrn

V této lekci jste se dozvěděli, co je vícefaktorové ověřování a jak se ve výchozím nastavení implementuje v ASP.NET Core Identity. V další lekci můžete přizpůsobit stávající formulář konfigurovat ověřovací aplikaci tak, aby poskytoval kód QR obsahující registrační klíč.