Bóson Treinamentos em Ciência e Tecnologia

Como criptografar diretórios com eCryptfs no Linux

Criptografando diretórios com eCryptfs no Linux Ubuntu e Debian

Como criptografar um diretório com 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.

 

 

Sair da versão mobile