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

3

Eu tenho um processo que gostaria de ter acesso a um sistema de arquivos criptografado. Isso é muito fácil de fazer com o EncFS, mas isso exige que um usuário monte o sistema de arquivos criptografados, portanto, qualquer usuário que tenha acesso ao usuário de montagem acessa os dados, por exemplo, raiz.

É possível que o processo monte o sistema de arquivos para que apenas ele tenha acesso aos dados? Se não, existe outra maneira de impedir que aqueles que não sabem a senha acessem os dados?

    
por Jomasi 08.10.2013 / 23:08

3 respostas

3

O que o 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 opção allow_other do fusível), mas sempre pode alternar para esse usuário.

No entanto , o que você pode fazer é preguiçar desmontar a montagem após o processo ter alterado 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 possam acessar o ponto de montagem, mas os processos que estavam sendo executados dentro dele continuarão tendo acesso.

Exemplo

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

some_long_running_process e qualquer processo filho que tenha sido gerado terá acesso total ao ponto de montagem. Mas se qualquer coisa que não for um filho desse processo tentar acessar a montagem, ela apenas obterá um diretório vazio.

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

Note também que ainda existem algumas maneiras de o root obter acesso ao ponto de montagem, mas elas não são simples e são muito hackish.

    
por 09.10.2013 / 04:33
2

Apenas o usuário de montagem pode acessar o sistema de arquivos encfs. Mesmo os processos em execução como root obtêm um erro de “permissão negada”; claro, eles podem mudar para o usuário de montagem e 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 mais impedir que o root acesse arquivos do que você pode evitar que Deus / Papai Noel / seus pais /… ¹ saibam o que você fez ontem à noite. Se você não confiar em um usuário, não dê a ele o privilégio de executar comandos como root.

¹ Escolha o que for aplicável.

    
por 09.10.2013 / 03:38
1

Bem, de acordo com este Q & A intitulado: encfs com expectativa de acesso negado parece que mesmo o root não pode acessar o EncFS se um usuário em particular fez a montagem.

trecho

But it looks like you used your regular user to mount the encrypted directory, and then you are trying to see the mounted files with root using sudo. That will not work, and is the whole point of encfs.

In your example the directory cr is the storage used by encfs. The content of this is no big secret, it's encrypted data. You are mounting this data on mn, so that you can see its contents in a human-readable way, as files under mn.

Only the user that mounts cr will be able to read what's inside mn. Not even root can.

Mas para o usuário mais experiente, nada impede que o root faça o su - <user> e se torne esse usuário, para que ele possa acessar o compartilhamento EncFS montado.

Como já foi dito várias 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 para o administrador em um sistema Windows.

    
por 08.10.2013 / 23:30