Use EncFS para criptografar arquivos para que um determinado usuário ou processo possa acessá-los, mas o root não pode

Use EncFS para criptografar arquivos para que um determinado usuário ou processo possa acessá-los, mas o root não pode

Tenho um processo ao qual gostaria de ter acesso a um sistema de arquivos criptografado. Isso é muito fácil de fazer com o EncFS, mas requer que um usuário monte o sistema de arquivos criptografado, dando assim a qualquer usuário que tenha acesso ao usuário de montagem acesso aos dados, por exemplo, root.

É possível fazer com que o processo monte o sistema de arquivos para que somente ele tenha acesso aos dados? Caso contrário, existe outra maneira de impedir que aqueles que não conhecem a senha acessem os dados?

Responder1

O que Gilles disse está correto, você não pode impedir que o root acesse a montagem. Talvez não seja possível acessar a montagem diretamente (sem a allow_otheropção de fusível), mas sempre é possível alternar para esse usuário.

No entanto, o que você pode fazer é desmontar lentamente a montagem depois que o processo alterou seu diretório de trabalho atual para o ponto de montagem. Quando o processo estiver dentro do ponto de montagem, você poderá fazer uma desmontagem lenta. Isso impedirá que novos processos acessem o ponto de montagem, mas os processos que estavam em execução dentro dele continuarão a ter acesso.


Exemplo

encfs /enc/source /enc/target
( cd /enc/target && some_long_running_process) &
fusermount -uz /enc/target

some_long_running_process, e todos os processos filhos gerados terão acesso total ao ponto de montagem. Mas se algo que não seja filho desse processo tentar acessar a montagem, obterá apenas um diretório vazio.


Observe que há uma breve janela onde o ponto de montagem está disponível, na qual outra coisa pode mudar de diretório para ele, mas a janela é muito pequena se estiver em script.

Observe também que ainda existem algumas maneiras pelas quais o root pode obter acesso ao ponto de montagem, mas elas não são simples e sãomuitohackeado.

Responder2

Somente o usuário de montagem pode acessar o sistema de arquivos encfs. Mesmo os processos executados como root recebem um erro de “permissão negada”; claro, eles podem mudar para o usuário de montagem e então acessar os dados.

É impossível tornar os dados inacessíveis ao root. Por definição, o root é todo-poderoso e tem acesso a tudo. Você não pode impedir que o root acesse arquivos, assim como não pode impedir que Deus/Papai Noel/seus pais/…¹ saibam o que você fez ontem à noite. Se você não confia em um usuário, não dê a ele o privilégio de executar comandos como root.

¹ Escolha o que for aplicável.

Responder3

Bem, de acordo com estas perguntas e respostas intituladas:encfs com acesso esperado negadoparece que nem o root pode acessar o EncFS se um usuário específico fez a montagem.

excerto

Mas parece que você usou seu usuário normal para montar o diretório criptografado e então está tentando ver os arquivos montados com root usando sudo. Isso não funcionará e é o objetivo do encfs.

No seu exemplo, o diretório cr é o armazenamento usado pelo encfs. O conteúdo disso não é nenhum grande segredo, são dados criptografados. Você está montando esses dados em mn, para poder ver seu conteúdo de uma forma legível, como arquivos em mn.

Somente o usuário que montar o cr poderá ler o que está dentro do mn. Nem mesmo o root consegue.

Mas para o usuário mais experiente, não há nada que impeça o root de apenas fazer um su - <user>e se tornar esse usuário, para que possa acessar o compartilhamento EncFS montado.

Como já foi dito muitas vezes neste site, não há nada que você possa fazer para impedir que o root acesse qualquer coisa que seja local no sistema. É assim que o sistema funciona. O mesmo pode ser dito do Administrador em um sistema Windows.

informação relacionada