@HiDiv
fullstack разработчик (php, js, html, css, vuejs)

Какие есть методы создания децентрализованных хранилищ файлов?

Hi All!

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

Основные требования:

* Чтобы само удаленное файловое хранилище (провайдер) было представлено несколькими (минимум 2!) поставщиками услуг. Даже если это какое-то распределенное решение типа Amazon S3, то сам провайдер может по той или иной причине перестать существовать или перестать оказывать мне услуги, тогда хана всем моим "децентрализованным копиям". Поэтому, пусть лучше провайдеров будет несколько, даже если у них будут "самые базовые услуги" по хранению файлов...

* Все данные должны быть зашифрованы ключом на моей стороне и у провайдеров не должно быть физической возможности расшифровать данные или узнать их структуру (данные хранятся в виде обезличенных файлов, например).

* Сами ключи должны храниться достаточно надежно и в тоже время, я должен иметь возможность в любой момент получить к ним доступ (тут конечно есть противоречия). Желательно наличие многофакторной аутентификации.

* Оплата стоимости хранения (желательно!) была бы в криптовалюте (без участия фиатных денег!) и сама идентификация меня, как потребителя услуг, была бы минимальной, а лучше вообще анонимной.

* Получить доступ к данным (хотя бы на базовом уровне) можно было бы без установки спец.софта или спец.оборудования, например, запустив "специальное" js-приложение в любом браузере. Расширенный же доступ, можно получить после установки какого-то ПО для популярных ОС (меня интересует сейчас только Linux и может быть Android), как к обычным каталогам и файлам ФС без необходимости выкачивать весь архив предварительно из Инет.

* Желательно дополнительная защита от случайного или умышленного удаления/изменения содержимого (версионность).

* Желательно наличие "аварийного входа" (немного паранойи!), чтобы можно было предоставить "ключ/пароль под давлением" и злоумышленник получил бы доступ к "безопасной копии" хранилища.

Последний пункт, стал сейчас довольно актуален, т.к. за не предоставление пароля, запросто можно получить срок... да и "терморектальный криптоанализ" никто не отменял...

Как мне видется (фантазия!) решение, которое меня бы устроило:

* Несколько поставщиков услуг облачного хранения файлов. Желательно, чтобы у них был похожий API для доступа или возможность использовать "более абстрактный API" для доступа ко всем поставщикам.

* Все данные хранятся у поставщиков в виде набора файлов (блоков) с унифицированными именами (например, UID) и одинакового размера (какого?). Сами исходные файлы представлены "цепочками блоков". Каталоги тоже хранятся в блоках.

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

* Создание/изменение/удаление данных реализовано так, чтобы свести к минимуму возможность повреждения данных в процессе обновления, например, взять что-то из "подходов" ZFS...

* Базовый доступ (посмотреть структуру каталогов и имена файлов, скачать какой-то отдельный файл или каталог) через web-приложение (по возможности доступно прямо из хранилища). Расширенный доступ, как к удаленной FS, например, через WebDAV, без выкачивания всех файлов.

Кое-какие решения я уже нашел, но всем, перечисленным выше требованиям, не отвечает ни одно из них... Хотелось бы узнать мнение сообщества по этому вопросу.
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Drno
аренда своих серверов и поднятие там nextcloud
Ответ написан
pindschik
@pindschik
ФЫВА ОЛДЖ
О боже, как всё сложно...
1) Используйте Resilio File Sync для размазывания файлов по нескольким вашим устройствам.
2) Дополнительно сделайте сервер бэкапа, КОТОРЫЙ САМ будет залезать к вашим данным и выгребать их. А залезть на него удаленно, допустим, нельзя вообще никак. Любые входящие соединения в бан.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы