(Часть 1) Опишу отдельно и подробнее случай, когда нужно хранить на ненадёжном внешнем ресурсе (а таким можно назвать любое облачное хранилище) регулярно обновляемую закрытую личную коллекцию. Например, всякие наработки ПО, инструментальное ПО и прочее подобное, что необязательно светить всем любопытным роботам в мировой сети. Включая названия файлов и их расширения.
Понятное дело, для таких случаев применяется шифрование на стороне пользователя. Шифрование вместе с именами можно решить покупкой подписки на Boxcryptor, но я выступаю за бесплатные решения или хотя бы такие, которые не предусматривают постоянных выплат кому-то и любой зависимости от сторонних сервисов.
Решение с защитой на обеих сторонах: .vhd + Duplicati
Сразу скажу, почему именно Duplicati. Это единственное известное мне решение для резервирования данных (именно так, т.е. на случай полной утраты), которое умеет и шифровать файлы вместе с именами, и сжимать, и добавлять хэш-суммы, и делать сегментированную модификацию архивов, и работать с облачными хранилищами напрямую, т.е. без костылей типа RaiDrive или жадного NetDrive. И какой-никакой GUI имеется, что вообще-то для подобных монстров редкость (помним про rsync).
На данный момент конкурентов у этого решения именно для безопасного резервирования я не вижу даже близко. Правда, на данный момент мне не удалось запустить копирование напрямую в Google Shared Drive, т.е. я использую в RaiDrive бесплатную возможность записи на свой Team Drive, подключенный как локальный диск, но я уверен, что дело в недостатке знаний.
Опишу вариант для виндоводов, реализуемый встроенными средствами ОС. Для начала установи себе версию Windows 10 выше Home, например, 10про (их легко найти через поисковик по адекватным ценам). Я не призываю использовать пиратские способы активации или утечки OEM серийников, я говорю о покупке легальной активации из Retail серий! Это после активации легко проверить командой slmgr.vbs /dli, виды лицензий перечислены здесь.
Теперь первый необязательный, но желательный этап. Создай виртуальный диск Windows (.vhd) и используй на нём BitLocker. Помещай туда свои чувствительные данные и не забывай отключать диск после их использования.
Инструкций по этой методике защиты в Сети много, вот эта, например. Вся процедура защищает данные от многих видов утраты на стороне пользователя. Не от терморектального криптоанализа, конечно, а от банальной кражи ПК или накопителя, или червя на машине. Теперь тебе остаётся самая интересная задача -- выложить в Сеть содержимое нового .vhd так, чтобы выполнялись специальные условия:
- Виртуальный диск представляет собой большой файл, поэтому нужно, чтобы его частичное обновление не влекло за собой выкладку в Сеть всего файла целиком, а только его какой-то части;
- Данные должны быть наглухо закрыты от их анализа со стороны администрации хранилища или тех, кто в ближайший раз купит учётки с паролями от того или иного сервиса.
- Целостность передачи данных зависела не только от доброй воли и качества ПО конкретного сервиса, т.е. чтобы ПО на стороне клиента проверяло целостность блоков.
Для этого устанавливаем и запускаем Duplicati, открываем его webGUI и указываем в качестве источника свой новый .vhd, а в качестве хранилища -- что угодно. Я пока использую способ для недоучек: через бесплатное соединение с Google Shared Drive посредством RaiDrive, они открыли бесплатную возможность записи на общие диски, за что им сердечное спасибо.
Мануал по Duplicati находится здесь. Текст настолько прост, что онлайн-перевод будет понятен.
Также надо во время создания новой процедуры резервирования внимательно читать о том, на какие одинаковые куски будет удобно нарезать новый .vhd. По умолчанию там указаны 50МБ, что для кучи мелких файлов чуть многовато, а для хранения снимков ОС с чувствительным софтом -- явно маловато: сами-то снимки не модифицируются, к ним лишь добавляются новые. Так что для них можно и 500МБ смело ставить. Думаю, здравый смысл подскажет балансный размер с учётом скорости конкретного соединения. У меня вот оно асимметричное, поэтому куски должны быть мельче ради экономии исходящего трафика при резервировании коллекций, которые меняются внутри себя, а не просто получают добавки.
Защита только от повреждений и утечек при передаче и хранении в "облаках": только Duplicati.
Если ты полностью уверен, что на своей стороне тебе защита не нужна, а нужна она только от сующих свой хобот не в свои данные роботов, то всё категорически упрощается, хотя и не совсем. Дело в том, что Duplicati всё равно нужна для закрытия имён и для правильного автоматического шифрования данных с добавлением хэш-сумм для проверки целостности. Но, повторюсь, это ПО -- для резервирования, оно не делает копий именно файлов, оно делает только копии ровно нарезанных кусков указанных каталогов. То есть, это совсем не классическое ПО для бэкапов, поэтому, с одной стороны, постороннему нельзя распознать хранимые данные по их хэшам, с другой -- восстановление файла должна делать опять же Duplicati, поскольку только ей известно, в каком наборе кусков лежит требуемое. Это и есть резервная копия, т.е. аварийная на случай утраты основной рабочей коллекции.
В остальном всё то же самое.