Triming como alternativa para apagar com segurança um SSD

6

A maneira recomendada de apagar com segurança um SSD é o Apagamento seguro ATA . A maioria dos BIOSes desativa esta função congelando a unidade. Alguns truques em torno do congelamento da BIOS existem e podem ou não funcionar dependendo da configuração. Isso torna o ATA seguro apagado difícil de usar.

Poderia o corte ser usado como uma alternativa para apagar com segurança um SSD?

Pode-se excluir qualquer tabela de partição existente e criar uma nova GPT com uma partição ext4 que preencha todo o SSD. Apagar a partição ext4 faria com que o SSD apagasse todos os blocos lógicos no SSD, mas os blocos que continham o GPT e o superbloco ext4. Blocos de reserva que não são atribuídos a um bloco lógico são apagados por definição. Dessa forma, todos os blocos físicos seriam apagados ou conteriam meta informações inúteis da GPT / ext4.

Você vê alguma falha neste plano?

Por favor, não responda que Apagar seguro ATA deve ser usado para apagar com segurança um SSD, esta não é a questão.

    
por Stéphane Tréboux 03.04.2016 / 16:39

2 respostas

5

Vamos colocar desta forma:

A verdade é que, na maioria, senão em todos os SSDs, ATA Secure Erase é uma equivalência a um dispositivo completo TRIM. Exceto aqueles com "criptografia de hardware", onde ATA Enhanced Secure Erase é basicamente uma regeneração da chave de criptografia. Então, afinal, ATA Secure Erase em SSDs não é realmente TÃO seguro, a menos que o seu suporte a "criptografia por hardware".

Por outro lado, fstrim não é a única maneira de criar um dispositivo. Você pode usar blkdiscard para limpar todo o dispositivo de bloco (disco / partição), incluindo o GPT, o superbloco e tudo mais.

No entanto, esteja ciente de que a implementação TRIM em alguns dos discos tem um "requisito" nos comandos TRIM emitidos, portanto, somente quando for atendido, todos os blocos na unidade serão "lidos zero" após TRIM.

Por exemplo, o Intel 530 SSD requer que os intervalos de blocos TRIM sejam "alinhados" para 8 blocos. Portanto, quando quiser limpá-lo com blkdiscard ou hdparm , precisarei me certificar de que nenhuma "unidade mínima" esteja "coberta" por dois intervalos TRIM.

Com blkdiscard , precisarei especificar -p 33550336 (65528 blocos * 512 bytes, onde 65528 = 65535 (número máximo de blocos em um único intervalo) - 65535% 8), supondo que o deslocamento inicial seja 0 (ou um múltiplo de [8 * 512]), caso contrário, haverá blocos de sobras que não serão apagados. Isso pode ser verificado com algo como hexdump após o TRIM.

Veja a diferença da minha Intel 530 ( sda ) e da Silicon Power S70 ( sdb ):

eadiferençaquandoosintervalosnãoestãoalinhadosealinhados:

(Aindahásobrasnofinal,jáque65535*2=131070nãoéummúltiplode8,masvocêpodeverque131064blocos[0x3FFF000/512]sãocontinuamenteapagados.)

Semfraude:

P.S.EutambémvidiscosdaSanDiskquesua"cabeça" e "cauda" não podem ser apagados com o comando TRIM em qualquer forma. A "unidade mínima" é de 256 blocos.

    
por 03.04.2016 / 17:14
3

Se a segurança de dados é sua preocupação, deve-se notar que nem um SECURE_ERASE nem um TRIM realmente apagam as células flash. O firmware do SSD mantém uma lista de quais células estão alocadas e quais não estão. Um TRIM simplesmente marca uma célula como não alocada da mesma forma que a exclusão de um arquivo faz com que o sistema de arquivos marque um cluster como não alocado. Nenhuma tentativa é feita para realmente apagar os dados. Uma solicitação de leitura de uma célula não alocada simplesmente faz com que o dispositivo retorne 0x00 (ou algum outro padrão de bit) sem realmente verificar o conteúdo da célula.

Não existe uma maneira eficaz de limpar com segurança um SSD. As ferramentas forenses que podem interagir diretamente com o firmware podem ver o conteúdo das células. Além disso, há mais armazenamento no dispositivo do que o que é acessível a partir do espaço do usuário. Essas células extras são usadas na coleta de lixo. A coleta de lixo pode realocar células on-the-fly e ainda pode trabalhar mesmo em uma unidade que está 100% cheia. Um SECURE_ERASE pode (provavelmente faz) TRIM essas células, mas um blkdiscard ou fstrim certamente não, já que eles usam números de setor para identificar as áreas a serem TRIMmed.

A única maneira de apagar com segurança um SSD é destruí-lo. Essa é a política da maioria das empresas de saúde, bancos e governo quando surgem equipamentos.

    
por 05.04.2016 / 01:40