Предлагаю добавить в Wiren Board HomeUI опциональную поддержку WebAuthn и ключей доступа (passkeys).
Реализация позволяет входить в HomeUI с помощью:
-
Touch ID;
-
Windows Hello;
-
системной блокировки Android;
-
аппаратных ключей безопасности.
Вход по паролю сохраняется как резервный способ авторизации. Для существующих установок поведение не изменяется: WebAuthn отключён по умолчанию и включается только после настройки RP ID и HTTPS origin.
Регистрация и удаление ключей выполняются самим пользователем в окне редактирования своей учётной записи. Секретный ключ при этом не передаётся контроллеру — используется стандартная процедура WebAuthn через системное окно браузера.
Реализация включает:
-
backend на базе
python3-fido2; -
хранение публичных учётных данных WebAuthn;
-
проверку RP ID, origin, challenge, владельца ключа и счётчика подписей;
-
интерфейс регистрации и удаления ключей;
-
вход по passkey;
-
русскую и английскую локализацию;
-
настройки NGINX и Debian-зависимостей;
-
документацию по настройке HTTPS и восстановлению доступа;
-
автоматические тесты.
Функция проверена на реальном контроллере Wiren Board 8.5 со следующей версией системы:
Wirenboard release unstable.latest (as testing), target wb8/trixie
Backend- и frontend-тесты, TypeScript, ESLint и production build проходят успешно.
Черновой pull request:
https://github.com/wirenboard/homeui/pull/1203