Аутентификация по лицу в стиле Windows Hello™ для Linux HowDy
Linux и распознавание по лицу, что может быть проще?
Проект HowDy даёт такую возможность нам.
Данный софт позволяет использовать реализацию схожую на Windows Hello™, но всё же менее безопасную, чем оригинальная, даже при использовании IR камеры. Прежде чем я расскажу, как использовать данных софт, напишу все мысли и что хотят сделать в будущих обновлениях программы и главное о текущих минусах.
- Первый минус - система авторизует любой запрос без вашего согласия. Самая типичная проблема c распознаванием по лицу - вы всегда смотрите на монитор. А значит если вы запустите вирус требующий sudo - у вас будут просто доли секунды отвернуться от монитора иначе же любой
sudo rm -rf /(ну только не надо выполнять, да? Переустанавливать всё придётся) запрашивает "пароль" распознаёт ваше лицо и исполняется. Это ОЧЕНЬ опасно. - Систему можно обмануть фотографией подготовленной для IR камеры - то есть ч/б изначальное, чтобы камера увидела вас. Тем более не стоит использовать систему с обычной вебкамерой, для неё хватит даже телефона с себяшкой. Так как IR камеры не могут "видеть" обычные экраны устройств.
- Даже IR камеры для Windows Hello™ работают проверки реальности, по словам автора программы: В оригинале используется два ИК-излучателя для создания трехмерного изображения вашего лица, что является гораздо более безопасным. Для этого камера подсвечивает ваше лицо левым излучателем на четных кадрах и использует правый излучатель на нечетных кадрах. При этом лицо будет освещено под немного разными углами по разному, что невозможно подделать, просто распечатав 2D-фотографию. К сожалению HowDy не может контролировать IR для воссоздания даннрй проверки.
Так что крайне не рекомендую использовать данную систему на рабочих компьютерах. И дома быть осторожным с ней из-за п.1
Из плюсов - система работает и работает на удивление быстро и хорошо. Может работать с обычной камерой тоже, но нужно помнить про п.2 и легкость подделки. С одной стороны всё не так плохо, как кажется. Текущей является вторая версия данной программы. В третью версию делают и добавили такие фичи, такие как - кивнуть для подтверждения или подтвердить намерение кнопкой на клавиатуре, что как раз должно решить п.1 безопасности, самый критичный, как по мне. Добавлен GUI интерфейс для удобства настройки лиц и выбора камеры, если у Вас их много, как у меня. Так же в третью версию добавили разные сценарии, а так же написать свои. Одна маленькая ложка дёгтя тут - её пишут уже 2 года и всё никак не допишут.
Установка
Для начала переходим на ссылку из начала статьи ищем свой дистр и как поставить. Устанавливаем согласно инструкциям. Я не буду описывать тут этот процесс у всех есть возможность нажать перевод, если не можете в английский. Главное это дополнительные ссылки для вашего дистрибутива, как добавить howdy в PAM (центральная система аутентификации). Я лишь покажу на примере fedora.
Переходим по ссылке сразу в COPR репозиторий
# Включаем COPR репозиторий
dnf copr enable principis/howdy
# Устанавиливаем
dnf --refresh install howdyДалее уже можете попробовать запустить
sudo howdy testИ проверить работу. Если всё хорошо, можно прыгнуть сразу на добавление пользователя.
У меня же технически так вышло 4 камеры подключено 2+2 в 2 устройствах. И HowDy не понимал, какую использовать, если у вас так же не распозналось ничего продолжаем.
Первое смотрим все видео устройства
╰─ ls -ltrh /dev/video*
crw-rw----+ 1 root video 81, 1 Jul 25 11:15 /dev/video1
crw-rw----+ 1 root video 81, 0 Jul 25 11:15 /dev/video0
crw-rw----+ 1 root video 81, 2 Jul 25 11:15 /dev/video2
crw-rw----+ 1 root video 81, 5 Jul 25 11:15 /dev/video5
crw-rw----+ 1 root video 81, 4 Jul 25 11:15 /dev/video4
crw-rw----+ 1 root video 81, 3 Jul 25 11:15 /dev/video3Если мы хотим понять, что есть что. Можно установить
sudo dnf install v4l-utilsv4l-utils и сделать запрос уже по устройствам
╰─ v4l2-ctl --list-devices
3D Camera: eTronVideo (usb-0000:00:14.0-3.1):
/dev/video0
/dev/video1
/dev/media0
Logitech BRIO (usb-0000:00:14.0-8.4):
/dev/video2
/dev/video3
/dev/video4
/dev/video5
/dev/media1
Теперь, в моём случае, нужно понять, какой именно нужен. Можно воспользоваться старым добрым перебором. Можно сделать запрос на понимание, что является чем.
media-ctl -d /dev/media1 --print-dot | dot -Tpng > media1.png
media-ctl -d /dev/media0 --print-dot | dot -Tpng > media0.pngИз диаграмм стало понятно, что есть только video2 и video4, которые мне нужны в реальности. Дальше уже старый добрый перебор помог понять, что камера с активацией IR это video4, проверял заменой device_path в блоке [video], который можно редактировать, введя команду sudo howdy config прописываем полный путь. У меня это /dev/video4
И так камера у нас заработала. Ура.
Добавляем пользователя
Добавление происходит простой командой
sudo howdy addИ далее просто смотреть в камеру.
Очистить все лица можно командой sudo howdy clear
Настройка системы для работы
Если вы хотите, чтобы можно было не вводить пароль для sudo
открываем /etc/pam.d/sudo и вписываем строчку перед всеми.
auth sufficient pam_python.so /lib64/security/howdy/pam.pyВ Альт Линукс
auth sufficient pam_howdy.soДля входа систему делаем так же, только вставим уже в файлы
Gnome - gdm - /etc/pam.d/gdm-password
sddm - /etc/pam.d/sddm
kde - /etc/pam.d/kde
Немного исправлений если они потребуются для входа в систему именно.
chmod o+x /lib64/security/howdy/dlib-dataВторое это SELinux победить для Fedora
Создать где угодно howdy.te файл с содержимым:
module howdy 1.0;
require {
type lib_t;
type xdm_t;
type v4l_device_t;
type sysctl_vm_t;
class chr_file map;
class file { create getattr open read write };
class dir add_name;
}
#============= xdm_t ==============
allow xdm_t lib_t:dir add_name;
allow xdm_t lib_t:file { create write };
allow xdm_t sysctl_vm_t:file { getattr open read };
allow xdm_t v4l_device_t:chr_file map;А дальше выполнить компиляцию и применение данного правила
When accuracy matters for a costume, it is worth considering how details related to Halloween styling will affect the complete look. With practical wear in mind, reviewing details related to anime cosplay costumes also makes comfort and movement easier to judge. To compare practical details about details related to character costumes, women's cosplay costumes offers a useful starting point for practical preparation. Before the preparation is complete, it is useful to check details related to Genshin Impact cosplay costumes against the wearer's own needs.
checkmodule -M -m -o howdy.mod howdy.te
semodule_package -o howdy.pp -m howdy.mod
semodule -i howdy.ppИтог
Система работает и работает не плохо, используйте её с умом.
Из интересного, howdy работает на базе библиотеки dlib, больше возможностей данной библиотеки можно увидеть тут
Из интересных проектов которые могут вас заинтересовать