quarta-feira, 8 de julho de 2009

Criando um sistema de arquivo criptografado com o EncFS

O EncFS proporciona um sistema de arquivos criptografado no espaço de usuário de forma transparente. Oferecendo uma segurança contra ataques offline, como por exemplo um roubo do notebook. O EncFS é habilitado pelo FUSE, "Filesystem in Userspace", que é um módulo do kernel que permite criar sistemas de arquivos virtuais. A maioria das distribuições Linux possuem este recurso disponível.

O EncFS opera sobre os arquivos e diretórios, e não sobre um dispositivo de bloco. Os dados são guardados em um sistema de arquivos subjacente e os metadados são protegidos. O EncFS age como um tradutor entre o usuário e o sistema de arquivos, criptografando e descriptografando instantaneamente.

Dentre os benefícios estão facilidade de uso, facilidade de backup, não necessita de um tamanho de volume pré-fixado no disco e somente o usuário que montou o sistema de arquivos tem permissão de acesso, nem mesmo o administrador do sistema tem acesso.

Dois diretórios são envolvidos na criação de um sistema de arquivos criptografado: o diretório principal e o ponto de montagem. Cada arquivo no ponto de montagem corresponde a um arquivo específico no diretório principal, proporcionando um acesso não criptografado a somente este arquivo. Os nomes dos arquivos são criptografados neste diretório principal, mas os atributos, permissões, tamanho e número de arquivos podem ser vistos por todos.

Os arquivos são criptografados usando uma chave de volume que é armazenada de forma criptografada dentro do diretório principal. Uma senha é usada para descriptografar esta chave, que pode ter tamanho de até 256 bits.

Para que isto funcione é necessário que em seu sistema Linux estejam instalados os pacotes do FUSE e do EncFS, na distro Fedora são os pacotes "fuse", "fuse-encfs" e provavelmente algumas dependências.

Vou partir supondo que os usuários já estão com permissão de acesso aos recursos do FUSE, então primeiramente cria-se os diretórios que serão o principal e o ponto de montagem. Fica mais interessante deixar o diretório principal oculto pois ele não será utilizado diretamente pelo usuário:

mkdir ~/.dircripto ~/pontom

Agora vamos utilizar o programa EncFS para criar o novo volume criptografado. É necessário usar caminhos absolutos para os diretórios:

encfs ~/.dircripto ~/pontom

Na primeira vez que for executado este comando o EncFS vai mostrar o menu de configuração que contém três opções para escolher o modo e o nível da criptografia. No modo avançado o EncFS faz uma série de perguntas ao usuário para a escolha item a item, e nas outras opções uma configuração pré-estabelecida é utilizada. Nos três casos a última pergunta é para a escolha da senha de acesso.

Para começar a utilizar o sistema de arquivos criptografado basta executar novamente o comando anterior. Será realizada então a montagem do seu volume criptografado. A senha será pedida sempre nesta ação de montagem:

encfs ~/.dircripto ~/pontom

Copie ou crie os arquivos que desejar para dentro do ponto de montagem, é este diretório que será acessível ao usuário. Analisando o diretório principal percebe-se os nomes dos arquivos protegidos por caracteres aleatórios e seus conteúdos estão ilegíveis. Junto é acrescentado um arquivo semelhante a ".encfs6.xml", este arquivo contém as configurações do volume criptografado.

Para desmontar o volume usa-se o comando abaixo:

fusermount -u ~/pontom

Esta criptografia também pode ser útil para proteger os arquivos do diretório do leitor de e-mail, do navegador, do cliente de mensagens instantâneas etc. Para isto mova o diretório de configuração de cada aplicativo para dentro do volume criptografado e crie uma ligação simbólica para lá com o mesmo nome. Veja exemplo:

mv .thunderbird ~/pontom
ln -s ~/pontom/.thunderbird .

Os backups também são fáceis de realizar, bastando gerar uma cópia do diretório principal e sempre desmonte o volume antes de executar o backup para não correr riscos. O backup é feito a partir do conteúdo criptografado portanto também está protegido. Veja exemplo:

tar czvf ArquivosProtegidos.tgz ~/.dircripto

Observação: Os nomes dos diretórios são apenas exemplos, escolha o que melhor servir.

Nenhum comentário:

Postar um comentário