Howdy: как настроить аутентификацию "по лицу" в Linux. Собираем аналог Windows Hello

Howdy: как настроить аутентификацию "по лицу" в Linux. Собираем аналог Windows Hello

Howdy — это открытый инструмент, который добавляет к Linux привычный сценарий входа по лицу в стиле Windows Hello. Он встроен в PAM, поэтому распознавание можно использовать там, где обычно просят пароль: при логине в систему, на экране блокировки, в sudo и даже в su. Если у ноутбука есть ИК-излучатель и камера, Howdy умеет работать в темноте; с обычной веб-камерой тоже возможно, но надежность ниже. Проект живет на GitHub и распространяется по лицензии MIT. Важно: авторы сразу предупреждают, что это про удобство, а не про железобетонную защиту: подделка в теории возможна, поэтому не стоит отключать пароль вовсе.

Howdy подключается к центральной системе аутентификации Linux — PAM. При запуске аутентификации модуль захватывает кадры с камеры, извлекает признаки лица и сравнивает их с локальной моделью пользователя. В стабильных сборках задействуется Python-стек с OpenCV; при сборке из исходников могут тянуться компоненты dlib (бывает, что «зависают» на 100% — это нормально и проходит). В новых бета-сборках появился нативный PAM-модуль pam_howdy.so, избавляющий от зависимости на pam_python.

Поддерживаемые дистрибутивы и где взять

Debian/Ubuntu и производные. Проще всего поставить из PPA :

sudo add-apt-repository ppa:boltgolt/howdy sudo apt update sudo apt install howdy 

Для Debian можно скачать .deb с вкладки Releases и поставить через gdebi. Иногда на Ubuntu 24.04 встречается ошибка про «externally-managed-environment» — это уже не баг Howdy, а особенности Python-пакетов в системе: подробности и решения обсуждаются в issue-тредах репозитория.

Fedora. Есть COPR-репозиторий principis/howdy и бета-репозиторий principis/howdy-beta:

sudo dnf copr enable principis/howdy sudo dnf --refresh install howdy 

Из-за удаления поддержки Python 2 в Fedora 41 (и цепочки зависимостей вроде pam_python) установка иногда требует бета-репозитория или донастройки; для Fedora 42 у части пользователей возникали проблемы с зависимостями, о чем есть обсуждения в COPR и GitHub Issues. К счастью, ветка 3.0.0 BETA с нативным pam_howdy.so сглаживает эти углы. Перед установкой стоит заглянуть в страницу COPR и свежие issues.

Arch Linux. Пакет доступен в AUR. После установки потребуется вручную подключить строку PAM, для бета-веток используется pam_howdy.so. На ArchWiki подробно описаны двоичные пути камер и нюансы с менеджерами входа (например, SDDM).

openSUSE. Для Tumbleweed/Leap есть инструкции на вики openSUSE (репозиторий dmafanasyev). Там же подсказки по выбору устройства камеры и PAM-включению.

Первичная настройка шаг за шагом

Добавьте эталонные лица. Сразу после установки выполните:

sudo howdy add 

Команда создаст один или несколько «отпечатков» лица пользователя (рекомендуют сделать 3–5 моделей под разные условия освещения и ракурсы). Проверить работу можно так:

sudo howdy test 

или просто запустить sudo -i и показать лицо.

Выберите правильную камеру. На ноутбуках с ИК-модулем он может определяться отдельным устройством /dev/videoX. Узнать список устройств помогает v4l2-ctl --list-devices; для стабильности лучше прописывать не «видео-номер», а симлинк из /dev/v4l/by-id/. Путь задается в конфиге howdy (обычно /lib/security/howdy/config.ini или /usr/lib64/security/howdy/config.ini):

# Путь к устройству захвата device_path = /dev/v4l/by-id/usb-XXXX-video-index0 

Если ИК-подсветка не загорается, проверьте, что выбран именно ИК-сенсор; для отдельных моделей помогает утилита linux-enable-ir-emitter.

Включите Howdy в PAM. Общая идея такая: в нужные файлы /etc/pam.d/ добавляется строка для модуля Howdy. На классической ветке это:

auth sufficient pam_python.so /lib/security/howdy/pam.py 

А в бета-ветках (3.0.0+) — уже нативная библиотека:

