Личный центр аутентификации без привязки к смартфону
Знакомая история: вы переустановили прошивку на телефоне или, что еще хуже, потеряли его, а вместе с ним улетели и все токены двухфакторки из Google Authenticator. Если вы не сохранили бэкап-коды (признайтесь, кто их хранит прилежно?), начинается долгий квест по восстановлению доступов через техподдержку. Автор проекта 2FAuth прошел через этот ад и решил, что пора завязывать с хранением ключей в закрытых мобильных экосистемах.

Что это за зверь
2FAuth — это self-hosted веб-приложение для управления вашими 2FA-аккаунтами. По сути, это ваш личный сервер, который генерирует одноразовые пароли (OTP). Главная прелесть в том, что он работает везде, где есть браузер. Больше не нужно судорожно искать смартфон, когда вы сидите за десктопом и нужно залогиниться в консоль AWS или на GitHub.
Кому это пригодится? В первую очередь тем, кто ценит автономность и хочет иметь полный контроль над своими данными. Если у вас уже крутится домашний сервер или пара контейнеров в облаке, 2FAuth станет отличным дополнением.
Чем он хорош на практике
Главная проблема большинства мобильных приложений для 2FA — интерфейс. Когда у вас двадцать аккаунтов, и все они одновременно показывают тикающие таймеры, это создает лишнюю суету. В 2FAuth подход спокойнее: вы видите только то, что вам нужно в данный момент.
Вот несколько фишек, которые мне понравились:
- Группировка аккаунтов. Можно разложить токены по папкам: «Работа», «Личное», «Крипта». Это сильно упрощает навигацию, когда список переваливает за десяток позиций.
- Работа с QR-кодами. Приложение умеет сканировать коды прямо через камеру или из загруженного файла. Если QR-кода нет, можно вбить секретный ключ руками через продвинутую форму.
- Поддержка Steam Guard. Редкая птица для подобных приложений. Обычно для Steam нужно отдельное приложение, но здесь генерация кодов встроена нативно.
- Импорт из всего подряд. Переход на новый софт всегда пугает переносом данных. 2FAuth умеет подтягивать базы из Aegis, 2FAS и даже экспорты из Google Authenticator.
Безопасность и технологии
Внутри это классический стек на PHP и Laravel. Приложение легковесное, не требует монструозных ресурсов и заводится практически на любом «утюге», будь то старая Raspberry Pi или копеечный VPS.
Что касается защиты данных:
- Шифрование базы. По умолчанию оно выключено, но я настоятельно советую его активировать в настройках. Тогда даже если кто-то получит доступ к файлу базы данных, вытащить оттуда секретные ключи без вашего
APP_KEYне получится. - Аппаратные ключи. Приложение поддерживает WebAuthn. Это значит, что для входа в саму панель 2FAuth можно использовать Yubikey или другие ключи безопасности.
- Автовыход. Можно настроить систему так, чтобы сессия закрывалась сразу после копирования кода в буфер обмена. Параноидально? Возможно. Безопасно? Однозначно.
Как развернуть у себя
Самый быстрый способ — Docker Compose. Это избавит от необходимости возиться с зависимостями PHP и настройкой веб-сервера.
services:
2fauth:
image: bubka/2fauth:latest
ports:
- "8000:8000"
volumes:
- ./2fauth_data:/2fauth
environment:
- APP_NAME=2FAuth
- APP_ENV=production
- APP_DEBUG=false
После запуска приложение будет доступно на 8000 порту. Первым делом нужно будет создать учетную запись администратора. Кстати, 2FAuth — это строго однопользовательское приложение. Оно создано для личного использования, а не для того, чтобы вы открывали публичный сервис для регистрации всех желающих.
Стоит ли переходить
Если вы устали зависеть от смартфона и хотите иметь надежный бэкап своих 2FA-токенов, который не удалится вместе с облаком Google или Apple, то 2FAuth — отличный вариант.
Из минусов: вам придется самостоятельно заботиться о бэкапах самой базы приложения (хотя это просто один файл, если использовать SQLite). Также стоит помнить, что self-hosted решение требует базовых навыков администрирования.
В остальном это добротный, опенсорсный инструмент с открытым исходным кодом под лицензией AGPL-3.0, который просто делает свою работу и не пытается вытянуть из вас данные или подсадить на подписку.
Кстати, у проекта есть живое демо, где можно потыкать интерфейс перед установкой. Логин и пароль для входа — demo@2fauth.app / demo.