Como entender os conceitos do sistema de arquivos usados pelo encfs?

3

Eu não tenho uma compreensão profunda dos conceitos de ciência da computação, mas gostaria de aprender mais sobre como o utilitário encfs funciona. Eu tenho algumas perguntas sobre o conceito de sistema de arquivos em relação ao encfs . Diz-se que o encfs é um link wiki do sistema de arquivos criptográfico.

1) Para criptografar os arquivos encfs estão movendo blocos dos arquivos a serem criptografados, estou correto em ver essa versão 'embaralhada' dos arquivos como uma nova perspectiva que justifica o termo de um novo sistema de arquivos?

2) Nas páginas man do encfs na seção CEVEATS link para man de encfs online , ele diz que encfs não é um sistema de arquivos verdadeiro. Como devo entender isso? Isso ocorre porque alguns recursos necessários comuns a todos os sistemas de arquivos estão ausentes no sistema de arquivos encfs ? Ou é por causa de alguma outra razão mais substancial?

3) As páginas man dizem que cria um sistema de arquivos criptografado virtual . Há duas perguntas aqui; O que torna isso virtual? É um sistema de arquivos dentro de um sistema de arquivos? e o criptografado é que não existe uma maneira direta de mapear os blocos de arquivos em um formato a ser lido por outros programas?

4) Como o comando fusermount está relacionado ao encfs?

    
por Vass 11.01.2012 / 22:44

2 respostas

5

Eu acho que por trás da sua descrição, há um equívoco. Os dados não criptografados não são armazenados no disco a qualquer momento. Quando você escreve em um arquivo no sistema de arquivos encfs, a instrução write vai para o processo encfs ; O processo encfs criptografa os dados (na memória) e grava o texto cifrado em um arquivo. Os nomes dos arquivos, bem como o conteúdo do arquivo, são criptografados. A leitura de um arquivo passa pelo processo oposto: encfs lê os dados criptografados do arquivo em disco, descriptografa-os na memória e transmite o texto simples para o aplicativo solicitante.

Quando você executa o comando encfs , ele não descriptografa nenhum dado. Ele usa apenas a senha que você fornece para desbloquear a chave secreta do sistema de arquivos. (Esta é realmente uma operação de decodificação, criptograficamente falando, mas um tipo diferente do que acontece com os dados do arquivo. Eu não entrarei em mais detalhes aqui.)

1) Encfs não é exatamente "mover blocos ao redor"; é decodificar blocos quando os lê. Encfs é um sistema de arquivos porque se comporta como um: você pode armazenar arquivos nele, quando ele é montado.

2) Encfs não é um sistema de arquivos “verdadeiro” porque não funciona de forma independente. Encfs fornece apenas uma camada de criptografia; ele usa um sistema de arquivos subjacente para armazenar dados e metadados (metadados são informações auxiliares sobre arquivos, como permissões e horários de modificação).

3) Sistema de arquivos virtual é outra maneira de dizer que o próprio encfs não armazena nenhum dado, ele precisa de um sistema de arquivos subjacente (veja (2) acima) para isso. Criptografado significa exatamente isso: o encfs armazena os dados que você coloca em um formulário criptografado, que não pode ser descriptografado sem a chave. Outro programa poderia ler os dados armazenados pelo encfs se e somente se esse outro programa tivesse acesso à chave (o que requer a senha com a qual a chave é protegida).

4) O comando fusermount configura um ponto de montagem do FUSE. Você normalmente não o chamaria diretamente, porque um sistema de arquivos FUSE é implementado por um processo no modo de usuário que você deve iniciar de qualquer maneira, e esse processo (por exemplo, encfs ) cuidará da configuração do ponto de montagem. A desmontagem de um sistema de arquivos FUSE, por outro lado, é uma operação genérica, você sempre pode fazer isso chamando fusermount -u .

    
por 12.01.2012 / 03:24
3

1) Não. Ele traduz blocos do arquivo por meio de um algoritmo de criptografia. Movendo blocos ao redor implicaria que você poderia ver um pedaço do arquivo, apenas fora de ordem. Este não é o caso. Não há nenhum bit do arquivo original que possa ser visualizado na versão criptografada.

2) Não é um verdadeiro sistema de arquivos, porque não lida com o armazenamento real dos dados, apenas o traduz. Portanto, ele não precisa se preocupar com coisas como corrupção do sistema de arquivos, registro no diário, permissões de acesso, etc. Tudo isso é tratado pelo sistema de arquivos subjacente.

3) A) Isto é exatamente o mesmo que o # 2. Significa simplesmente que não é um sistema de arquivos real, apenas parece um. B) Não, não há maneira direta de mapear os blocos de arquivos, veja o item 1. Os dados criptografados podem ser lidos por outros programas, sim, mas o outro programa precisaria conhecer a chave de criptografia. Nada pode ser lido sem essa chave.

4) O FUSE é um método de implementação de sistemas de arquivos no linux. Normalmente, o código para manipular o sistema de arquivos é executado dentro do kernel do Linux. No caso dos sistemas de arquivos FUSE, um programa real executa o trabalho do sistema de arquivos. Um programa que você pode ver com ps e até kill . fusermount é apenas um comando usado para montar sistemas de arquivos de fusíveis. Você pode montar sistemas de arquivos FUSE com o comando normal mount , mas fusermount permite que usuários não-root montem o sistema de arquivos.

    
por 12.01.2012 / 00:21