dm-crypt (Português)/Drive preparation (Português)
Antes de criptografar uma unidade de armazenamento, é recomendado apaga-la com segurança, a sobrescrevendo com dados aleatórios. Isto é realizado para prevenir ataques criptográficos ou indesejada recuperação de arquivos, estes dados não são disceníveis dos dados depois de escritos pelo dm-crypt. Para uma compreensiva discursão veja Criptografia de dados em repouso#Preparando o disco.
Apagando o disco com segurança
Quando estiver decidindo qual método usar para apagar o disco com segurança, se lembre que só precisa executar somente uma vez enquanto o disco está criptografado.
- Este processo pode demorar mais de um dia para terminar em disco com vários terabyte. Para usar a máquina durante a operação, pode ser desejado usar um sistema já instalado em outro disco, ao invés do sistema live de instalação do Arch.
- Para SSDs, como um esforço de minimizar artefatos de cache da memória flash, considere fazer prioritariamente limpa de células de memória do SSD do que as instruções abaixo.
Métodos genéricos
Para instruções detalhadas de como apagar e preparar o disco consulte Limpar o disco com segurança.
Métodos específicos do dm-crypt
Os três métodos a seguir são específicos do dm-crypt e são mencionados porque eles são muito rápidos e também podem ser executados depois que uma partição for configurada.
O FAQ do cryptsetup (item 2.19 "How can I wipe a device with crypto-grade randomness?") menciona um procedimento muito simples para usar um dm-crypt-volume existente para apagar todo o espaço não usado no dispositivo de bloco com dados aleatórios, com este agindo como um simples gerador de números. Também clama proteger contra a divulgação de padrões de uso. Por causa disso os dados criptografados são praticamente não disceníveis dos aleatórios.
dm-crypt limpa o disco vazio ou partição
Primeiro, crie um container criptografado temporário na partição (usando a forma sdXY
) ou disco (usando a forma sdX
) a ser criptografado:
# cryptsetup open --type plain -d /dev/urandom /dev/dispositivo_de_bloco a_ser_apagado
Você pode verificar se ela existe:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.8T 0 disk └─a_ser_apagado 252:0 0 1.8T 0 crypt
Apague o container com zeros. O uso do if=/dev/urandom
não é necessário, já que a cifra criptografada é usada para aleatoriedade.
# dd if=/dev/zero of=/dev/mapper/a_ser_apagado status=progress
dd: writing to ‘/dev/mapper/a_ser_apagado’: No space left on device
-
dd com a opção
bs=
, exemplobs=1M
, é frequentemente usado para aumentar a taxa de transferência da operação. - Para checar a operação, zere a partição antes de limpar o container. Depois o comando para apagar
blockdev --getsize64 /dev/mapper/<container>
pode ser usado para adquirir o tamanho exato do container como root. Agora od pode ser usado para verificar se os setores zerados foram sobrescrevido, exemplood -j containersize - blocksize
para visualizar a limpeza concluída até o final.
Finalmente feche o container temporário:
# cryptsetup close a_ser_apagado
Quando criptografar o sistema todo, o próximo passo é #Particionamento. Se está somente criptografando uma partição, continue em dm-crypt/Criptografando um sistema de arquivos não raiz#Partição.
Apagando o espaço livre depois da instalação com dm-crypt
Usuários que não têm tempo para apagar com segurança antes da instalação, podem conseguir um efeito similar uma vez que o sistema criptografado está ligado e montado. No entanto, considere que o sistema de arquivos pode ter reservado espaço, por exemplo para, o usuário root ou outro mecanismo de cota de disco, que podem limitar esse procedimento mesmo quando feito com o usuário root: Algumas partes do disco podem não ser sobrescritas de forma alguma.
Para fazer isso, dentro de um container criptografado, crie um arquivo temporário com todo o espaço livre da partição :
# dd if=/dev/zero of=/arquivo/no/container status=progress
dd: writing to ‘/arquivo/no/container ’: No space left on device
Sincronize o cache de disco e então delete esse arquivo para recuperar o espaço anteriormente usado.
# sync # rm /arquivo/no/container
Isto deve ser repetido para todas as partições criadas e que possuem sistema de arquivos. Por exemplo, ao optar por LVM dentro do LUKS, esse procedimento tem que ser feito em todos os volumes lógicos.
Limpar espaço livre com dm-crypt depois da instalação (por meio da re-encriptação)
Alternativamente, para usuários que querem limpar completamente o espaço livre sem reinstalar, isto pode ser feito ao criptografar novamente dispositivos LUKS. Isto precisa ser executado uma vez por dispositivo LUKS. Mas note que este processo pode ser lento (por exemplo, ~50MB/s em um HDD).
Apagar o cabeçalho do LUKS
Uma partição usando LUKS consiste de duas partes: o cabeçalho e os dados criptografados. O cabeçalho contém chaves, sem elas é praticamente impossível recuperar os dados. Se criar uma nova partição ou decomissionar o disco, pode ser o suficiente para remover o cabeçalho ao invés de apagar todo o dispositivo. Para observações veja a nota no fim desta seção.
Para apagar todas as chaves use o seguinte comando:
# cryptsetup erase dispositivo
Verifique se não tem nenhum slot ativo executando:
# cryptsetup luksDump dispositivo
Adicionalmente o cabeçalho LUKS pode ser removido para prevenir o cryptsetup
de detectá-lo no futuro, execute wipefs depois das chaves serem removidas:
# wipefs -a dispositivo
Os dados criptografados permanecem no seu lugar e sua proteção é tão boa quanto a encriptação usada. Em 2020 não há método prático de acessá-los, mas isso pode mudar no futuro. Depende do usuário balancear a segurança e privacidade com o tempo necessário para executar uma limpeza apropriada de todo o disco.
Em alguns dispositivos de armazenamento, em particular os baseados em flash, pode ser impossível sobrescrever de forma confiável os dados. O cabeçalho LUKS com as chaves pode ser armazenado em um local inacessível para o sistema operacional. Se isto é uma preocupação, use ATA Secure Erase. Esta operação supostamente apaga todos os blocos no dispositivo, incluindo os que não são visíveis ao software. Veja cryptsetup FAQ 5.19 para detalhes.
Particionamento
Esta seção somente se aplica a um sistema criptografado. Depois que o disco foi sobrescrito com segurança, um particionamento apropriado tem que ser escolhido, levando em conta os requisitos do dm-crypt e efeitos que as várias escolhas terão na manutenção do sistema resultante.
É importante notar que em quase todo caso é necessário uma partição separada para /boot
que deve se manter não criptografada, porquê o gerenciador de boot precisa acessar o diretório}} para carregar o initramfs/módulos de encriptação necessários para o resto do sistema (veja mkinitcpio para detalhes). Se preocupado com a segurança, veja dm-crypt/Especificidades#Protegendo a partição de boot não criptografada.
Outro fator importante a se levar em conta é como o swap e o sistema de suspensão serão tratados, veja dm-crypt/Swap criptografada.
Partições físicas
No caso mais simples, as camadas criptografadas podem ser diretamente colocadas em partições físicas; veja Particionamento para métodos de como criá-las. Assim como em um sistema não criptografado, a partição root é suficiente, exceto outra para /boot
, como falado acima. Este método permite decidir quais partições criptografar e quais não, e funciona do mesmo jeito não importando a quantidade de discos envolvidos. Também é possível adicionar ou remover partições no futuro, mas redimensionar vai ficar limitado ao tamanho do disco utilizado. Finalmente, note que senhas separadas ou chaves são necessárias para abrir cada partição criptografada, apesar que isto pode ser automatizado durante a inicialização usando o arquivo crypttab
, veja Dm-crypt/Configuração do sistema#crypttab.
Dispositivos de blocos empilhados
Se mais flexibilidade é necessária, dm-crypt pode coexistir com outros dispositivos de blocos empilhadores como LVM e RAID. Os containers criptografados podem residir abaixo ou em cima de outros:
- Se os dispositivos LVM/RAID são criados em cima da camada criptografada, será possível adicionar, remover ou redimensionar os sistemas de arquivos da mesma partição criptografada deliberadamente, e somente uma chave ou senha será necessária para todos. Desde que a camada criptografada reside na partição física não será possível se aproveitar da habilidade do LVM e RAID para expandir para múltiplos discos.
- Se a camada criptografada é criada em cima do LVM/RAID, ainda será possível reorganizar os sistemas de arquivos no futuro, mas com a complexidade adicionada, as camadas criptografadas terão que ser adaptadas de acordo. adicionalmente, senhas e chaves separadas serão necessárias para abrir cada dispositivo criptografado. Esta, no entanto, é a única escolha para sistemas que precisam criptografar sistemas de arquivos para múltiplos discos.
Subvolumes do btrfs
Btrfs tem uma funcionalidade de subvolumes que podem ser usados com dm-crypt, tirando a necessidade de usar LVM se nenhum outro sistema de arquivos for usado. No entanto, note que arquivos swap não são suportados pelo brtrfs antes do Linux 5.0, então uma partição swap criptografada necessária se quer usar swap no Linux <5.0 (exemplo linux-lts). Veja também dm-crypt/Criptografando todo um sistema#Subvolumes do Btrfs com swap.
Partição de boot (GRUB)
Veja dm-crypt/Criptografando todo um sistema#Partição de boot criptografada (GRUB).