Limpeza de pré-criptografia, por quê?

25

Eu queria saber por que, antes de criptografar e se instalar na unidade, o Kali:

  1. limpou toda a unidade
  2. encheu a unidade com 0s
  3. encheu a unidade com 1s
  4. encheu a unidade com dados aleatórios
  5. limpou a unidade novamente

Eu sei que o Kali não deve ser instalado, mas esse não é o ponto aqui.

Então, como isso é útil antes da instalação, digamos, em um novo disco rígido? Estou acostumado a ver isso na remoção do disco rígido, não na instalação.

Taz8du29
fonte
Os passos 1 a 3 são semelhantes ao que badblocksocorre 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 executada badblocksou o mkfs -ccrealizará 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
Xen2050

Respostas:

36

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 mkfsTRIMs 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 -Cde 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 ext4armazenaria 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.

frostschutz
fonte
11
Aparar não necessariamente apaga todo o flash NAND aparado, porque alguns deles podem estar no mesmo bloco de apagamento que alguns setores não aparados. (os blocos de apagamento são maiores que os de gravação). Mesmo que o mkfs apare uma partição inteira antes de gravar os novos metadados, os dados de outras partições (como a partição do sistema EFI) ainda estão ativos e o firmware SSD não conhece as partições.
Peter Cordes
Um link para en.wikipedia.org/wiki/Trim_(computing) pode ser útil em sua resposta!
Gaurav