Como criptografar diretórios com eCryptfs no Linux

Como criptografar um diretório com eCryptfs no Linux

Mascote do eCryptfs no Linux

O eCryptfs é um sistema de arquivos criptográfico para Linux, que pode ser utilizado para criptografar partições de disco e diretórios no sistema, independentemente do sistema de arquivos e tipo de partição empregados. Vamos mostrar como empregar esse programa para criptografar diretórios em um sistema Linux Ubuntu.

O site oficial do utilitário é o www.ecryptfs.org, onde você pode obter pacotes binários, código-fonte e documentação completa.

Vou criar um diretório para testes, de nome /dirSecreto, na raiz de meu sistema, usando o comando mkdir, como usuário root:

mkdir /dirSecreto

Instalando o eCryptfs

Para instalar o pacote de criptografia, execute o comando a seguir no terminal:

apt-get -y install ecryptfs-utils

Criptografar o diretório

Para criptografar o diretório /dirSecreto ele deve ser montado sobre si mesmo com o sistema de arquivos do tipo ecryptfs, usando o comando a seguir:

mount -t ecryptfs /dirSecreto /dirSecreto

Uma observação importante é que se você já tiver arquivos dentro do diretório que será criptografado, faça um backup para outra pasta no sistema, pois eles não estarão acessíveis após aplicar a criptografia no diretório. Depois de criptografar o diretório, copie de volta esses arquivos, para que eles sejam criptografados também.

Ao realizar a montagem, algumas perguntas serão feitas no terminal interativo, como por exemplo o tipo de criptografia a ser empregada, uma passphrase e outros parâmetros. Responda como no exemplo a seguir (respostas em negrito e vermelho:

Passphrase: [digite uma frase / senha de sua escolha]
Select cipher: 
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32
 2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: 1
Select key bytes: 
 1) 16
 2) 32
 3) 24
Selection [16]: 1
Enable plaintext passthrough (y/n) [n]: n
Enable filename encryption (y/n) [n]: n
Attempting to mount with the following options:
 ecryptfs_unlink_sigs
 ecryptfs_key_bytes=16
 ecryptfs_cipher=aes
 ecryptfs_sig=1605c7371787fc26
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
it looks like you have never mounted with this key 
before. This could mean that you have typed your 
passphrase wrong.

Would you like to proceed with the mount (yes/no)? : yes
Would you like to append sig [1605c7371787fc26] to
[/root/.ecryptfs/sig-cache.txt] 
in order to avoid this warning in the future (yes/no)? : yes
Successfully appended new sig to user sig cache file
Mounted eCryptfs

Após realizar a criptografia do diretório, execute o comando mount para verificar se o procedimento teve êxito:

mount

Saída do comando mount (mostrando apenas a linha que interessa):

/dirSecreto on /dirSecreto type ecryptfs (rw,relatime,ecryptfs_sig=1605c7371787fc26,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)

O diretório foi criptografado com os parâmetros fornecidos anteriormente.

Testando a criptografia

Vamos testar a criptografia aplicada no diretório criando um arquivo de texto nele. Entre no diretório /dirSecreto e crie um arquivo com seu editor de textos preferido. Digite qualquer coisa dentro dele, salve e saia. Vou digitar a frase "O conteúdo deste arquivo está protegido!". O arquivo estará criptografado:

vi testeArquivo

Verifique se ele é legível:

cat testeArquivo

O conteúdo deste arquivo está protegido!

Conseguimos ler o conteúdo do arquivo pois o diretório criptografado está montado no momento. Para que não seja possível acessar o conteúdo do arquivo, basta desmontar o diretório com o comando umount (saia do diretório antes!):

umount /dirSecreto

Se tentarmos ler o conteúdo do arquivo novamente, eis o que obteremos:

cat testeArquivo

Saída:
+�v�!g�5�"3DUfw`�t�H#=���ҫ�4�%�_CONSOLE�7��&%���k���O����i���z2����)4����QU�Ϻ�A��͑}��s���)�T�cj
��tUہ��(��N��+�q#\Gv-�+5��*����W�R�N�L��
�]�U�����Z
��u���8

I�{O��JTJ�wmDY�i���������w�ID�_Y��En��Lr�$��@����6�]
J�x?4�Ӣ�6���H*9�np�F!w���P扁�E��q���|3�L��H�s�IJ�5�-Ǫa���;�v
Vt��r>����9ڐy�O��EJ������l'��k~x�PY־��be�~�r��S3K_S��xƛ�\���{�43����Z����>kl�X���΢�&��q��.`�/Ɗ����Uc
B��R&���y�)���4x��u��F�����u}�!�Ne�r��ga2\�{>�#�j,�\G�p%h��'��~~�*���9�@g&W��dd`�ͩ8�����\�y��|�gi�00\i{���EkX�E\GMMg
9qt�K[NL��l�h<��g��
���$�}�:�Q/�A�
����}s]<�n��e}g�SRm.娴G�r7(
�=�7�{���A�To9����_D��o��G8}wM��ω�����y�CA������̗S3��Zk;��{��S1iW1���
�ݳ��zej]P`��t�v�;�j��¬��2��)h#
?�+E
bV��U���M���q� H�_]&�O�
��
�@�g���|���&2e��C�Z�U�;�
d�w�`�"����%�D���ĝq��`v�(���`�h�K5�xO��ZWQHzyK��,����^6�z���O�1F, �D��q2���
?�XTw������J8qQ?�2�4g��\vQ�Dv$@��~ċ(��:|��.��0���/��|~�az�
�Be�m���UVW���B���%�銃w̩
| �4�� ��.K��o�`l����>"P?)�=�Ӳ��~�+�&b�b^87�#��U";�Rݨ���j����(�j4H߳��� �oH�`$��ā�^�#n��t����(��܊N�7��i����lx�P��^�K���u�M�9*z#�)F�
[saída truncada]

Como podemos ver claramente, o arquivo está no diretório, porém é ilegível, por estar criptografado. Para que possa ser lido novamente, é necessário montar o diretório, usando os mesmos parâmetros que foram usados anteriormente.

Montando a partição criptografada automaticamente durante o boot

Para que não seja necessário montar manualmente a partição toda vez que quisermos utilizar os arquivos criptografados, vamos montá-la automaticamente durante  a inicialização do sistema. Veremos esse procedimento na parte 02 deste tutorial.

 

 

Sobre Fábio dos Reis (1173 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*