Вопрос или проблема
Я хочу зашифровать папку, в которой находятся мои файлы org-mode в неактивном состоянии, отдельно от шифрования на уровне операционной системы. При работе с этими файлами я хотел бы, чтобы они автоматически расшифровывались, чтобы я мог использовать все основанные на файлах инструменты Linux и emacs, git, rsync и т.д. Например, я хотел бы хранить файлы под версионным контролем в нескольких местах (например, на ноутбуке и резервном сервере), чтобы я мог легко отправлять и получать инкрементальные обновления.
Тем не менее, поскольку файлы являются приватными, они должны быть зашифрованы на резервном сервере, за исключением случаев синхронизации обновлений. Папка также должна быть зашифрована на моем ноутбуке, чтобы даже если кто-то сможет войти в мой аккаунт после перезагрузки, ему понадобился бы дополнительный пароль для расшифровки моей личной папки (заметка: моя личная папка не является папкой /home/. Она может находиться внутри домашней папки или на флешке). Меня устраивает, что файлы могут быть смонтированы таким образом, чтобы они оставались читаемыми, пока я не выйду из системы или не перезагружу компьютер. Но файлы должны быть смонтированы так, чтобы их не приходилось активно возвращать в зашифрованное состояние при завершении работы. То есть, если произошло отключение электроэнергии или флешка была просто извлечена, данные останутся зашифрованными, пока не будут разблокированы снова.
Подводя итог, требования таковы:
- папка всегда зашифрована в неактивном состоянии (нет необходимости заново шифровать при завершении работы)
- папка может быть смонтирована в расшифрованном виде прозрачным образом для использования стандартных инструментов (она выглядит как обычная папка для этих инструментов)
- папка может расти, чтобы я мог изменять и добавлять файлы, не выделяя огромный объем пространства заранее
- зашифрованная папка должна вести себя как файл, который можно копировать без специальных инструментов и хранить на любой обычной файловой системе
Бонус:
- использование только широко доступных инструментов
- может быть распространена в виде “пакета” на флешке, чтобы я мог быстро получить доступ к своим файлам на новой системе (т.е. все инструменты, необходимые для расшифровки, могут быть доставлены в виде автономных бинарников)
- возможно настроить несколько ключей, включая второй основной ключ (который я хранил бы где-то на случай, если забуду пароль)
Какие хорошие варианты доступны для выполнения этих требований и, возможно, даже некоторых бонусов?
Судя по всему, https://github.com/vgough/encfs должен удовлетворить все ваши потребности.
Или https://www.ecryptfs.org/, который является более современной реализацией с интересными функциями.
Ответ или решение
Для обеспечения безопасного хранения ваших файлов org-mode в зашифрованной папке, можно рассмотреть несколько подходящих решений. Основные требования, указанные вами, — это прозрачное шифрование, возможность использования стандартных инструментов Linux, поддержка версии файлов и сохранение удобства при работе с файлами. Ниже я опишу два наиболее подходящих варианта: EncFS и eCryptfs.
EncFS
EncFS — это решение, которое хорошо соответствует вашим требованиям:
-
Шифрование на уровне папки: EncFS создает виртуальную файловую систему, где данные шифруются и декодируются на лету, что позволяет использовать стандартные инструменты, такие как git и rsync, как если бы вы работали с обычными файлами.
-
Защита данных в покое: Данные на диске остаются зашифрованными до тех пор, пока вы не размонтируете файловую систему. Это отвечает вашему требованию о том, чтобы файлы оставались защищенными даже в случае отключения питания или потери USB-накопителя.
-
Гибкость: EncFS может расширяться без необходимости выделять большое количество пространства заранее, благодаря чему файлы могут добавляться и изменяться без особых затрат.
-
Переносимость: Зашифрованная папка может легко копироваться и переноситься на другие файловые системы без необходимости использования специализированных инструментов.
-
Широкая доступность: EncFS доступен в большинстве дистрибутивов Linux и не требует сложного процесса установки.
eCryptfs
eCryptfs — это еще одно современное решение:
-
Интеграция с ядром Linux: eCryptfs является модулем уровня ядра, который позволяет реализовать шифрование с гораздо меньшими накладными расходами. Это может улучшить производительность.
-
Транспарентное шифрование: Как и в случае с EncFS, файлы в eCryptfs выглядят как обычные файлы и могут быть использованы с любыми приложениями.
-
Управление ключами: eCryptfs позволяет создавать несколько ключей, включая возможность настройки вспомогательных ключей, что отвечает вашему дополнительному требованию.
-
Параметры конфигурации: eCryptfs предоставляет множество опций для настройки, что позволяет адаптировать шифрование под ваши специфические нужды.
Реализация
Для реализации шифрования на вашем устройстве с использованием EncFS или eCryptfs, выполните следующие шаги:
-
Установите необходимый пакет:
Для EncFS:sudo apt-get install encfs
Для eCryptfs:
sudo apt-get install ecryptfs-utils
-
Создайте защищенную папку:
mkdir ~/encrypted_folder encfs ~/encrypted_folder ~/mounted_folder
-
Следуйте интерактивным указаниям для настройки шифрования и входа пароля.
-
Работайте с вашими файлами в
~/mounted_folder
, и они автоматически будут шифроваться и дешифроваться. -
Резервное копирование и синхронизация: При необходимости используйте
rsync
иgit
, указав путь к размонтированной папке.
Заключение
Подводя итог, как EncFS, так и eCryptfs предлагают надежные решения для шифрования данных в Linux. Каждый из этих вариантов обладает своими уникальными характеристиками, и выбор между ними будет зависеть от ваших предпочтений и специфических требований. Не забудьте также обратить внимание на безопасность ваших ключей шифрования и паролей для обеспечения максимальной защиты ваших конфиденциальных данных.