A limpeza é muito lenta. Pouca entropia?

16

Tenho que entregar um laptop, incluindo o disco rígido. Como não estava criptografado, queria limpá-lo pelo menos rapidamente. Eu sei que isso não é ideal no SSD, mas achei melhor do que simplesmente legível.

Agora estou executando o apagamento de um stick USB ativo e é dolorosamente lento. Eu me pergunto por que é isso. É claro que quase nada está acontecendo no computador além de limpar esse dispositivo, então eu imagino que a entropia possa ser baixa (entropy_avail diz que é às 1220). Seria igualmente bom apenas ligar

dd if=/dev/random of=/dev/sda1 bs=1k

quatro vezes? Ou existe uma maneira de chamar algo que aumentará a aleatoriedade? Ou o gargalo está em algum lugar completamente diferente?

user857990
fonte
23
Não. Pare de fazer isso. Você está apenas destruindo o SSD.
Michael Hampton
É este o uso errado da palavra entropia?
user3728501
3
@ user3728501: Na verdade, existem duas facetas para a resposta: "entropia" aqui é consistente com o uso do kernel, então sim, é a palavra certa nesse sentido; mas o uso de "entropia" do kernel está realmente falando de entropia estimada , não de entropia de Shannon verdadeira. Basta dizer que os detalhes são suficientemente sutis para que ninguém o culpe por dizer "entropia" neste contexto (a menos que estejam sendo pedantes).
Reid
3
Eu não entendo por que alguém usaria random / urandom em um disco moderno de qualquer maneira, SSD ou não - zerar seria mais rápido e eficaz.
Chopper3
@ Fair Fair suficiente - eu vi a pergunta e estava interessado devido à minha formação em física.
user3728501

Respostas:

50

Não tente "limpar" um SSD com ferramentas projetadas para girar discos rígidos magnéticos. Na verdade, você não destruirá todos os dados e apenas reduzirá a vida útil do SSD.

Em vez disso, use uma ferramenta de apagamento projetada especificamente para SSDs, que pode usar o apagamento do flash interno da unidade (descarte) para descartar todos os blocos, incluindo os que você não pode acessar. O fornecedor de SSD geralmente fornece uma ferramenta que é garantida como compatível com as unidades desse fornecedor.

Você também pode tentar fazer isso sozinho com um utilitário Secure Erase . Os programas que executam o Secure Erase funcionam com discos rígidos e SSDs giratórios. Além disso, alguns BIOSs do sistema (principalmente em laptops comerciais) possuem a funcionalidade Secure Erase embutida. Observe que um Secure Erase demorará horas no disco rígido, mas apenas segundos em um SSD; em um disco rígido, todos os setores devem estar sobrescritos, mas em um SSD ele descartará todos os blocos de uma vez e / ou alterará a chave de criptografia interna do disco.

(Observe que a exclusão segura não funcionou corretamente em alguns dos SSDs da geração mais antiga; nesses casos, você deve apenas jogar a unidade em um triturador.)

Michael Hampton
fonte
11
Bravo @Michael por não deixar a pergunta atrapalhar a resposta correta.
pintainhos
6

O uso /dev/urandomdeve tornar tudo mais rápido. Eu não limparia um SSD assim. Os SSDs geralmente possuem nivelamento avançado de desgaste. Basicamente, em vez de escrever sobre os dados existentes, a unidade grava sobre partes não utilizadas. Vai demorar um pouco para embaralhar todos os dados corretamente. Naquela época, você já usava um SSD, embora seja apenas um pouquinho.

PNDA
fonte
2
Mais rápido que /dev/random, com certeza, mas mais lento que /dev/zero, e não ganha nenhuma segurança.
Mark
2
@Mark Por quê? Embora seja apenas pseudo-aleatório, ele também substitui os dados no dispositivo com uma porcaria de alta entropia.
peterh - Restabelece Monica
4
@ Peterh, você não precisa de lixo de alta entropia. Não foi possível recuperar dados de uma unidade com limpeza zero nos últimos 20 anos.
Mark
3

/dev/randomgera dados aleatórios por entropia coletada pelo seu sistema (atrasos entre atalhos do teclado, tempo da rede medindo as chegadas de pacotes com precisão de nanossegundos, etc.). Se não houver entropia suficiente, este dispositivo bloqueia a saída enquanto coleta mais entropia.

/dev/urandomusa também a entropia coletada, mas também usa um gerador pseudo-aleatório. Portanto, não tem muita entropia, ao contrário /dev/random, mas é muito rápido. Porém, sua saída possui entropia alta o suficiente, para que você possa usá-la em qualquer lugar, se não tiver restrições de segurança muito altas (normalmente, geração de chaves).

Se você sobrescrever um SSD no nível do bloco com porcaria de alta entropia, na verdade sobrescreverá seu flash ram no nível muito baixo (e na maioria dos casos, inacessível). Isso ocorre porque o IC que controla o SSD não tem nenhuma possibilidade de investigar, seus dados são realmente ruins ou não, então seu mecanismo de deduplicação de dados é facilmente evitado.

Porém, os flash rams têm uma gravação máxima de bloco e você o envia com uma ação semelhante à data de validade. Mas um SSD pode ser sobrescrito cerca de 10000-100000 vezes antes de começar a morrer, e a limpeza de dados não precisa acontecer com tanta frequência, por isso ainda está bom.

peterh - Restabelecer Monica
fonte
Eu devo usar minha conta de falha no servidor com mais frequência.
PNDA 14/06
1

Em resposta aos comentários à minha resposta, devo admitir que, em geral, a limpeza não é uma boa ideia para os SSDs.

Além das respostas acima, eu gostaria de recomendar frandom

É ainda mais rápido que o urandom. O urandom é muito mais rápido que o aleatório, mas é bem lento. Frandom é minha escolha para limpar discos e apenas para limpar discos. Não produz a mesma entropia que aleatória e urandom, mas para limpar o disco deve ser suficiente. Como MadHatter apontou, o algoritmo usado tem pontos fracos. Porém, para limpar o disco, porém, você quer apenas garantir que não é possível reconstruir os possíveis bits restantes.

Se você tiver problemas para executá-lo, o ArchWiki possui uma boa documentação. O ArchWiki também cobre muito mais detalhes sobre como remover discos.

Henrik Pingel
fonte
Como uma ressalva, observo que o autor do frandom diz que " é baseado no algoritmo de criptografia RC4, que é considerado seguro e é usado por vários aplicativos, incluindo SSL ". Isso não é bem verdade; A Wikipedia observa em julho de 2015 que "o RC4 possui pontos fracos que argumentam contra seu uso em novos sistemas ... O RFC 7465 proíbe o uso do RC4 no TLS ". Eu admito que o frandom é um substituto /dev/urandom, o que não é altamente aleatório, mas quem usa o frandom provavelmente deve se conscientizar dos problemas.
MadHatter apoia Monica
obrigado pelo comentário. Eu editei minha resposta para refletir seu ponto de vista.
Henrik Pingel
Não posso argumentar com isso - +1 de mim (mesmo que essa pergunta já tenha sido totalmente respondida).
MadHatter apoia Monica
obrigado. limpar urandompode levar horas. Tenho certeza de que muitas pessoas valorizarão o frandom por esse motivo.
Henrik Pingel
11
Eu concordo, mas não para SSDs , que é especificamente sobre esta questão.
MadHatter apoia Monica