eCryptfs - Criando um diretório "Private" criptografado dentro da home do Ubuntu

Iniciado por druidaobelix, 08 de Agosto de 2017, 19:00

tópico anterior - próximo tópico

druidaobelix

Essa dica trata do uso do eCryptfs para criar um diretório (=pasta) simples criptografado dentro da home do sistema, permanecendo todos os demais diretórios sem criptografia, como uma forma de criar privacidade e segurança mediante proteção criptográfica para arquivos pessoais no Linux Ubuntu.

Quando se quer manter um arquivo sem acesso e sem visibilidade, basta movimentar o arquivo para dentro desse diretório "Private", situação em que ele lá permanecerá criptografado, e portanto, inacessível a quem não tenha a senha de acesso.

O Ubuntu oferece na instalação a possibilidade de criptografia do sistema, situação em que *toda* a /home do usuário estará criptografada, necessitando ao iniciar o sistema entrar com uma passphrase, isto é, uma senha para desbloquear o home.

Não é disso que trata este tópico, o que aqui se pretende é apenas a criação de um diretório avulso criptografado para onde se possa movimentar arquivos que não se queira visíveis, sem as complicações e consequências de todo um sistema criptografado. O que aqui se aborda é o uso do ecryptfs na modalidade mais simples, que para diferenciar das demais chamaremos de modo single.

O uso operacional do eCryptfs dessa forma não requer privilégio do root e nenhum registro no /etc/fstab.

I) Instalando e configurando o ecryptfs single


a) Instalando o ecryptfs

Para instalar a ferramenta que criará a pasta "Private" e fará essa criptografia, faça num terminal:

sudo apt install ecryptfs-utils


b) Configurando a pasta "Private"

Uma vez instalado é necessário configurar a pasta "Private".

Existem três possibilidades de configuração a serem consideradas, uma das quais deverá ser escolhida antes da instalação.

O padrão do ecryptfs é que a pasta "Private" seja aberta automaticamente quando se faz login no sistema.

O raciocínio fundamento disso é mais ou menos óbvio, pois se é o usuário que está logando e a pasta pertence a ele, então se vai desde já deixar os arquivos nela existente disponíveis.

Entretanto, essa configuração pode não ser adequada dependendo de como se usa o sistema, eventualmente pode ser preferível que ao iniciar o sistema a pasta "Private" esteja trancada, não disponível para ninguém e quando quiser o usuário dono dos arquivos criptografados vai lá e abre manualmente, dependendo do caso pode ser mais seguro fazer dessa forma, mas enfim, é uma questão de gosto próprio, forma concreta como se usa o sistema e necessidades objetivas.

Além disso, deve-se considerar também que o sistema pode ser configurado para subir automaticamente, isto é, sem parar para o login, como uma forma de abreviar a disponibilidade do desktop sem perder tempo com o login, naquelas instalações que não exigem maior segurança, então também por isso pode ser preferível que ao iniciar a pasta "Private" esteja fechada e indisponível o seu conteúdo.

Uma terceira variável é quanto a senha para abrir a pasta "Private", que pode ser a mesma senha utilizada no login ou ainda se pode criar um senha diferente daquela do login, novamente aqui é uma questão de conveniência de cada qual.

Relacionadas adiante as três formas de fazer o setup da pasta "Private", em ordem crescente de segurança, e você escolhe o que lhe for mais conveniente conforme suas próprias e pessoais necessidades de privacidade e segurança.


b1) pasta "Private" automaticamente aberta junto com o login

ecryptfs-setup-private


b2) pasta "Private" trancada ao iniciar e aberta manualmente (=mais seguro)

A abertura da pasta "Private" se faz com a mesma senha do login

ecryptfs-setup-private --noautomount

b3) pasta "Private" trancada ao iniciar e aberta com senha diferente do login (=mais seguro ainda e mais trabalhoso)

ecryptfs-setup-private --wrapping --noautomount

No código acima a opção --wrapping, querendo, pode ser substituída pela forma simplificada -w

Note que as opções, na forma extensa, são precedidas de duplo hífen.

