Wordfence Login Security

Этот плагин - это часть кода из основного плагина Wordfence, которая отвечает только за 2FA (двухфакторную аутентификацию) на странице входа и для XML-RPC запросов, а также позволяет включить CAPTCHA на странице входа.

Если нужна комплексная защита WordPress, ознакомьтесь с полным плагином Wordfence.

Что такое 2FA (двухфакторная аутентификация)

Двухфакторная идентификация – это способ идентификации пользователя двумя разными методами при пользовании каким-либо сервисом. При запросе двух разных типов аутентификационных данных надежность защиты возрастает в два раза. В большинстве случаев на первом этапе необходимо ввести логин и пароль, а на втором – указать код, отправленный по смс или на электронный ящик. Каждый из ключей, держите ли вы его в памяти или получаете через другой источник, подтверждает вашу личность.

Зачем нужна двухфакторная идентификация

Данный метод используется для защиты персональных данных, «усложнения» работы злоумышленникам. В современном мире взломать простой и короткий пароль, которым пользуется большинство людей из-за удобства запоминания, не составит большого труда. Поэтому если хакер пройдет первый слой защиты, ему придется раздобыть доступ к телефонному номеру или электронной почте, что гораздо сложнее. Также двухфакторная идентификация предупреждает о попытках взлома аккаунта. В этом случае вам на телефон или почту может прийти одноразовый код, который вы не запрашивали, и нужно как можно быстрее менять пароль.

Что такое MFA (Multifactor authentication)

2FA - это двухфакторная аутентификация. Требует от пользователя предоставления двух факторов аутентификации. Это может быть то, что пользователь знает (например, пароль), и то, что у пользователя есть (например, отпечаток пальца или код, отправленный на мобильное устройство).

MFA - это Мультифакторная аутентификация (многофакторная аутентификация). Аналог 2FA, за исключением того, что для нее требуется более двух различных факторов аутентификации. Для MFA может потребоваться сочетание того, что пользователь знает, того, что у него есть, и того, чем он является (например, распознавание лица).

Разница между MFA и 2FA

Ключевое различие между 2FA и MFA заключается в том, что MFA обеспечивает дополнительный уровень безопасности, требуя наличия дополнительного к 2FA фактора аутентификации. MFA, по понятным причинам, считается более надежным чем 2FA.

Факторы аутентификации
  • то что юзер знает - пароль.
  • то что у юзера есть - телефон.
  • то чем он является - отпечаток пальца, лицо.

2FA юзает первые 2, а MFA - все три. То как реализован каждый фактор - это уже момент реализации, так например, пароль может быть слабы, телефон можно украсть, отпечаток подделать.

Видео об этом плагине

Этот плагин позволяет

Включить Двухфакторную Аутентификацию

  • Можно использовать любое приложение или сервис аутентификации основанный на алгоритме TOTP (Time-based One-Time Password), например:

  • Можно включить 2FA для любой роли пользователя WordPress.

  • Можно сделать 2FA обязательной для отдельной роли.

  • Можно указать Грейс-период - период в течении которого юзеры смогут входить по прежней логике, чтобы включить 2FA.

  • Это полностью бесплатное решение.

Включить CAPTCHA на странице входа в систему

  • Простое включение Google ReCAPTCHA v3 на страницах входа и регистрации.

  • Предотвращает вход ботов в систему, не причиняя неудобств посетителям вашего сайта.

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

Защитить XML-RPC

  • XML-RPC - самая большая мишень для атак на WordPress, но часто остается без внимания.

  • Защитите XML-RPC с помощью 2FA или вообще отключите его, если он не нужен.

Некоторые особенности работы плагина

Плагин хранит все данные в своих отдельных таблицах:

  • wp_wfls_2fa_secrets
  • wp_wfls_role_counts
  • wp_wfls_settings

Корректно Работает с мультисайтом

Таблицы плагин создает одни для всей сети сайтов. Что логично, потому что юзеры для всех под-сайтов одни и теже.

Все данные в таблицах хранятся в бинарном виде

Поэтому, нельзя просто взять и прочитать что там сохранено.

Нужна библиотека openssl для PHP

Для работы плагина нужно, чтобы на сервере для PHP была установлена библиотека openssl.

Алгоритм TOTP

Это самый распространенный и популярный алгоритм. Он используется плагином Wordfence Login Security. Таким образом, любое приложение, поддерживающее этот алгоритм, подходит для плагина.

Как это работает, читайте здесь.

Вкратце, как это реализовано в Wordfence Login Security:

  • Сервер создает секретный ключ для конкретного пользователя.

  • Сервер передает этот секретный ключ в телефонное приложение пользователя (по QR-коду).

  • Приложение для телефона инициализирует счетчик (временная метка UNIX / 30).

  • Приложение для телефона генерирует одноразовый пароль, используя этот секретный ключ и счетчик.

  • Приложение для телефона изменяет счетчик через определенный интервал (30 секунд) и повторно создает одноразовый пароль, делая его динамичным.

Приложение и сервер работают независимо, и каждое из них генерирует одноразовый пароль самостоятельно. Поскольку сервер и приложение используют один и тот же секретный ключ (ключ openssl), у них обоих один и тот же "одноразовый пароль" в конкретный момент времени. Он и сравнивался во время аутентификации.

--

Другой плагин Two Factor Authentication. Если не нужны дополнительные функции в виде возможности включить CAPTCHA на странице входа. Однако, тут некоторые функции только в премиум версии плагина.