La limpieza es muy lenta. ¿Muy poca entropía?

16

Tengo que entregar una computadora portátil, incluido su disco duro. Como no estaba encriptado, quería borrarlo al menos rápidamente. Sé que esto no es óptimo en SSD, pero pensé mejor que simplemente legible.

Ahora estoy ejecutando el borrado de una memoria USB en vivo y es muy lenta. Me pregunto por qué es así. Por supuesto, casi no sucede nada en la computadora además de limpiar ese dispositivo, por lo que imagino que la entropía podría ser baja (entropy_avail dice que está en 1220). ¿Sería igualmente bueno simplemente llamar

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

¿cuatro veces? ¿O hay alguna forma de llamar a algo que aumente la aleatoriedad? ¿O es el cuello de la botella en algún lugar completamente diferente?

user857990
fuente
23
No. Deja de hacer esto. Solo estás destruyendo el SSD.
Michael Hampton
¿Es este el uso incorrecto de la palabra entropía?
user3728501
3
@ user3728501: En realidad, la respuesta tiene dos facetas: "entropía" aquí es consistente con el uso del kernel, así que sí, es la palabra correcta en ese sentido; pero el uso del núcleo de "entropía" realmente está hablando de la entropía estimada , no de la verdadera entropía de Shannon. Baste decir que los detalles son lo suficientemente sutiles como para que nadie te culpe por decir "entropía" en este contexto (a menos que sean pedantes).
Reid
3
No entiendo por qué alguien usaría aleatorio / urandom en un disco moderno de todos modos, SSD o no, la reducción a cero sería más rápida e igual de efectiva.
Chopper3
@Reid Justo lo suficiente: vi la pregunta y estaba interesado debido a mi formación en física.
user3728501

Respuestas:

50

No intente "borrar" un SSD con herramientas diseñadas para hacer girar discos duros magnéticos. En realidad, no destruirá todos los datos , y solo reducirá la vida útil de la SSD.

En su lugar, use una herramienta de borrado diseñada específicamente para SSD, que puede usar el borrado de memoria flash interno (descarte) para descartar todos los bloques, incluidos los que no puede acceder. El proveedor de SSD generalmente proporciona una herramienta de este tipo que se garantiza que es compatible con las unidades de ese proveedor.

También puede intentar hacerlo usted mismo con una utilidad de borrado seguro . Los programas que hacen Secure Erase funcionan tanto con discos duros giratorios como con SSD. Además, algunos BIOS del sistema (principalmente en laptops empresariales) tienen la funcionalidad de borrado seguro incorporado. Tenga en cuenta que un borrado seguro tomará horas en un disco duro, pero solo segundos en un SSD; en un disco duro, todos los sectores deben sobrescribirse, pero en un SSD descartará todos los bloques a la vez y / o cambiará la clave de cifrado interna de la unidad.

(Y tenga en cuenta que el borrado seguro no funcionó correctamente en algunos de los SSD de la primera generación; en estos casos, simplemente debe tirar el disco en una trituradora).

Michael Hampton
fuente
1
Bravo @Michael por no dejar que la pregunta interfiera con la respuesta correcta.
pollitos
6

El uso /dev/urandomdebería hacer que todo sea más rápido. No limpiaría un SSD como ese. Los SSD generalmente tienen nivelación avanzada de desgaste en su lugar. Básicamente, en lugar de escribir sobre los datos existentes, la unidad escribe sobre porciones no utilizadas. Tomará un poco de tiempo mezclar correctamente todos los datos. Para entonces, ya habrías desgastado un SSD, aunque solo sea un poquito.

PNDA
fuente
2
Más rápido que /dev/random, seguro, pero más lento que /dev/zero, y no te da ninguna seguridad.
Mark
2
@ Mark ¿Por qué? Aunque es solamente pseudoaleatorios, también sobrescribe los datos en el dispositivo con basura de alta entropía.
Peterh - Restablecer Mónica
44
@peterh, no necesitas basura de alta entropía. No ha sido posible recuperar datos de una unidad limpiada por cero durante al menos los últimos 20 años.
Mark
3

/dev/randomgenera datos aleatorios por entropía recopilados por su sistema (demoras de tiempo entre atajos de teclado, sincronización de la red midiendo las llegadas de paquetes con precisión de nanosegundos, etc.). Si no hay suficiente entropía, este dispositivo bloquea la salida mientras recolecta más entropía.

/dev/urandomusa una entropía recolectada, pero también usa un generador pseudoaleatorio. Entonces, no tiene tanta entropía, a diferencia /dev/random, pero es muy rápido. Sin embargo, su salida tiene una entropía lo suficientemente alta, por lo que puede usarla en todas partes si no tiene algunas restricciones de seguridad muy altas (generalmente, generación de claves).

Si sobrescribe un SSD en el nivel de bloque con basura de alta entropía, en realidad sobrescribirá su memoria flash en el nivel muy bajo (y en la mayoría de los casos, inalcanzable). Esto se debe a que el IC de control SSD no tiene ninguna posibilidad de investigar, sus datos son realmente basura o no, por lo que su mecanismo de deduplicación de datos se evita fácilmente.

Pero los RAM Ram tienen una escritura de bloque máxima y la envías con una acción más cercana a su vencimiento. Pero un SSD se puede sobrescribir alrededor de 10000-100000 veces antes de que comience a morir, y el borrado de datos no tiene que suceder tan a menudo, por lo que todavía está bien.

peterh - Restablece a Monica
fuente
Debería usar mi cuenta predeterminada del servidor con más frecuencia.
PNDA
1

En respuesta a los comentarios a mi respuesta, debo admitir que limpiar en general no es una buena idea para los SSD.

Además de las respuestas anteriores, me gustaría recomendar frandom

Es incluso más rápido que el urandom. urandom es mucho más rápido que aleatorio pero a la vez bastante lento. Frandom es mi elección para limpiar discos y solo para limpiar discos. No produce la misma entropía que aleatorio y urandom, pero para limpiar el disco debería ser suficiente. Como MadHatter señaló, el algoritmo utilizado tiene debilidades. Pero para limpiar el disco, sin embargo, solo desea asegurarse de que no sea posible reconstruir los bits restantes posibles.

Si tienes problemas para ejecutarlo, ArchWiki tiene una buena documentación. El ArchWiki también cubre muchos más detalles acerca de cómo erease discos.

Henrik Pingel
fuente
Como advertencia, observo que el autor de frandom dice que " se basa en el algoritmo de cifrado RC4, que se considera seguro, y es utilizado por varias aplicaciones, incluido SSL ". Eso no es del todo cierto; Wikipedia señala en julio de 2015 que " RC4 tiene debilidades que argumentan en contra de su uso en nuevos sistemas ... RFC 7465 prohíbe el uso de RC4 en TLS ". Admito que frandom es un reemplazo para /dev/urandom, que de todos modos no es muy aleatorio, pero cualquiera que use frandom probablemente debería darse cuenta de los problemas.
MadHatter
gracias por el comentario. Edité mi respuesta para reflejar su punto.
Henrik Pingel
No puedo discutir con eso - +1 de mi parte (a pesar de que esta pregunta ya ha sido completamente respondida).
MadHatter
Gracias. limpiarse urandompuede llevar horas. Estoy bastante seguro de que muchas personas valorarán frandom por ese motivo.
Henrik Pingel
1
Estoy de acuerdo, pero no para los SSD , de eso se trata específicamente esta pregunta.
MadHatter