Filesystem que fornece uma visão criptografada de um diretório - o inverso do EncFS

7

Atualmente estou usando o EncFS para criptografar meu diretório "confidencial" para ".confconfidential" e sincronizar esse diretório criptografado usando um serviço online (por exemplo, Dropbox, UbuntuOne etc). No entanto, todo o meu disco já é criptografado pelo LUKS, portanto, a criptografia dupla prejudica o desempenho.

Gostaria de saber se existe uma opção EncFS "invertida"? Um diretório não criptografado é montado e, no diretório montado, você vê apenas arquivos criptografados. Assim, posso trabalhar com os documentos não criptografados enquanto a ferramenta de sincronização vê e lê / grava apenas os arquivos criptografados.

Esclarecimento : meu principal caso de uso é sincronização e não backup. Eu quero ser capaz de manter máquinas em sincronia com segurança sem a penalidade de criptografia dupla quando operando local (eu tenho que esperar quando eu bati salvar, em comparação ao tempo de transmissão uma operação criptografada é um incremento mínimo no tempo - e é tempo de fundo, não tempo do usuário)

    
por stwissel 28.09.2012 / 04:53

4 respostas

8

Existe realmente uma opção "invertida" Encfs. Na página de manual do Encfs:

   --reverse
       Normally EncFS provides a plaintext view of data on demand.  Normally it stores enciphered data and displays plaintext data.  With --reverse it
       takes as source plaintext data and produces enciphered data on-demand.  This can be useful for creating remote encrypted backups, where you do
       not wish to keep the local files unencrypted.

       For example, the following would create an encrypted view in /tmp/crypt-view.

           encfs --reverse /home/me /tmp/crypt-view

       You could then copy the /tmp/crypt-view directory in order to have a copy of the encrypted data.  You must also keep a copy of the file
       /home/me/.encfs5 which contains the filesystem information.  Together, the two can be used to reproduce the unencrypted data:

           ENCFS5_CONFIG=/home/me/.encfs5 encfs /tmp/crypt-view /tmp/plain-view

       Now /tmp/plain-view contains the same data as /home/me

       Note that --reverse mode only works with limited configuration options, so many settings may be disabled when used.

Eu não tentei sincronizá-lo, mas acho que funcionaria desde que você use a mesma pasta .encfs5 config no outro lado.

    
por Azendale 29.09.2012 / 20:31
2

Agora, como fazer exatamente o que você especifica:

O que você está pedindo é uma visualização do sistema de arquivos somente para leitura que criptografa automaticamente qualquer arquivo lido por ele:

~/
    confidential/
        secret_file.txt      # Stored unencrypted
    .enc_confidential/       # Read-only view of files in confidential/
        secret_file.txt      # Encrypted view of corresponding file

A maneira padrão de fazer isso é usar o FUSE (Filesystem in User-space).

Para o seu caso de uso, já existe um sistema de arquivos FUSE que pode fazer o que você quer, fuseflt . fuseflt fornece uma visualização somente leitura de um sistema de arquivos com filtros arbitrários especificados pelo usuário aplicados a cada arquivo lido.

No seu caso, o filtro que você deseja é um programa de criptografia como gpg .

Veja a documentação de como escrever seu arquivo de configuração. Basicamente, use flt_cmd = gpg --encrypt [... your chosen encryption settings] como o comando filter.

Tenha cuidado; Se você bagunçar sua configuração, ela poderá expor dados em texto simples ao seu serviço de Internet. Eu recomendaria minha outra resposta para uso geral.

Como você também precisa de suporte de gravação para sincronização para funcionar, parece que você terá que escrever seu próprio sistema de arquivos FUSE. Provavelmente não será difícil modificar as fontes fuseflt para adicionar suporte à gravação; basta preencher as funções de gravação que não estão implementadas. Isso funcionaria da mesma forma que o suporte de leitura, chamando um filtro de descriptografia em vez do de criptografia.

Para escrever o seu sistema de arquivos FUSE, vários tutoriais estão disponíveis. Veja também o wiki do FUSE para obter mais documentação.

Depois de fazer isso, adicione seu comando mount do sistema de arquivos FUSE ao seu .profile para que ele seja montado automaticamente no login.

    
por Mechanical snail 28.09.2012 / 07:15
1

É possível, em princípio (usando um sistema de arquivos FUSE), mas uma opção mais simples é usar um programa de backup criptografado pronto usando seu serviço online como destino de backup.

Existem 2 programas de backup adequados que eu conheço. Ambos também fornecem o histórico completo dos seus arquivos.

Duplicidade / Deja-Dup

Duplicidade ( pacote Ubuntu ) é um programa de backup que grava eficientemente backups incrementais criptografados e compactados em um local remoto. Os backups incrementais são eficientes em termos de espaço porque usam o algoritmo rsync para produzir diffs binários.

Você também pode usar o front-end Deja-Dup, que é incluído por padrão nas versões recentes do Ubuntu.

A duplicidade suporta a gravação em vários locais remotos ou backends . Em particular, Duplicity tem um backend Ubuntu One. Eu não acho que ele suporta diretamente o Dropbox, mas você pode dizer para fazer backup no diretório local que o Dropbox sincroniza.

Se você estiver fazendo backup de grandes quantidades de dados, a Duplicidade não será adequada. Devido às limitações de como ele armazena backups incrementais, ele exige a execução periódica de um backup completo, o que implica fazer o upload de todos seus dados.

Obnam

Para backups maiores, veja Obnam . Ele armazena dados criptografados desduplicados em um repositório de backup. Para usá-lo com um serviço de armazenamento remoto, diga ao Obnam para fazer o backup em um repositório em um local que o Dropbox / Ubuntu One irá sincronizar. Como a Obnam usa um formato de repositório baseado na árvore B que precisa apenas escrever dados novos / alterados no repositório, a sincronização deve ser rápida.

A desvantagem é que é necessário armazenar 2 cópias de seus dados em seu disco rígido (a cópia canônica e a cópia no repositório de backup).

link do pacote do Ubuntu . Há também um PPA .

    
por Mechanical snail 28.09.2012 / 06:43
0

Outra ferramenta de sincronização pronta é o Seafile. É uma solução de vários clientes com um único servidor, como o dropbox. Na versão mais recente, há uma opção para compartilhar pastas criptografadas de forma que o servidor não conheça a chave.

Consulte os recursos de segurança do Seafile

Dica: o Seafile chama uma pasta compartilhada de "Biblioteca" para melhor compreensão da documentação.

    
por leenooxer 10.06.2015 / 09:20