Não faz sentido fazer várias passagens. Uma vez é suficiente.
Preencher uma unidade a ser criptografada com dados aleatórios tem principalmente dois usos:
- livrar-se de dados antigos e não criptografados
- tornar o espaço livre indistinguível a partir de dados criptografados
Geralmente, se você criptografar, não deseja que ninguém veja seus dados. Então é provável que, se você tivesse dados antigos e não criptografados nesta unidade, também deseje se livrar deles. Um SSD pode cuidar dele com mais facilidade e rapidez blkdiscard
. De fato, o Linux mkfs
TRIMs todos os dados sem sequer pedir sua confirmação, o que torna impossível qualquer tipo de recuperação de dados. Há muito TRIM no Linux.
O espaço livre é um pouco de uma área cinza. Se você não preencher previamente com dados aleatórios, em um novo HDD, os setores aos quais nunca foram gravados serão zeros. Em um SSD, se você permitir descartar / TRIM, o espaço livre também será zero.
Embora isso não afete seus dados de maneira alguma (ainda está criptografado), ele revela a quantidade de espaço livre / dados reais que você possui e onde esses espaços / dados estão localizados. Por exemplo, um hexdump -C
de um SSD aparado criptografado terá a seguinte aparência:
# hexdump -C /dev/ssd | grep -C 2 '^\*'
...
--
b3eabff0 dc c9 c7 89 16 ca d3 4f a3 27 d6 df a0 10 c3 4f |.......O.'.....O|
b3eac000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
b3f70000 5a 99 44 b5 9c 6b 1e 9c 81 cf 9a 43 b6 23 e9 0f |Z.D..k.....C.#..|
b3f70010 2c e6 9a 5d 59 9b 46 5f 21 3f 4d 5f 44 5b 0a 6b |,..]Y.F_!?M_D[.k|
--
b3f70ff0 5f 63 8d e8 c4 10 fd b1 a6 17 b5 7d 4a 57 09 68 |_c.........}JW.h|
b3f71000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
b3f72000 5d 1c 09 dd c9 6b 57 18 db 67 e1 35 81 57 45 8e |]....kW..g.5.WE.|
b3f72010 0f a8 be 39 ae e5 5f cf cf e3 8b a7 c1 25 1a a3 |...9.._......%..|
--
...
A partir desta você pode dizer que tenho segmentos de espaço livre no endereço 0xb3eac000 .. 0xb3f70000
, b3f71000 .. b3f72000
, ... e o inverso do que é de segmentos de dados claro como 0xb3f70000 .. b3f71000
.
O que você pode fazer com isso? Bem, nada (*).
(*) é o que eu gostaria de dizer. Mas as pessoas são criativas . Os padrões de espaço livre podem ser usados para derivar o tipo de sistema de arquivos que você usa (devido a como / onde eles armazenam metadados - se houver espaço livre onde ext4
armazenaria um de seus backups de metadados, provavelmente não será ext4
, etc.). Às vezes, até revela qual distribuição você usa (se o instalador do Linux preencher o sistema de arquivos de forma determinística, os arquivos poderão sempre acabar nos mesmos endereços físicos). Nesse momento, alguém pode saber onde está localizado um arquivo de sistema específico e pode modificá-lo / danificá-lo de alguma forma. (Os instaladores devem aleatoriamente a maneira como preenchem os sistemas de arquivos para evitar isso.)
No entanto, essas considerações são muito teóricas e apresentam um risco muito baixo em comparação com a vulnerabilidade da maioria das instalações criptografadas devido a outros motivos. Na maioria das instalações prontas para uso, é mais provável / mais simples adulterar o initramfs, instalar um keylogger ou explorar o sistema em execução, do que de alguma forma obter acesso bruto e analisar dados criptografados e esperar conseguir algo dessa maneira.
Você deve se preocupar com isso antes de revelar o espaço livre.
Com o SSD, é completamente normal ativar o TRIM e, assim, ter espaço livre revelado o tempo todo. Esse também é o caso de soluções de criptografia que funcionam em uma camada de arquivo em vez de em uma camada de bloco.
Com o HDD, você faz a limpeza aleatória principalmente em um disco novo, porque pode, e não há razão para isso, pois não envolve nenhum custo (além de uma configuração inicial) e nenhuma desvantagem.
badblocks
ocorre para verificar setores defeituosos, escrever e verificar 0, 1, 01 e 10. Para criptografia de disco inteiro, é comum recomendar um preenchimento zero criptografado (para gravar dados criptografados em qualquer lugar) pelos motivos da resposta de frostschultz (+1), mas fazer tudo isso antes da criptografia é incomum, após a criptografia executadabadblocks
ou o mkfs-cc
realizará o mesmo, além de identificar blocos defeituosos. Talvez alguém na Kali é um pouco paranóico com memória flash (de USB, de SSD) nem sempre escrevendo do mesmo setor no mesmo lugar, e trocando setores de / para backups