Quando a pasta "Private" estiver trancada, observe que dentro dela há um ícone com o nome "Access-Your-Private-Data.desktop" (e também um arquivo README.txt), pois bem, se clicar nesse ícone ele automaticamente abre um terminal com a expressão "Enter your login passphrase:" (ou "Enter your wrapping passphrase:" se --wrapping foi usado), então aí é somente colocar a senha do login ou aquela outra especialmente criada para essa finalidade e a pasta estará aberta.

Em qualquer das formas haverá a solicitação:

Pedindo a senha de login do usuário:

Enter your login passphrase [username]: --> login do usuário no sistema

Pedindo para ser criada uma passphrase que poderá ser usada para eventual recuperação manual dos arquivos criptografados.

O "abretesesamo" do lendário personagem fictício arábe Ali Babá mencionado abaixo, além de letra, música e álbum (1980) do cantor e compositor Raul Seixas, que não poderia ser mais atual no presente momento nacional tupiniquim, evidentemente é apenas exemplo de uma passphrase. Crie a que achar mais adequada e possa ser realmente memorizada.

Enter your mount passphrase [leave blank to generate one]: --> abretesesamo

O processamento irá fazer verificações e testes resultando o aviso:

************************************************************************
YOU SHOULD RECORD YOUR MOUNT PASSPHRASE AND STORE IT IN A SAFE LOCATION.
  ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
THIS WILL BE REQUIRED IF YOU NEED TO RECOVER YOUR DATA AT A LATER TIME.
************************************************************************


Importante: reinicie a sessão para que a pasta "Private" seja criada e as alterações tenham efeito.

Ao reiniciar será apresentada uma janela com os dizeres:

Citar
Informação disponível
Informações da atualização

Gravar sua frase secreta de criptografia

Para criptografar seu diretório pessoal ou a pasta "Private", uma frase secreta forte foi gerada automaticamente. Normalmente seu diretório é desbloqueado com sua senha de usuário, mas se você precisar recuperá-lo manualmente, vai precisar desta frase secreta. Por favor, imprima-a ou escreva-a e armazene-a em um local seguro. Se você clicar em "Executar esta ação agora", digite sua senha de login na solicitação de "Senha" e você poderá exibir sua senha gerada aleatoriamente. Caso contrário, você terá que executar "ecryptfs-unwrap-passphrase" a partir da linha de comando para recuperar e registrar sua frase secreta gerada.

Executar essa ação agora / Fechar


Se gravou antes a passphrase não é realmente necessário fazer mais nada em relação a isso, pode clicar em fechar.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

II) Usando ecryptfs single e a pasta "Private"


c) Abrindo ou fechando a pasta "Private" usando um terminal

Também se pode abrir e fechar a pasta "Private" fazendo no terminal:

abrir:

ecryptfs-mount-private

fechar:

ecryptfs-umount-private


d) Criando um 'alias' para abrir e fechar e pasta "Private"

Quando se prefere abrir ou fechar a pasta "Private" usando um terminal, para não ter que ficar memorizando os comandos acima, pode ser conveniente criar um 'alias' que facilite essa operação.

É bastante prático e economizador de tempo fazer isso.

Um 'alias' é como se fosse um 'apelido' para determinado comando, tornando sua execução mais fácil, é como chamar José de Zé. Um 'alias', de forma geral, pode ser criado para substituir qualquer comando.

Use um mnemônico qualquer que lhe seja mais conveniente e de mais fácil memorização. Aqui se vai usar apenas os mnemônicos 'abre' e 'fecha', como uma forma bastante simplificada de fazer isso.

Faça antes uma cópia de segurança do arquivo .bashrc a ser alterado, para o caso de na digitação "escorregar o dedo" e alterar o que não devia ser alterado.

Note que o arquivo .bashrc possui um . (ponto) antes do nome, o que indica ser um arquivo oculto existente na home do sistema.

cp ~/.bashrc ~/.bashrc-bkp

Agora abra o arquivo para edição (não é necessário o sudo):

gedit ~/.bashrc

Vá até o final do arquivo, que na verdade se trata de um script.

Note que a última linha termina com um 'fi', é comum scripts terminarem dessa forma, então adicione **após** a última linha.

Citar
alias abre='ecryptfs-mount-private'
alias fecha='ecryptfs-umount-private'

