Многофакторная проверка подлинности в ASP.NET Core

Завершено

В предыдущем уроке вы настроили и расширили ASP.NET Core Identity. В этом уроке вы узнаете о многофакторной проверке подлинности и о том, как она реализована в Identity.

Многофакторная проверка подлинности

Многофакторная проверка подлинности (MFA) — это процесс, в котором пользователь запрашивает дополнительные формы идентификации при входе. Это может быть код, сгенерированный приложением, значение аппаратного токена или биометрическое сканирование. Если требуется второй тип проверки подлинности, безопасность улучшается.

Подтверждение, необходимое для проверки подлинности, классифицируется по трем типам:

  • То, что вы знаете, например пароль или вопрос безопасности.
  • То, что у вас есть, например маркер оборудования или приложение на телефоне.
  • Некоторые ваши характеристики, например, отпечатки пальцев или скан лица.

Большая часть эффективности MFA происходит от использования различных типов проверки подлинности. Злоумышленник может получить доступ к нескольким вещам, которые вы знаете, как ваш пароль и ваше прозвище детства. Тем не менее, сложнее компрометировать то, что вы знаетеи что-то, что вы или .

Одноразовый пароль на основе времени

Одноразовый пароль на основе времени (TOTP) — это известный алгоритм, который создает уникальные числовые коды, срок действия которого истекает через 30 секунд. Алгоритм принимает два входных данных, текущее время и уникальный ключ.

Пользователь вводит ключ в приложение, совместимое с TOTP, при регистрации. К таким приложениям относятся:

  • Microsoft Authenticator.
  • Google Authenticator.
  • Многие другие!

Ввод ключа в приложение можно упростить с помощью QR-кода. Приложение использует ключ и текущее время для создания и отображения уникальных кодов каждые 30 секунд. Если код, который приложение создает, соответствует ожидаемому сервером, проверка подлинности успешна. Алгоритм предназначен для прощения незначительных различий между часами на устройстве и сервере.

Как одна из форм MFA, пользователю обычно предлагается ввести код TOTP в сочетании с паролем. Пароль то, что вы знаете, и код является подтверждением что-то, что у вас есть. Это единственный способ создать код с ключом, хранящимся в приложении.

По умолчанию шаблоны проектов ASP.NET Core, использующие удостоверение, включают поддержку многофакторной проверки подлинности для приложений проверки подлинности TOTP. Шаблон Razor Pages форма настройки приложения аутентификатора отображает 32-символьный ключ регистрации для заполнения значения токена. Однако шаблон по умолчанию не создает QR-код.

Заметка

Коды, отправленные текстовыми сообщениями SMS, являются общей альтернативой TOTP. В конце концов, телефон, который получает SMS-сообщение, это то, что у вас есть. Однако SMS как метод аутентификации MFA относительно легко преодолеть противнику. Следовательно, SMS-коды больше не считаются безопасной формой MFA.

Сводка

В этом уроке вы узнали, что такое многофакторная проверка подлинности и как она реализована в ASP.NET Core Identity по умолчанию. В следующем модуле можно настроить существующую форму Настроить приложение-аутентификатор для предоставления QR-кода, содержащего ключ регистрации.