Existe um sistema de arquivos somente para gravação criptografado para Linux?

14

Estou procurando por um sistema de arquivos criptografado para Linux que possa ser montado em um modo somente gravação, ou seja, você deve ser capaz de montá-lo sem fornecer uma senha, e ainda assim ser capaz de gravar / anexar arquivos, mas você também não deve ler os arquivos que escreveu nem ler os arquivos que já estão no sistema de arquivos. O acesso aos arquivos deve ser dado somente quando o sistema de arquivos é montado por meio da senha. O objetivo disso é gravar arquivos de log ou dados semelhantes que são escritos apenas, mas nunca modificados, sem que os arquivos sejam expostos. As permissões de arquivo não ajudam aqui, pois quero que os dados fiquem inacessíveis mesmo quando o sistema estiver totalmente comprometido.

Existe tal coisa no Linux? Ou, se não, qual seria a melhor alternativa para criar arquivos de log criptografados?

Minha solução atual consiste em simplesmente enviar os dados através de gpg --encrypt , o que funciona, mas é muito trabalhoso, já que você não pode acessar o sistema de arquivos como um todo, você tem que enviar cada arquivo através de gpg --decrypt manualmente.

    
por Grumbel 21.04.2010 / 14:15

3 respostas

4

...I want the data to be inaccessible even when the system is fully compromised.

Isso não é possível. Se o sistema estiver totalmente comprometido, então "por definição" qualquer coisa nele estará acessível - incluindo chaves de criptografia.

A criptografia é inútil na proteção contra comprometimento do sistema, enquanto o sistema está em execução, SE as chaves para criptografar / descriptografar dados estiverem no mesmo sistema com os dados criptografados. Por exemplo, se você tem um sistema de arquivos LUKS montado e alguém obtém acesso root ao seu sistema, é possível extrair as chaves da RAM - porque elas precisam viver na RAM para descriptografar o sistema de arquivos. Na sua situação, se você estiver digitando sua senha todas as vezes que criptografar um arquivo, você estará protegido (supondo que um keylogger não esteja presente em seu sistema), caso contrário, você estará na mesma situação e alguém que comprometa seu sistema chave e desfazer toda a sua criptografia.

Você precisa enviar os dados que deseja proteger para fora do sistema + NÃO gravá-los em um meio intermediário nesse sistema, se você não quiser que o root chegue a ele. rsyslog explicitamente suporta isso com relação ao registro em log, e você pode criptografar a conexão entre a origem e o coletor com o OpenVPN, stunnel ou similar. Tenho certeza de que há outras opções de transferência "unidirecionais" por aí.

    
por 28.03.2012 / 12:50
3

Parece-me que você está indo na direção errada. Se você quiser um arquivo no qual possa escrever, mas não leia, as permissões de arquivo são o que você está procurando.


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

Claro, esse arquivo pode estar em um sistema de arquivos criptografado.

    
por 21.04.2010 / 14:40
1
umask 0477 && touch file && echo test > file && cat file

pode ser útil também. Qualquer arquivo criado no processo atual terá o modo 0200.

    
por 21.04.2010 / 14:54