Как стать автором
Обновить

Комментарии 14

Пользуюсь альтернативной имплементацией vault-warden. Там маленький бинарник на расте, т.к. оперативная память на ВПСе не резиновая…
Планируете сделать анализ недавно открытых драйверов NVIDIA?

Данный вопрос пока не поднимался. Рассмотрим эту идею.

А PVS-Studio поддерживает Rust? Хотелось бы увидеть результаты проверки Vaultwarden

С помощью PVS-Studio можно проанализировать проекты, написанные на C, C++, C# и Java. К сожалению, Vaultwarden проверить не удастся.

Насколько хорошо защищены ваши пароли?

Для облачного менеджера паролей вопрос какой-то… риторический)
Лучше бы на KeePass время потратили — было бы гораздо интереснее.

Тут такое, клиент открыт, в облако оно улетает в заштфрованном виде, есть возможно селфхоста, все не так плохо.

Да это, конечно, понятно. Просто истинный параноик всегда должен учитывать квантовое превосходство ;)

На KeePassXC, он прям уже совсем торт, но народ всё ещё продолжает ныть что "ну его никто не проверял, буду дальше колоться в проприетарщину"

Bitwarden ведь есть в self-hosted варианте. Можно развернуть на домашнем сервере и, опционально, засунуть за VPN для дополнительной защиты.

В таком случае облачность уже не такая облачная)

за VPN не засунуть, там требуется SSL, потому приходится хостить его наружу

Ну вообще-то можно и вариантов реализации масса. Более того, такой кейс повсеместно используется в организациях с удаленным доступом ( как раз, чтобы внутреннее сервисы работали на публичных ЦС и не требовали установки сертов сверху )

Если хочется с реальным доменом и условным letsencrypt: Берем домен 2ур для получения сертов, получаем wilcard серт, рулим все * домены 3ур на сервак, где уже будет рулить поддоменами условный nginx. В нем для поддомена bitwarden закрываете доступ всем подсетям, кроме подсети вашего туннеля. Profit.

Для получения wildcard вам даже и не потребуется придумывать костыли, чтобы LE смог достучаться до вас. Но даже если хотите - никто не мешает рулить именно amce урл снаружи. Опять же, nginx закрывает этот вопрос с головой.

Если хочется совсем закрыться: Берём самоподписанный серт, ставим на клиентскую сторону, шаманим с hosts, травим dns запросы в vpnе в сторону сервера, в остальном тоже самое.

Ну и в целом, можно и хардкорнее.

Не как замечание, но как подсказка будущим поколениям: в Issue 6 можно было бы переписать код с использованием Pattern matching:
Вместо выражения вида

var userId = folders.FirstOrDefault()?.UserId ??
             ciphers.FirstOrDefault()?.UserId;

if (userId.HasValue)
{
   Consume(userId.Value)
}

Написать

if (folders.FirstOrDefault()?.UserId ?? 
    ciphers.FirstOrDefault()?.UserId 
    is {} userId)
{
  Consume(userId);
};

И больше не иметь дела с nullable int.

Многих ошибок можно было бы избежать, если бы предусловия проверялись бы как можно раньше и как можно проще...

Разбить проверки в Issue 3 на два, в 12 проверить каждое отдельно, в 7 проверить последовательно...

В начале метода в блоке предусловий выходов должно быть столько, сколько нужно, не надо упарываться и пытаться делать только один.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий