- Система Joomla 4 - Беспарольный вход WebAuthn
- Конфигурация пользователя Joomla 4
- Аутентификация
- Как отключить плагин WebAuthn в Joomla 4
- Требования к серверу для работы с WebAuthn в Joomla 4
- Примечания разработчика WebAuthn в Joomla 4
- Дополнительная информация по WebAuthn в Joomla 4
Система Joomla 4 - Беспарольный вход WebAuthn.
Веб-аутентификация, или сокращенно WebAuthn, позволяет пользователю безопасно войти на сайт без использования пароля - хотя имя пользователя все равно необходимо указать. При этом используется надежная криптография, которая чрезвычайно устойчива к наиболее распространенным проблемам, связанным с паролями: кто-то угадал пароль (атака грубой силы), кто-то перехватил пароль (атака "человек посередине"), кто-то обманом заставил вас разгласить пароль (фишинговая атака), кто-то взломал пароль, получив копию данных вашей базы данных (атака SQL injection), или кто-то украл пароль.
WebAuthn не только очень безопасен, но и очень удобен в использовании! Теперь больше не нужно запоминать длинные пароли или использовать менеджер паролей. Все, что требуется, - это аутентификатор, который иногда также называют ключом доступа. Аутентификатор может иметь различные формы, физические или виртуальные. Это может быть отдельный аппаратный ключ, подключаемый к вашему устройству через USB, Bluetooth или NFC. Это может быть само устройство, разблокирующее встроенный аутентификатор с помощью PIN-кода, сканера отпечатков пальцев, сканирования лица или аналогичной биометрической проверки. Эта функция уже работает на устройствах Android и iOS/iPadOS, и ведутся работы по ее внедрению на Windows. Это может быть даже обычный телефон - в настоящее время это возможно на телефонах Android, но эта функция также появится на устройствах iOS / iPadOS.
WebAuthn работает только через HTTPS и только тогда, когда ваш сайт использует для этого действительный, доверенный SSL сертификат. Не волнуйтесь, вам не придется тратить лишние деньги; бесплатные сервисы, такие как Let's Encrypt, обычно интегрированы в панели управления хостингом и прекрасно работают с WebAuthn.
WebAuthn использует криптографию с открытым ключом, ту же проверенную технологию, которая обеспечивает безопасность веб-сайтов с помощью HTTPS, безопасность банковской информации и так далее. Закрытый ключ никогда не покидает аутентификатор. На сайте хранится только открытый ключ. Даже если произойдет утечка данных, злоумышленник останется с практически бесполезным открытым ключом; для его взлома ему потребуются тысячи или миллионы процессорных лет, в отличие от нескольких минут или часов, необходимых для взлома хэша обычного пароля, который пользователь может запомнить.
WebAuthn - это будущее аутентификации. Простая, безопасная и без лишних хлопот. Все, чем не являются обычные пароли.
На следующем рисунке изображено аппаратное устройство, вставленное в USB-порт ноутбука. В феврале 2022 года оно стоило 15 фунтов стерлингов.
WebAuthn в Joomla 4 использует системный плагин, который включен по умолчанию. Кнопка Web Authentication будет присутствовать в стандартных экранах входа в Joomla 4, как показано ниже на экране входа администратора:
Конфигурация пользователя Joomla 4.
Сначала пользователь должен зарегистрироваться с обычным именем пользователя и паролем на сайте, работающем на CMS Joomla 4. После входа в систему необходимо перейти к форме Профиль пользователя (User Profile). Для администратора:
- Выберите Меню пользователя (User Menu) → Редактирование профиля (Edit Account) → W3C Web Authentication (WebAuthn) Login, чтобы открыть форму, в которой первоначально не будет зарегистрировано ни одного аутентификатора.
- Выберите Добавить новый аутентификатор (Add New Authenticator)
Точное описание следующего шага зависит от используемого браузера. Как правило, появляется предупреждение, сообщение или окно с просьбой выбрать тип аутентификатора или, если используется аппаратный аутентификатор, подключенный к устройству, напоминание о необходимости нажать кнопку на аппаратном аутентификаторе. По соображениям безопасности и практическим соображениям для активации аутентификатора предусмотрен относительно короткий промежуток времени: 60 секунд.
Как только пользователь разблокирует аутентификатор - нажатием на кнопку, сканированием отпечатка пальца / лица, вводом PIN-кода или комбинацией вышеперечисленных способов в зависимости от аутентификатора - сообщение исчезнет, аутентификатор будет зарегистрирован, а на экране появится следующее окно:
Очень важно отметить, что в Joomla 4 регистрировать или удалять аутентификаторы можно только на своей собственной учетной записи пользователя. В целях безопасности даже Суперпользователю запрещено регистрировать, редактировать или добавлять аутентификаторы на других учетных записях.
Аутентификаторы Joomla 4.
Использовать можно любой аутентификатор FIDO U2F или FIDO2. FIDO U2F - это более старый стандарт, который поддерживает более ограниченный и менее безопасный набор криптографических методов. FIDO2 - более новый стандарт, который поддерживает гораздо более безопасные криптографические методы, включая криптографию эллиптических кривых - криптографический метод, который, как считается, устойчив даже к квантовым вычислениям (если и когда они станут практической реальностью). Более того, аутентификаторы FIDO2 могут быть настроены на дополнительную защиту, такую как PIN-код или биометрический контроль (например, сканирование отпечатков пальцев), что означает, что даже если пользователь потеряет физический доступ к аутентификатору, тот, кто его найдет, не сможет войти на его сайты.
При покупке аппаратного аутентификатора можно поискать "FIDO2" на своем любимом рынке, например, на Amazon. Там есть широкий выбор.
Можно также использовать программный ключ FIDO, например, Krypton, в качестве аутентификатора.
Многие устройства имеют встроенную аутентификацию, совместимую с FIDO2:
- Windows 10 и 11 имеют функцию Windows Hello с PIN-кодом, сканером отпечатков пальцев, камерой распознавания лиц или комбинацией аппаратного ключа и PIN-кода. Поддержка Windows Hello добавляется в плагин с релизом в Joomla 4.2.0.
- macOS имеет TouchID на всех ноутбуках с чипсетом T2 или ноутбуках на базе Apple Silicon, использующих встроенный датчик TouchID, а также на всех настольных компьютерах на базе Apple Silicon, использующих новую алюминиевую клавиатуру Apple Aluminium со сканером отпечатков пальцев.
- iOS / iPadOS имеет TouchID на всех устройствах со сканером отпечатков пальцев и FaceID на всех новых устройствах с инфракрасной точечной проекционной камерой FaceID.
- Некоторые устройства Android оснащены сканером отпечатков пальцев или камерой распознавания лиц. Они также могут работать как аутентификаторы FIDO2, по крайней мере, на Android 9 или более поздних версиях с использованием Google Chrome.
- Могут быть доступны и другие устройства. Например, телефоны на базе Android, использующие caBLE.
Браузеры, совместимые с WebAuthn в Joomla 4.
Браузеры на базе Chromium и Firefox поддерживают WebAuthn с начала 2019 года.
Safari и все браузеры для iOS/iPadOS (которые, по сути, являются Safari с другим дизайном) полностью поддерживают WebAuthn с iOS/iPadOS 13, выпущенной в конце 2019 года.
На практике, если операционная система и браузер были выпущены после середины 2020 года, у пользователя не должно возникнуть проблем. Только некоторые очень редкие браузеры все еще не поддерживают WebAuthn.
Аутентификация.
Чтобы войти в систему, следует ввести имя пользователя в поле Имя пользователя (Username) формы входа. Пароль вводить не нужно, но если браузер вводит его за вас, просто оставьте его. Пароль НЕ отправляется на сервер при отправке формы через кнопку Web Authentication.
Из этого следует, что для входа в систему можно использовать либо Имя пользователя и Пароль, либо Имя пользователя и Веб-аутентификацию.
Как отключить плагин WebAuthn в Joomla 4.
Для того чтобы отключить WebAuthn в Joomla 4, нужно зайти в список плагинов, найти System - WebAuthn Passwordless Login в группе Система (System) и отключить его. Никаких параметров задавать не нужно.
Требования к серверу для работы с WebAuthn в Joomla 4.
Для работы WebAuthn должны быть выполнены следующие предварительные условия:
- HTTPS с действующим подписанным сертификатом. Большинство хостеров позволяют вам использовать бесплатные сертификаты, выпущенные Let's Encrypt. Они прекрасно работают с WebAuthn.
- Расширение OpenSSL для PHP должно быть установлено и включено.
- Расширение PHP GMP или расширение PHP BCmath должно быть установлено и включено (подойдет любое из них).
- Библиотека Sodium в идеале должна быть включена; она позволяет использовать криптографию эллиптических кривых на совместимых аутентификаторах FIDO2, что, как уже упоминалось, является наиболее безопасным криптографическим методом.
Примечания разработчика WebAuthn в Joomla 4.
Дополнительные кнопки входа в систему WebAuthn в Joomla 4.
Модуль плагина и com_users теперь используют событие onUserLoginButtons, определенное и вызываемое в Joomla\CMS\Helper\AuthenticationHelper::getLoginButtons, для получения определений любых дополнительных кнопок, которые должны быть размещены после обычной кнопки входа.
Все разработчики, реализующие модуль входа или, в более общем случае, форму входа, должны также использовать публичный статический метод Joomla\CMS\Helper\AuthenticationHelper::getLoginButtons для получения определений и отображения этих кнопок, чтобы сделать свое программное обеспечение полностью совместимым с Joomla 4.
Разработчикам, желающим реализовать пользовательские кнопки, следует обратить внимание на то, как реализует эту функциональность системный плагин WebAuthn. Такие кнопки могут быть использованы для реализации сторонних сервисов single-sign-on или даже для входа в систему с использованием сторонних сервисов идентификации, таких как те, которые предлагают популярные социальные сети (Facebook, Google, Twitter, GitHub и т.д.).
Это изменение не оказывает негативного влияния на обратную совместимость. Сторонние модули входа и формы входа будут продолжать нормально функционировать, даже если в них не реализована функция дополнительных кнопок входа, за исключением интеграций, обеспечиваемых этой функцией, таких как Web Authentication. То есть, они не перестанут функционировать (что было бы b/c break), но они не будут функционально полными.
Разрешение com_ajax на странице входа в бэкэнд Joomla 4.
Страница входа администратора в систему включает в себя использование "белого списка" com_ajax в AdministratorApplication, чтобы его можно было использовать для обработки запросов приглашенных пользователей.
Это изменение не вызывает проблем с обратной совместимостью до тех пор, пока разработчики используют разумные методы и не считают, что вызов com_ajax в бэкенде является доказательством того, что пользователь вошел в бэкенд. Это было бы плохой практикой безопасности. Разумная практика заключается в использовании объекта User Joomla для определения того, является ли пользователь гостем, и если нет, то имеет ли он разрешение, необходимое для выполнения действия, запрашиваемого через com_ajax. Иными словами, если это изменение сломало ваш код, значит, ваш код уже был сломан и в любом случае нуждался в доработке.
Дополнительная информация по WebAuthn в Joomla 4.
- «WebAuthn в Joomla 4. Беспарольный вход в систему»
- «Общие сведения о WebAuthn Беспарольной аутентификации в Joomla 4»
- «WebAuthn Беспарольная аутентификация в Joomla 4. Инструкции по проведению тестирования»
- «WebAuthn Беспарольная аутентификация в Joomla 4. Проведение тестирования»
- «WebAuthn Беспарольная аутентификация в Joomla 4. Важные замечания от разработчиков.»
- «WebAuthn Беспарольная аутентификация в Joomla 4. Часто задаваемые вопросы (FAQ) и дополнительная информация.»
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/WebAuthn_Passwordless_Login
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)