LINUX.ORG.RU

Self-hosted хранилище паролей с доступом через сеть

 , , ,


0

1

tl;dr: Я увидел в работе всё нижеописанное на сайте passpack.com, но его код закрыт – нельзя провести аудит кода и нельзя захостить у себя такой же. Ищется опенсорсный аналог.

Сейчас стали модными всякие ownCloud, MediaGoblin, GitLab и прочие хорошие вещи с веб-интерфейсами, которые можно захостить у себя на сервере (это называется self-hosted, aka on-premise, как подсказал GitLab) и опционально сделать доступными из Интернета, а не только локалки (либо VPN).

В то же время стала модной почта с шифрованием в браузере, например ProtonMail.ch или Whiteout.io, которая работает по следующему принципу: Сначала пользователь вводит свой логин и пароль от сайта, которые проверяются сервером, а потом в браузер загружаются зашифрованные каким-нибудь алгоритмом данные (условно – блоб), который может открыть только юзер с правильным паролем. Пароль от блоба серверу неизвестен. Такой информационной системе можно доверять при выполнении двух условий:

1) Проверка алгоритма шифрования данных юзера (в данном случае почты) подтвердила достаточную его надёжность.

2) Аудит скриптов, исполняемых браузером, подтвертил отсутствие в нём серьёзных ошибок, дыр и сливов данных.

Что я, собственно, ищу: систему для хранения паролей и других конфиденциальных данных, которая сочетала бы первый тип сервисов со вторым – чтобы, во-первых, можно было захостить у себя, во-вторых, чтобы сервер не мог те данные расшифровать (т.е. взлом сервера не означал бы компрометацию данных в блобе), и, в-третьих, владельцу данных было максимально просто получить к ним доступ при достаточном уровне безопасности. Зонды в браузерах и ОС – отдельная тема для разговора, и её прошу пропустить в комментариях.

Если ничего подобного нет, то предлагайте то же самое, но без доступа через браузер, либо идеи о том, как сваять своё. Сейчас использую публичный ownCloud, где лежит kdb для KeePassX. Минусы:

1) Не нравится то, что для него нужно ставить софтину (а иногда доступ нужен с чужих машин, где софт поставить нельзя, или на это нет времени).

2) Доверие к публичному ownCloud не безгранично. Надеюсь только на стойкость шифрования софта и длину пароля. Если переехать на свой сервер, то не доверять можно разве что хостеру, так что это не такая уж и большая проблема.

3) По причине №2 на ownCloud я храню только часть паролей (некритичные), остальные – на флэшке. Её можно забыть и остаться без доступа к нужному ресурсу.

Плюсы:

1) Работает без доступа к сети, kdb можно носить на флэшке.

2) Это же KeePassX.


VPS и HTTPS-страничка, закрытая стандартной HTTP DIGEST аутентификацией. В страничке хранятся твои данные в зашифрованном виде, а JS-скрипт запрашивает у тебя пароль расшифрования и расшифровывает прямо в браузере.

Вариант 2: ssh на хост, и там работать с файликом :) открыл сессию, расшифровал файлик в stdout, закрыл сессию :)

Krieger_Od ★★ ()

plaintext на личном owncloud, в шифрованном каталоге.

thesis ★★★★★ ()
Ответ на: комментарий от Krieger_Od

А зачем дайджест? Одним и тем же паролем дешифровать, да и всё. Можно обойтись вообще без всего: сервер настроен принимать только post с мастер-паролем и именем ресурса в параметрах, по https, разумеется. Ответ - кусочек текста, вынутый из $docroot/resource.enc.txt.

thesis ★★★★★ ()
Ответ на: комментарий от thesis

А шифрованный каталог как организовать? Можно взять какой-нибудь RAR (их сложно взломать) или что-то подобное и держать там всё нужное, но это уже включает необходимость сохранения файла и необходимость начличия программы-архиватора, хотя последние есть почти на любой машине.

xenith ()
Ответ на: комментарий от Krieger_Od

Вариант 1

Если за это взяться, то моя работа будет заключаться в подборе готовых кусочков и склейке их между собой самописной страничкой с самописным скриптом, создающим и редактирующим данные. Может быть, готовыми будут только JS для браузера, отвечающие за (де)сериализацию данных, их (рас)шифровку и формирование блоба, который POSTитися серверу. Вариант не самый сложный, но за самоделки возьмусь в предпоследнюю очередь, когда (и если) всё остальное не подойдёт – серверные скрипты достаточно просты, чтобы написать их самому, а вот JS я знаю на уровне «сделать плавный скролл на jQuery» и «сделать alert('xss') на дырявом сайте», поэтому такая затея затянется, хоть она и интересна.

Вариант 2

А пароль от ssh где хранить? :)

Сейчас ношу на телефоне (который заменяет флэшку) приватный ключ, так что такое решение допустимо.

xenith ()
Ответ на: комментарий от thesis

Оно небезопасно. Сервер знает пароль от зашифрованного хранилища. Либо я что-то не то прочитал в их мануале.

xenith ()

С полгода назад нашёл решене: RatticDB (http://rattic.org/). Как под заказ, все/почти все мои хотелки там есть.

xenith ()
Ответ на: комментарий от xenith

так а разве оно не хранит пароли в открытом виде на сервере, полностью полагаясь на его безопастность?

val-amart ★★★★★ ()

вроде бы вим можно для этого использовать. Даже когда-то на статью натыкался. Кажется эту https://habrahabr.ru/post/222805/

Dred ★★★★★ ()
Ответ на: комментарий от val-amart

Да. Я его частично спутал с KeeWeb.

Последний выглядит довольно интересно из-за возможности работать в оффлайне – достаточно скачать себе html отсюда. Когда я его последний раз проверял, ещё не было pseudo-stand-alone приложения на Electron. Если считать браузеры условно доверенными, то такое можно носить на флэшке и оно будет работать на любой платформе.

xenith ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.