Observe que existem aspas simples envolvendo o comando propriamente dito.

Salvar e sair.

Feche o terminal e abra novamente para que o 'alias' comece a funcionar.

Agora, num terminal, ao digitar "abre" (sem as aspas) aquele comando será executado, a senha do login será pedida e isso irá descriptografar a permitir o acesso à pasta "Private".

Também quando se quer fechar bastará digitar "fecha" (sem as aspas) num terminal e imediatamente a pasta "Private" estará novamente inacessível.


e) Testando a pasta "Private" criada

Conforme antes explanado, abra a pasta "Private".

Com o mouse copie o comando abaixo e ainda com o mouse ou usando as teclas Ctrl Shit V cole num terminal e dê um <enter>

sudo cp -r /etc/default ~/Private/&&sudo chown $USER ~/Private/* -R&&mv ~/Private/default ~/Private/testeaki

Se tudo estiver funcionando corretamente deverá ser possível ver dentro da pasta "Private" um diretório de nome "testeaki" e dentro dele arquivos de textos que podem ser acessados e lidos.

Uma vez feita a constatação a pasta 'testeaki' criada deve ser removida.

rm -R ~/Private/testeaki

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

III) Exibindo informações e alterando a configuração

f) Exibindo a passphrase armazenada no setup

Se quiser ver a passphrase que foi registrada no setup é possível fazendo:

ecryptfs-unwrap-passphrase

Será solicitada a senha de login para exibir a passphrase.

Em condições normais os arquivos serão acessados a partir do login do usuário, porém se uma recuperação manual for necessária (perda de acesso ao sistema, acesso por um live-iso, etc) essa passphrase será essencial, portanto, ela deverá ser memorizada e guardade de alguma forma segura.


g) Alterando a passphrase armazenda

Se quiser modificar a passphrase armazenda é possível sobrescrever a configuração existente.

Note que para que isso possa ser feito a pasta "Private" precisa primeiro ser esvaziada, se existirem arquivos dentro dela a alteração não será efetuada.
Abra a pasta "Private", esvazie o conteúdo e depois feche novamente para poder fazer as alterações.

ecryptfs-setup-private --force


Feitas as alterações que se deseja, reinicie a sessão para que possam ter efeito.

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

IV) Precauções - entendendo a questão da criptografia de arquivos


h) Backup e recuperação de dados

Como se sabe, as duas melhores formas de se perder arquivos de forma irrecuperável é não fazendo backup ou fazendo criptografia de arquivos.

Quanto ao backup a questão é evidente, porém o ponto importante é que obviamente não é possível fazer backup ou qualquer cópia de arquivos enquanto a pasta "Private" estiver fechada; quanto à criptografia, se esquecer, perder a senha ou qualquer coisa der errada no sistema, muito possivelmente jamais verá seus arquivos de volta.

Assim, tenha em mente que a criptografia deve ser usada se e quando estritamente necessária.

Não deixe criptografados arquivos que de fato não precisam disso.

Mova para a pasta "Private" somente aquilo que realmente precisa de privacidade.


i) Vulnerabilidades e Deficiências

Se você for um agente da CIA, NSA, MI6, Mossad, KGB, ABIN ou de qualquer outro serviço de inteligência, espionagem ou contra-espionagem (todo Estado nacional tem um), ou ainda parente, primo ou amigo próximo do Edward Snowden ou do Julian Assange, ou ainda membro do WikiLeaks, melhor não usar esse método para criptografia de seus arquivos, ou pelo menos não dessa forma mais simples, pois ele possui vulnerabilidades.

Ocorre que se seu sistema fizer uso de uma partição ou arquivo do tipo swap, que é um arquivo de troca quando a memória física RAM do sistema se esgota, ocasionalmente pode acontecer de informações do seus arquivos criptografados ficarem lá registradas sem criptografia e, portanto, acessíveis.

Claro que qualquer pessoa dita "normal" jamais saberia disso e muito menos saberia como fazer para ter acesso real a tais dados dentro da swap, o que faz com que para a imensa maioria das pessoas o presente método seja suficiente, porém um especialista, a exemplo de um perito forense, eventualmente conseguiria. Segurança por obscuridade é inerentemente falha, ainda que possa ser útil em determinadas condições.

Se quiser e precisar mesmo aumentar algum grau de segurança, sempre se pode contornar essa limitação desligando a swap quando for usar a pasta "Private", supondo, claro, que a memória física do sistema não esteja sobrecarregada e de fato permita desligar a swap.

É um 'workaround', um contornar o problema, mas funciona, pois nada será gravado na swap, logo, o problema deixa de existir, da mesma forma que nos sistemas que simplesmente não usam swap.

Para desligar provisoriamente a swap:

Verifique primeiro o uso da swap fazendo:

free -tm

Sendo possível desligar, então faça:

sudo swapoff -a

Se efetivamente desligada a linha da swap resultante do free aparece com todos os valores zerados, algo dessa forma:

CitarSwap:             0           0           0

Para religar:

sudo swapon


Entretanto, é possível conjugar essa técnica do uso singular do eCryptfs e do diretório "Private" também com a criptografia da swap com outras técnicas mais sofisticadas e permanentes como dm-crypt/Swap encryption, mas isso, no momento, foge ao escopo desse tópico, fica para um outro tópico.

De toda forma, se precisar mesmo de um grau de segurança enormemente aumentado e extremo, melhor optar pela criptografia de toda a home já na instalação do sistema.

Tenha em conta, ainda, que nomes de arquivos muito longos, superiores a 143 caracteres, podem ocasionar falhas em determinadas programas, portanto, sendo melhor optar por nomes mais curtos e menos propensos a essa dificuldade.

O uso em NFS (Network File System) pode apresentar dificuldades, recomendando utilizar algum outro sistema de criptografia.

Um disco com pouco espaço e alta fragmentação pode ocasionar dificuldades sobremodo com arquivos grandes.
Nessa circunstância, se necessitar fazer operações outras que não apenas ler os arquivos criptografados, poderá ser melhor movê-los para fora da pasta "Private", fazer o que for necessário e, se o caso, retornar àquela pasta.

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

V) Desinstalação, Referências e Considerações Finais


j) Desinstalação do ecryptfs

Antes de desinstalar é necessário que a pasta "Private" seja esvaziada de qualquer conteúdo, sem o que não ocorrerá.

Isso posto, é fazer:

PRIVATE=`cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/Private`

ecryptfs-umount-private

chmod 700 $PRIVATE

rm -rf $PRIVATE ~/.Private ~/.ecryptfs

sudo apt-get remove ecryptfs-utils


k) Reservado

Reservado para mais alguma coisa que possa vir a ser interessante quanto ao uso singular do eCryptfs e que possa ter esquecido ou não abordado, que certamente está incompleto, a exemplo de como recuperar os arquivos criptografados quando tudo der errado e não se tiver mais acesso normal ao sistema.

l) Referências:

Esses links podem ser úteis se quiser aprofundar o exame da questão:

https://help.ubuntu.com/lts/serverguide/ecryptfs.html

https://wiki.archlinux.org/index.php/ECryptfs

Esse outro serviu de inspiração:

Abre-te Sésamo/Raul Seixas
https://www.letras.mus.br/raul-seixas/90575/

m) disclaimer (Aviso legal)

O uso do ecryptfs da forma aqui mencionada e a criptografia de arquivos pessoais, o uso parcial ou total de qualquer procedimento aqui mencionado é por sua exclusiva conta e risco. Não me responsabilizo de forma alguma pela eventual perda de dados ou quebra de privacidade. Se ocorrem problemas de perda de arquivos, dados, senhas, ou privacidade, possivelmente ninguém será capaz de ajudá-lo a recuperar.

Leia antes especialmente os ítens h) "Backup e recuperação de dados" e i) "Vulnerabilidades e Deficiências".

n) Considerações Finais

Se chegou até aqui, um muito obrigado pela paciência de ler esse texto, espero que possa ser útil e contribuir na salvaguarda de sua privacidade e segurança dos seus dados e, assim, no melhor uso do Linux Ubuntu. :-)

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

King11

Olá druidaobelix!

Parabéns pelo tutorial. Na minha humilde opinião, esse tópico merece ficar fixo  na seção Dicas e Truques !