blog-post

Criptografar seus dados com LUKSFS e GOCRYPTFS

author image
Índice

Security - XKCD

Por que criptografar? ❔

Se você possui um conjunto de informações e dados (imposto de renda, dados bancários, fotos, documentos importantes ou sigilosos, etc) que não deveriam parar na mão de terceiros (um ladrão, um técnico de informática mal intencionado, um “amigo” querendo lhe prejudicar, etc), então você precisa criptografar seus dados.

Qual o custo de não criptografar?

Será o acesso aos seus dados e a utilização dos mesmos de modo que, por mais criativo que sejas, não terás ideia do que farão.

Qual o custo de criptografar os dados?

Terão os seguintes custos:

  • O tempo dedicado para configuração da criptografia em si (seja instalando a primeira vez ou reconfigurando);
  • Atraso na hora de ligar ou acessar os dados por ter de digitar a senha;
  • Perda de desempenho no computador, por ter de usar o processador para criptografar todos os dados.

Cuidados após criptografar

Você nunca, jamais, em hipótese alguma, deve deixar sua senha anotada em algum lugar ou revelá-la para estranhos.

Quem viveu esse problema na pele, sabe como é.

Não use a mesma senha para tudo e nem tenha padrões de senha que mudam uma palavra ou detalhe conforme o serviço usado!!

Hacking

Criptografar a nível de diretórios/arquivos 📂

Vantagem

A criptografia é a nível de sistema de arquivos, sendo em cada diretório e arquivo.

Isso permite a sincronização de apenas arquivos modificados com o armazenamento em núvem, mantendo tudo criptografado.

Desvantagem

É acessível a data de criação e modificação do arquivo, além do tamanho deste.

Usando estas informações, é possível sugerir o tipo de arquivo que possa estar criptografado.

Como fazer?

Com gocryptfs!!

O Debian utiliza uma versão anterior (1.8.0) mas pode-se pegar a versão mais recente no github releases page . Vem o binário no arquivo compactado.

Criar e montar um sistema de arquivos

Crie as pastas criptografada, que possui o conteúdo encriptado, e plana, com conteúdo legível.

mkdir criptografada plana

Inicialize a pasta criptografada.

gocryptfs -init criptografada

Monte a pasta criptografada para ter o seu conteúdo legível em plana

gocryptfs criptografada plana

Parabéns, você criou uma pasta criptografada com gocryptfs.

Para desmontar, basta executar umount plana

Criptografar a nível de disco/ponto de montagem 💽

Vantagem

Caso seu equipamento seja roubado ou acessado indevidamente, será impossível o acesso a seus dados por não ter acesso nem ao sistema operacional ou ao ponto de partição de sua home, enquanto liga o computador.

Desvantagem

Se criar um container para enviar os dados via Dropbox/Google Drive/One Drive/iCloud/pCloud/NextCloud/etc com tudo criptografado, sempre que houver uma mudança, terás que enviar tudo de novo.

Imaginando que é um container de 1GB e foi alterado 10MB. Será necessário enviar 1GB novamente para seu serviço de armazenamento em núvem.

Como fazer ? 🌱

Com LUKSFS!!

Não precisa instalar o LUKFS pois já vem por padrão no linux, chamado como cryptsetup.

Para usá-lo, criptografando seu sistema operacional, é interessante fazer (ou ter feito) a escolha da opção de particionamento com criptografia na hora de instalar sua distribuição.

Depois de feito, antes de iniciar o sistema operacional sempre será solicitada a senha para descriptar a partição. 😀

Para adicionar um novo disco ou partição criptografada, faça o seguintes passos.

Atenção: possível perda de dados Iremos apagar o disco. Tomara que você tenha feito backup.

Encontre o dispositivo de armazenamento

Com o dispositivo de armazenamento conectado, verifique qual o nome deste com:

fdisk -l

No nosso exemplo, é o /dev/sdb e é um disco de 200GB.

Criando a partição

Como root, execute:

fdisk /dev/sdb

E se tiver partições criadas? Depois de executar o fdisk /dev/sdb escolha o comando d para apagar cada partição, até não sobrar nenhuma e daí prossiga para os próximos passos.