auth sufficient /lib/security/pam_howdy.so 

Чтобы графический дисплей-менеджер давал выбор между лицом и паролем, обычно в начало файла добавляют и строку с pam_unix.so:

auth sufficient pam_unix.so try_first_pass likeauth nullok 

Точные примеры для GDM/SDDM и системных профилей описаны в ArchWiki и на страницах дистрибутивов.

Полезные опции в конфиге

Откройте конфиг через sudo howdy config — он откроется в редакторе и подскажет доступные параметры. Обратите внимание на:

  • device_path — путь к нужной камере (см. выше).
  • Снимки при аутентификации — в некоторых версиях ведется сохранение кадров успешных/неуспешных попыток. Это удобно для отладки, но потенциально опасно: снимок удачной сессии можно распечатать и попробовать обмануть систему. Выключите сбор снимков в секции [snapshots], установив capture_successful = false и capture_failed = false.

Как жить с дисплей-менеджерами, оболочками и «вещами вокруг»

Howdy работает в консоли и с большинством дисплей-менеджеров, но иногда требуется тонкая настройка PAM конкретно под ваш стек. Например, SDDM в некоторых версиях вел себя нестабильно с PAM и мог игнорировать модуль — такие случаи разжеваны на ArchWiki. Если используете кастомные экранные блокировщики, проверьте их взаимодействие с PAM или включите распознавание для «системного логина», который они дергают. Для облегчения первичной регистрации лиц в ряде сборок существует простой графический помощник howdy-gtk.

Типичные проблемы и как их обходить

  • Fedora 41/42 и зависимости. Изменения вокруг Python 2 и pam_python ломали установку из COPR. Смотрите обсуждения, при необходимости используйте howdy-beta (3.0.0+) с pam_howdy.so или следуйте рекомендациям мейнтейнера COPR.
  • Ubuntu 24.04 и «externally-managed-environment». Это общее изменение политики Python-пакетов у дистрибутива; решения предлагаются в issue-тредах репозитория.
  • dlib «висит» на 100% при сборке. Дайте времени — это известное поведение.
  • ИК-подсветка не включается. Проверьте, что выбран правильный /dev/videoX; при необходимости включите эмиттер утилитой linux-enable-ir-emitter.
  • SDDM не реагирует на распознавание. Проверьте секции PAM для system-local-login и используйте рекомендуемые строки с pam_unix.so и pam_howdy.so.

Безопасность и альтернативы

Авторы прямо предупреждают: Howdy не следует рассматривать как эквивалент пароля. Похожий человек или удачно распечатанное фото могут обмануть систему, а сохраненные «снимки успеха» и вовсе упрощают жизнь атакующему, если их не отключить. Лучший практический вариант — оставить биометрию «удобной кнопкой», но не убирать пароль и не делать Howdy единственным способом входа. В README это прописано большими буквами.

Если нужен именно прирост надежности, а не комфорта, рассмотрите другие факторы — например, аппаратные ключи или проверенные способы вроде отпечатка пальца через fprintd, который лучше поддерживается производителями ноутбуков. А если ИК-камеры нет и ноутбук редко стоит на столе с хорошим освещением, распознавание лиц может больше раздражать, чем помогать. (Да, пароль иногда быстрее — особенно когда ноутбук уже в доке с закрытой крышкой.)

Заключение

Howdy — аккуратный способ добавить в Linux быстрый вход по лицу «как в Windows Hello». Он работает через PAM во всех местах, где обычно нужен пароль, устанавливается из официальных репозиториев дистрибутивов и настраивается несколькими командами. Но это не «волшебная защита»: проект честно говорит, что безопасность здесь вторична, а на отдельных дистрибутивах возможны нюансы с зависимостями и PAM. Если принять эти условия, правильно выбрать устройство камеры, выключить сохранение снимков и оставить пароль в качестве резервного пути — опыт получается комфортным и предсказуемым.

Howdy Linux Windows Hello аутентификация биометрия вход камера обзор пользователь технология
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

А что, если ваш периметр уже пробит?

Консультация с пентестером от SecurityLab: быстрый разбор уязвимостей, реальные сценарии атак, приоритизация рисков и понятный план укрепления. Конфиденциально и по делу.


Комнатный Блогер

Объясняю новую цифровую реальность