Существует ли зашифрованная файловая система только для записи для Linux?

14

Я ищу зашифрованную файловую систему для Linux, которая может быть смонтирована в режиме только для записи. Я имею в виду, что вы должны быть в состоянии смонтировать ее без ввода пароля, но все же сможете записывать / добавлять файлы, но вы не должны быть в состоянии читать файлы, которые вы написали, или читать файлы, уже находящиеся в файловой системе. Доступ к файлам должен предоставляться только в том случае, если файловая система смонтирована с помощью пароля. Цель этого состоит в том, чтобы записывать файлы журналов или аналогичные данные, которые только записываются, но никогда не изменяются, без раскрытия самих файлов. Права доступа к файлам здесь не помогают, так как я хочу, чтобы данные были недоступны, даже если система полностью взломана.

Существует ли такая вещь в Linux? Или, если нет, что было бы лучшей альтернативой для создания зашифрованных файлов журнала?

Мой текущий обходной путь состоит из простой передачи данных gpg --encrypt, что работает, но очень громоздко, так как вы не можете легко получить доступ к файловой системе в целом, вы должны передать каждый файл gpg --decryptвручную.

Grumbel
источник
3
Я считаю, что вы можете делать то, что вы хотите через syslog. Это отделяет генерацию сообщений журнала от системы, в которой они хранятся, поэтому приложения, генерирующие сообщения, не имеют доступа к тому месту, где они хранятся. Журналы могут даже (и часто) на отдельном сервере.
mpez0
Я хочу пойти еще дальше и сделать так, чтобы данные вообще не были доступны, не только процессу, который их создал, но и даже пользователю root. Это то, что делает шифрование с открытым ключом с помощью gpg, но я ищу способ сделать это на уровне файловой системы.
Грамбель

Ответы:

4

... Я хочу, чтобы данные были недоступны, даже когда система полностью взломана.

Это невозможно. Если система полностью взломана, тогда «по определению» все, что на ней доступно, включая ключи шифрования.

Шифрование бесполезно для защиты от взлома системы, когда система работает, ЕСЛИ ключи для шифрования / дешифрования данных находятся в одной системе с зашифрованными данными. Например, если у вас смонтирована файловая система LUKS, и кто-то получает root-доступ к вашей системе, можно извлечь ключи из ОЗУ - потому что они должны жить в ОЗУ для расшифровки файловой системы. В вашей ситуации, если вы вводите свою фразу-пароль каждый раз, когда шифруете файл, вы защищены (при условии, что в вашей системе нет кейлоггера), если нет, то вы находитесь в той же ситуации, и кто-то, кто скомпрометирует вашу систему, может обнаружить, что ключ и отменить все ваше шифрование.

Вам необходимо отправить данные, которые вы хотите защитить, за пределы системы + НЕ записывать их на промежуточный носитель в этой системе, если вы абсолютно не хотите, чтобы root получал к ним доступ. rsyslogявно поддерживает это в отношении ведения журнала, и вы можете зашифровать соединение между источником и приемником с помощью OpenVPN stunnelили аналогичного. Я уверен, что есть и другие варианты односторонней передачи.

LawrenceC
источник
1
Пожалуйста, прочитайте en.wikipedia.org/wiki/Public-key_cryptography
rakslice
«потому что они должны жить в оперативной памяти, чтобы расшифровать файловую систему», это может быть верно в отношении LUKS, но не в целом: асимметричное шифрование предназначено именно для этой цели (кто-то, имеющий открытый ключ, может шифровать, но не дешифровать)
Clément
3

Это звучит для меня, как будто вы идете в неправильном направлении. Если вам нужен файл, в который вы можете записывать, но не читать, то права доступа к файлам - это то, что вам нужно.


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

Конечно, этот файл может находиться в зашифрованной файловой системе.

горилла
источник
Вы можете смонтировать файловую систему с указанным umask, не позволяя пользователям изменять разрешения.
Нос
И только владелец файла (или суперпользователь) может изменить разрешение.
горилла
Я думаю, что OP пытается защитить себя даже от злоумышленника, получившего root.
Clément
1
umask 0477 && touch file && echo test > file && cat file

тоже может быть полезным. Любой файл, созданный в текущем процессе, будет иметь режим 0200.

ЕДК
источник