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), например:
- Google Authenticator
- Microsoft Authenticator
- Authy
- 1Password
- FreeOTP
-
Можно включить 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 на странице входа. Однако, тут некоторые функции только в премиум версии плагина.