💾 Archived View for tilde.team › ~rami › gocryptfs.gmi captured on 2023-06-14 at 15:30:40. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

🚧 View Differences

-=-=-=-=-=-=-

~Rami ₪ MANUALS

רמי

SUBJECT: GoCryptFS: Прозрачное шифрование каталогов и файлов

AUTHOR: Rami Rosenfeld

DATE: 01/08/22; upd. 14/06/23

TIME: 02.00

LANG: en, ru

LICENSE: GNU FDL 1.3

TAGS: gnu, gnome, software, opensource, linux, system, gui, man, manual, bash, privacy, security, shred, gocryptfs, crypto, droidfs

GOCRYPTFS: ПРОЗРАЧНОЕ ШИФРОВАНИЕ КАТАЛОГОВ И ФАЙЛОВ

INTRO

Резонный вопрос: "Для чего нужна дополнительная защита данных, если у меня установлена ОС с полнодисковым шифрованием?"

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

О программе

GoCryptFS - свободное ПО; создано, чтобы устранить недостатки более старой EncFS (по состоянию на середину 2022 г. - не обновляется уже четыре года). Если мне не изменяет память, схожее шифрование (исключительно каталога /home/username/), основанное на EncFS, использовалось в ранних версиях Ubuntu, да и то - не по умолчанию, а лишь по желанию пользователя.

Это основанная на FUSE криптографическая файловая система, прозрачно шифрующая данные - с обфускацией имен файлов и каталогов (но без обфускации размеров файлов - насколько я понимаю, это существует только в планах). Использует произвольные, заданные при первоначальной активации каталог-источник (шифрованный) и каталог-приемник (точка монтирования расшифрованных файлов). Т.н. "тома" не имеют фиксированного объема, и каталог-источник будет увеличиваться в зависимости от имеющегося свободного дискового пространства. На одной ОС и в пространстве одного пользователя может быть создано несколько таких томов.

Отличается высокой скоростью операций (по сравнению с EncFS), простотой и удобством в работе.

NOTE

Вначале установим ПО из стандартного репозитория:

dnf install gocryptfs

Примечание: В свежем релизе Fedora GNU/Linux отсутствует возможность инсталляции gocryptfs из стандартных или иных репозиториев. Поэтому необходимо скачать текущую версию с сайта производителя, распаковать архив и разместить бинарный файл в каталоге /usr/local/bin/

При необходимости выполните:

chmod a+rx /usr/local/bin/gocryptfs

NB!

Все дальнейшие команды выполняются от текущего непривилегированого пользователя!

В корневом каталоге пользователя ~/ создадим два подкаталога:

$ mkdir ~/.unmount ~/.mount

где:

.unmount - шифрованный (каталог-источник);

.mount - точка монтирования (каталог-приемник).

Эта операция производится один раз!

$ gocryptfs -init ~/.unmount

[будет запрошен пароль; используйте надежный!]

Вместо более слабого алгоритма GCM рекомендую медленный, но надежный AES-SIV. И тогда первоначальная команда инициализации будет выглядеть следующим образом:

$ gocryptfs -init -aessiv ~/.unmount

$ gocryptfs ~/.unmount ~/.mount

[будет запрошен пароль]

Теперь можно приступать к работе. Копируйте те файлы или каталоги, которые вы хотите зашифровать, в каталог ~/.mount

Попутно с этой операцией в каталоге ~/.unmount будут возникать зашифрованные данные с обфусцированными именами. Это можно легко проверить:

$ touch ~/.mount/mytest.txt

$ ls ~/.unmount

gocryptfs.conf (служебный файл! не удалять!)

gocryptfs.diriv (служебный файл! не удалять!)

ZSuIZVzYDy5-TbhWKY-ciA== (ваш зашифрованный файл)

Точно так же производятся другие файловые операции: монтируем файловую систему -- переходим в каталог-приемник -- переносим/удаляем/переименовываем данные.

$ fusermount -u ~/.mount

После исполнения этой команды каталог-приемник /.mount окажется пустым.

Операция производится при отмонтированном каталоге-источнике:

$ gocryptfs -passwd ~/.unmount

[будут запрошены старый и новый пароли]

Операция производится при отмонтированном каталоге-источнике:

$ gocryptfs -fsck ~/.unmount

[будет запрошен пароль]

Decrypting master key
fsck summary: no problems found

$ gocryptfs -info ~/.unmount

Creator: gocryptfs v1.8.0-Fedora-1.8.0-5.fc35
FeatureFlags: GCMIV128 HKDF DirIV EMENames LongNames Raw64
EncryptedKey: 64B
ScryptObject: Salt=32B N=65536 R=8 P=1 KeyLen=32

Для удобства использования в терминале можно создать два алиаса (ВКЛ/ВЫКЛ) в .bashrc:

alias on='gocryptfs ~/.unmount ~/.mount'

alias off='fusermount -u ~/.mount'

Подсказываю: чтобы исключить возможность несанкционированного доступа (и последующего анализа/расшифрования данных), в критической ситуации, требующей быстрых и осмысленных действий, нет необходимости уничтожать все зашифрованные данные. Достаточно уничтожить несколько ключевых файлов GoCryptFS с помощью общеизвестной команды shred:

gocryptfs.conf

gocryptfs.diriv

Проще всего создать еще один "панический" алиас (panic) в .bashrc:

alias panic='shred -n 7 -f -u -z ~/.unmount/gocryptfs.conf ~/.unmount/gocryptfs.diriv'

Важное примечание: совет хорошо работал в EncFS. С GoCryptFS я не могу перепроверить эту информацию - тестируйте самостоятельно.

UPD. 14.06.2023: ОЧЕНЬ ВАЖНО! Исходя из официального ответа разработчика GoCryptFS, уничтожение файлов gocryptfs.conf и gocryptfs.diriv разрушит структуру каталогов, НО(!) данные все же могут быть восстановлены!

Каталоги GoCryptFS являются переносимыми (честно говоря, никогда не пробовал этот опционал; вполне возможно, что на новой ОС потребуется дополнительная инициализация).

ПО изначально создавалось под GNU/Linux, но, если верить создателю, работает на Mac и Windows.

Отличным образом используется в Android (см. отдельное описание Droid FS в разделе Software / Free Droid - с иллюстрациями GUI.

У GoCryptFS имеется неплохая документация на сайте производителя, плюс - стандартный man со множеством интересных опций: man gocryptfs

Дополнительно см.:

Официальная страница GoCryptFS

₪ Back to home ₪

🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.