O que é LUKS e como ele protege seu sistema de arquivos Linux?
Principais conclusões
- Linux Unified Key Setup (LUKS) é uma especificação de criptografia de disco para Linux.
- LUKS usa uma chave mestra para criptografar dados, com senhas desbloqueando a chave.
- LUKS protege os dados do usuário em dispositivos de bloco, incluindo laptops e unidades externas, contra roubo.
Se deparou com o termo "LUKS", mas não sabe o que ele faz ou como se relaciona com o Linux? Se você está preocupado em proteger seus dados, ter o LUKS configurado é essencial para você. Neste guia, explicarei como funciona o LUKS e como ele ajuda você a proteger seus dados importantes.
O que é LUKS no Linux?
Linux Unified Key Setup (ou LUKS, para abreviar), é uma especificação de criptografia de disco amplamente usada em sistemas Linux. Criado por Clemens Fruhwirth em 2004, foi projetado para fornecer um mecanismo de criptografia padronizado que seja seguro e fácil de usar. Ele protege os dados criptografando-os dentro de partições físicas e lógicas do disco para que apenas usuários autorizados possam acessar o conteúdo dessa partição criptografada. Você pode considerá-lo semelhante ao Windows BitLocker.
LUKS opera em nível de bloco. Ele criptografa partições ou discos inteiros em vez de arquivos individuais. Ele usa algoritmos de criptografia fortes como AES (Advanced Encryption Standard). Ele usa o cabeçalho da partição para armazenar as informações de configuração necessárias, como algoritmo de criptografia e tamanho da chave. Este cabeçalho é o que diferencia o LUKS do dm-crypt. Se o cabeçalho for corrompido, você não conseguirá descriptografar o dispositivo.
Como funciona o LUKS
A criptografia LUKS cria um contêiner criptografado chamado volume LUKS em uma partição de disco. Ele usa algoritmos simétricos como AES para criptografar o volume que só pode ser acessado usando uma senha longa. Quando você desbloqueia o volume LUKS, ele se torna acessível como um dispositivo de bloco normal. Então você pode ler e escrever nele.
O LUKS armazena seus metadados de criptografia em uma seção especial no início da partição criptografada chamada cabeçalho LUKS. Este cabeçalho contém algumas informações críticas, como cifra e modo, função hash e slots de chave. A criptografia real da partição é feita usando uma chave mestra. Esta chave mestra é gerada aleatoriamente quando a configuração do LUKS é inicializada. Essa chave mestra é o que criptografa e descriptografa diretamente os dados na partição. A senha não criptografa os dados. Em vez disso, ele criptografa a chave mestra armazenada nos slots de chave.
Se você deseja acessar os dados criptografados, o LUKS exige que você insira uma senha. Essa senha é então usada para descriptografar a chave mestra armazenada em um dos slots de chave. Depois que a chave mestra é descriptografada, essa chave, por sua vez, é usada para descriptografar os dados na partição.
Por que você deve usar LUKS
O principal motivo para usar o LUKS é proteger os dados do usuário. O LUKS pode criptografar dispositivos de bloco inteiro, tornando-o adequado para proteger os dados em dispositivos móveis, como unidades de disco de laptop e mídias removíveis. Como o conteúdo dos dispositivos de bloco criptografados é arbitrário, também é bom para criptografar dispositivos de troca.
LUKS é comumente usado para criptografia completa de disco. Você pode criptografar a partição raiz do seu sistema Linux durante a instalação para que ninguém sem autorização possa acessar os arquivos do sistema. Você também pode criptografar a partição de inicialização no sistema Linux para proteger contra adulteração do kernel Linux. Se estiver usando o systemd, você também poderá criptografar diretórios pessoais individuais.
O LUKS oferece suporte a vários slots de chave, dando a você a oportunidade de atribuir diferentes senhas para a mesma partição criptografada. Portanto, se você tiver uma configuração multiusuário, cada usuário poderá ter uma chave de descriptografia individual sem precisar compartilhar uma senha comum. Além disso, se uma senha for esquecida, outras poderão ser utilizadas para acessar os dados.
Ele protege seu dispositivo contra roubo físico. Mesmo que seu laptop, disco rígido externo ou outros dispositivos de armazenamento sejam roubados, os dados contidos nele permanecem inacessíveis sem a chave de descriptografia correta.
Tem algumas pegadinhas
Uma das maiores desvantagens do uso da criptografia completa de disco reside em problemas de desempenho. A descriptografia de dados em tempo real requer poder de processamento, resultando em velocidades de leitura e gravação mais lentas. Se você possui hardware moderno, a diferença às vezes pode ser insignificante, mas não está totalmente fora de questão. Você também experimentará um tempo de inicialização maior porque o sistema precisa descriptografar a unidade inteira antes de carregar totalmente o sistema operacional. Você pode ler mais sobre isso neste tópico do Reddit e neste teste de benchmark.
Outra observação importante é que a criptografia de disco LUKS só protegerá seus dados quando o sistema estiver desligado. Se o seu laptop for roubado enquanto estiver ligado e a unidade já estiver descriptografada, o ladrão poderá acessar seus dados sem precisar ignorar a criptografia. Depois de descriptografado, qualquer pessoa terá acesso aos arquivos dessa unidade.
Configurar a criptografia LUKS não é um processo fácil em sistemas Linux pré-instalados. Requer um backup completo para que você possa restaurar dados importantes caso os perca. Falando em backups, os backups criptografados precisam de um tratamento cuidadoso. Se você perder sua chave de descriptografia, você nunca poderá recuperar seus dados.
Como configurar a criptografia LUKS
A maneira mais fácil de configurar a criptografia completa de disco LUKS é quando você instala o Linux pela primeira vez. Deixe-me mostrar como no Ubuntu 24.04.
Se você deseja instalar o Linux recentemente ou deseja criptografar um sistema pré-instalado (abordado posteriormente), você deve fazer backup com cuidado arquivos importantes no seu dispositivo Linux .
Durante a instalação, você deverá ver um prompt de configuração de disco. Pressione "Recursos avançados".
Na lista, selecione “Usar LVM e criptografia”. Pressione “OK”.
Pressione o botão “Avançar” para prosseguir. Na próxima tela, você será solicitado a criar uma senha longa. Digite uma senha segura em ambos os campos e pressione “Avançar”.
Em seguida, continue com o restante da instalação.
Se você não quiser reinstalar o Linux, existe um utilitário chamado cryptsetup para configurar sistemas de arquivos criptografados. Você pode precisar de privilégios de root para executar alguns dos comandos. Primeiro, você precisará instalá-lo. No Debian/Ubuntu, execute:
sudo apt install cryptsetup
Liste suas partições disponíveis usando os seguintes comandos:
sudo fdisk -l
blkid
Descubra a partição que você deseja criptografar na lista.
Em seguida, use o utilitário cryptsetup para criptografar a partição escolhida da seguinte maneira:
cryptsetup -y -v luksFormat /path/to/partition
cryptsetup -y -v luksFormat /dev/xvdc # Por exemplo
Você será solicitado a confirmar que deseja substituir a partição e, em seguida, inserir uma senha. Você deve salvar e lembrar a senha porque ela não é recuperável.
O comando acima limpará todos os dados da partição. Certifique-se de fazer backup de todos os dados importantes.
Depois disso, crie um mapeamento lógico executando:
cryptsetup luksOpen /path/to/partition partition_name
cryptsetup luksOpen /dev/xvdc backup_partition # Por exemplo
Digite a senha quando solicitado. Isso inicializará o volume. Para ver os detalhes do mapeamento, execute:
ls -l /dev/mapper/backup_partition
Para ver o status do mapeamento, use:
cryptsetup -v status backup_partition
Em seguida, use o cryptsetup para ver se o dispositivo foi formatado corretamente para criptografia.
cryptsetup luksDump /path/to/partition
cryptsetup luksDump /dev/xvdc # Por exemplo
Use o comando dd para alocar dados de bloco com zeros para a partição criptografada por LUKS:
dd if=/dev/zero of=/dev/mapper/backup_partition
Uma vez feito isso, formate a nova partição com este comando:
mkfs.ext4 /dev/mapper/backup_partition
Eu usei o sistema de arquivos ext4 aqui. Você pode usar o seu preferido. Por último, monte o novo sistema de arquivos.
mkdir /backup2
mount /dev/mapper/backup_partition /backup_partition
df -H
cd /backup_partition
ls -l
Se você deseja alterar a senha da partição criptografada, execute os comandos abaixo:
cryptsetup luksDump /dev/xvdc # Using /dev/xvdc as an example
cryptsetup luksAddKey /dev/xvdc # Usando /dev/xvdc como exemplo
Você será solicitado a inserir uma nova senha e confirmá-la.
Ao implementar o LUKS, você pode garantir melhor segurança para seus dados confidenciais. Também é adequado para dispositivos usados por vários usuários. Você pode tomar muitas outras medidas para tornar seu dispositivo Linux mais seguro.