RU /EN
Обсудить проект
← Избранные проекты
Разбор проекта

VaultGuard

Менеджер паролей с открытым исходным кодом: локальный файл KeePass (.kdbx) вообще без сервера или любой Bitwarden / Vaultwarden-совместимый сервер — собственный или облачный. Автозаполнение, TOTP, биометрия, пиннинг сертификата. Apache 2.0.

Что это

Менеджер паролей с открытым исходным кодом. Работает в двух режимах: открывает локальный файл KeePass (.kdbx) прямо на устройстве или подключается к серверу, совместимому с Bitwarden или Vaultwarden — собственному Vaultwarden, облачному bitwarden.com или его европейскому инстансу.

Своего сервиса у приложения нет. Разработчик не хостит сервер, не получает содержимое хранилища и не получает денег: встроенных покупок и подписок в приложении нет, а тариф на выбранном сервере — отношения пользователя с этим сервисом.

Почему появился

Менеджер паролей — это про доверие, а доверие требует проверяемости. Большинство удобных клиентов либо привязаны к облаку производителя, либо закрыты, либо требуют подписки за функции, которые уже есть на сервере пользователя.

Отсюда две вещи, которые определили проект: открытый код и отсутствие собственного бекенда. Если приложению некуда отправлять данные, вопрос «а что оно отправляет» снимается конструкцией, а не обещанием.

Что сделал

Приложение целиком: обе схемы хранилища, модель безопасности, расширение автозаполнения, генератор паролей, TOTP, биометрическая разблокировка, импорт и экспорт, локализация на два языка.

Что технически интересно

Мастер-пароль не пишется на диск. В серверном режиме из него выводится ключ хранилища — Argon2id или PBKDF2, в зависимости от того, что настроено на сервере. Локальный .kdbx открывается функцией KeePass: Argon2 или AES-KDF. В памяти на время сессии остаётся только производный материал.

Две группы доступа в Keychain. Ключи сессии, обёрнутый ключ пользователя, параметры KDF и ключ офлайн-кеша лежат в приватной группе приложения, к которой расширение автозаполнения не имеет права доступа. В общей группе — минимум состояния, нужного автозаполнению.

Это главное архитектурное решение проекта. Расширение автозаполнения работает в отдельном процессе и по природе своей уязвимее основного приложения: система запускает его по требованию из любого поля пароля. Поэтому оно получает не ключ хранилища и не токены, а отдельный минимальный кеш, запечатанный ключом от короткоживущего общего секрета с настраиваемым временем жизни. Блокировка, выход, удаление аккаунта, закрытие локального хранилища и истечение TTL — каждое из этих событий отзывает доступ.

Самоподписанные сертификаты. Системные сертификаты проверяются штатно. Самоподписанный требует подтверждения отпечатка SHA-256 при первом подключении, и последующая смена отпечатка помечается. Это компромисс в пользу тех, кто поднимает сервер дома, но без молчаливого доверия чему угодно.

Что получилось

Приложение в статусе beta: работа с записями, генератор, TOTP, автозаполнение и биометрия реализованы, поддержка passkeys в статусе preview. Независимого аудита безопасности не проводилось — и об этом сказано прямо, потому что для менеджера паролей это существенно.

Аналитики, телеметрии и сбора отчётов об ошибках в приложении нет.

Есть страница поддержки и политика конфиденциальности.

VaultGuard — независимый проект. Он не связан с Bitwarden Inc., не одобрен и не спонсируется ею; названия используются только для описания совместимости с сервером.