Após, siga com o procedimento de criação da partição que deixarei o que foi feito:

Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x462ca812

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-419430399, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-419430399, default 419430399): 

Created a new partition 1 of type 'Linux' and of size 200 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Partição criada com sucesso.

Formatando como LUKS

Basicamente, execute como root:

cryptsetup luksFormat /dev/sdb1

Depois disso, será mostrado um alerta e pedirá que você digite YES, maiúsculo mesmo.

Será pedido a senha que será usada para a partição.

WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/sdb1:
Verify passphrase:

Feito!

Abrir o armazenamento LUKS

Para montar a partição, será necessário definir um nome para o ponto de montagem.

Chamarei de coisassecretas.

Execute o seguinte comando de montagem para que seja feito no caminho /dev/mapper/coisassecretas.

cryptsetup open --type luks /dev/sdb1 coisassecretas 

Agora o caminho /dev/mapper/coisassecretas está criado e ativo.

Criando sistema de arquivos

Nesta parte você pode criar o sistema de LVM se desejar fazer várias partições e quiser a liberdade de aumentar o tamanho conforme a necessidade.

Ou… usar tudo em um ext4 (é o que farei).

Não vá se confundir. Nessa etapa é para criar a partição no /dev/mapper/coisassecretas e NÃO no /dev/sdb1.

Execute como root:

mkfs.ext4 /dev/mapper/coisassecretas

Sistema de arquivos feito!

Montando sistema de arquivos

Agora é a parte de montar em uma pasta que desejar.

No exemplo, colocarei em /mnt/coisassecretas.

mkdir /mnt/coisassecretas

mount /dev/mapper/coisassecretas /mnt/coisassecretas

Desmontando sistema de arquivos e fechando armazenamento LUKS

Imaginando que o que tinha de ser editado ou visto já finalizou, vamos desmontar o sistema de arquivos e fechar o sistema de arquivos criptografado.

Como root:

umount /mnt/coisassecretas

cryptsetup close /dev/mapper/coisassecretas

Montando sistemas de arquivos em armazenamento LUKS via fstab com senha

Adicione a seguinte linha ao /etc/fstab

/dev/mapper/coisassecretas /mnt/coisassecretas        ext4 defaults     0       0

E adicione isso ao /etc/crypttab

coisassecretas /dev/sdb1 none

Feito, agora sempre será solicitado uma senha quando ligar seu computador para desencriptar e montar a partição de seu disco.

Mas caso não queira digitar mais de uma vez a senha, siga para a próxima seção.

Montando sistemas de arquivos em armazenamento LUKS via fstab com chave

O LUKS permite guardar até 8 chaves por disco encriptado.

No caso, você precisará de uma além da que você já usava.

Como a chave será resgatada automaticamente pelo sistema, faça o seguinte procedimento.

  1. Crie uma chave aleatória com dd, no exemplo, a chave será colocada na pasta /root.
dd if=/dev/random bs=32 count=1 of=/root/chavealeatoria
  1. Adicione a chave criada como mais uma das chaves do LUKS. Será solicitada a senha do sistema de arquivos criptografado LUKS.
cryptsetup luksAddKey /dev/sdb1 /root/chavealeatoria 
  1. Adicione as modificações nos devidos arquivos para montagem automática.

Acrescente as seguintes informações no arquivo /etc/crypttab.

coisassecretas /dev/sdb1 /root/chavealeatoria

Agora é só reiniciar. Se sua partição / estiver criptografada com o LUKS, só será requisitada a senha uma única vez e a segunda partição criptografada será montada automaticamente!🙂

Caso deseje checar os espaços de chaves que o LUKS possui e alguns outros detalhes, execute:

cryptsetup luksDump /dev/sdb1

Foto de capa

Photo by Muhammad Zaqy Al Fattah on Unsplash

Publicações Recentes

blog-post

Utilizando pipx no lugar do pip

Introdução O pipx funciona parecido com o pip, porém ele já cria ambientes isolados automaticamente (venvs). Instalação …

Quer saber mais sobre mim?

Para conversar comigo ou saber outros detalhes profissionais
me encontre no…

Linkedin
*