¿Hay alguna forma más rápida que / dev / [u] random? A veces, necesito hacer cosas como
cat / dev / urandom> / dev / sdb
Los dispositivos aleatorios son "demasiado" seguros y desafortunadamente demasiado lentos para eso. Sé que existen wipe
herramientas similares para la eliminación segura, pero supongo que también hay algunos medios integrados para eso en Linux.
Respuestas:
Si está buscando hacer un borrado "seguro" de un disco duro (o archivo), debe mirar la utilidad de trituración.
Como señalan los carteles anteriores, los dispositivos aleatorios / dev / * están destinados a ser utilizados como una fuente de pequeños fragmentos de datos aleatorios.
fuente
Desafortunadamente, Linux tiene una mala implementación de urandom. Puede usar aes256-ctr con una clave aleatoria y obtener varios cientos de megabytes de pseudoaleatoriedad por segundo, si su CPU admite AES-NI (aceleración de hardware). Tengo muchas ganas de cambiar urandom a un enfoque moderno también.
Este cachorro tiene 1.0 GB / s en mi caja (en comparación con 14 MB / s de / dev / urandom). Utiliza urandom solo para crear una contraseña aleatoria y luego realiza un cifrado muy rápido de / dev / zero con esa clave. Esto debería ser un PRNG criptográficamente seguro, pero no haré garantías.
fuente
pv
un buen indicador de progreso.openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | pv -pterb > /dev/sdb
.pv
recomendación, se pueden canalizar alpv -pterb -s $(blockdev --getsize64 /dev/sdb) >/sdb
tenerpv
que mostrar el progreso hacia terminar la escritura.En una prueba rápida con Ubuntu 8.04 en un Thinkpad T60p con CPU T2500, 1 GB de datos aleatorios de 3 a 4
openssl rand
veces más rápido que/dev/urandom
. Es decir,... fue alrededor de 4 minutos mientras ...
... fue poco más de 1 minuto.
No estoy seguro de si hay una diferencia en la calidad aleatoria, pero cualquiera de los dos probablemente esté bien para borrar HD.
fuente
Veo muchas respuestas que dicen que usar datos aleatorios no es importante. Eso es bastante cierto si todo lo que está tratando de hacer es limpiar la unidad, pero no tanto si la está limpiando en preparación para el cifrado del disco.
Si llena un dispositivo con datos no aleatorios, coloque una partición cifrada en él y podría tener un problema. La parte de la unidad que almacena datos cifrados se destacará del resto de la unidad, porque los datos cifrados se verán al azar y el resto no. Esto puede usarse para determinar información sobre el disco criptográfico que podría usarse para descifrarlo. El siguiente enlace explica la teoría detrás de cómo funcionan algunos de los ataques más comunes y cómo defenderse de ellos (en Linux, de todos modos).
Configuración de cifrado del disco duro de Linux
fuente
Si necesita limpiar de forma segura un HD, hay una herramienta muy poderosa: DBAN
fuente
Si desea borrar un dispositivo de bloque enorme, entonces lo encuentro más robusto de usar
dd
y el mapeador de dispositivos en lugar de la redirección de salida de datos aleatorios. Lo siguiente se asignará/dev/sdb
para/dev/mapper/deviceToBeErased
desencriptar y desencriptar de forma transparente en el medio. Para llenar el dispositivo en el extremo cifrado, los ceros se copian en el lado de texto plano del mapeador (/dev/mapper/deviceToBeErased
).Se
/dev/sdb
garantiza que los datos cifrados no se pueden distinguir de los datos aleatorios si no hay una debilidad grave en AES. La clave utilizada se toma/dev/random
(no se preocupe, solo usa 32 bytes).fuente
comprobar al azar
http://billauer.co.il/frandom.html
según mi prueba es más rápido
fuente
Cuanto más rápida sea su herramienta, menos seguro será el resultado. Generar buena aleatoriedad lleva tiempo.
De todos modos, podría usar algo como dd if = / dev / zero of = / dev / sdb , pero obviamente eso no será aleatorio, simplemente se borrará mucho más rápido.
Otra opción podría ser utilizar este método / sbin / badblocks -c 10240 -s -w -t random -v / dev / sdb es más rápido que urandom, pero el PRNG de badblocks es menos aleatorio.
fuente
/dev/random
utiliza una gran cantidad de entropía del sistema y, por lo tanto, produce solo un flujo de datos lento./dev/urandom
es menos seguro y más rápido, pero aún está orientado a fragmentos de datos más pequeños: no está destinado a proporcionar un flujo continuo de números aleatorios de alta velocidad.Debe hacer un PRNG de su propio diseño y sembrarlo con algo de
/dev/random
o/dev/urandom
. Si lo necesita un poco más al azar, siembre periódicamente, cada pocos MB (o lo que sea la longitud de su prng). Obtener 4 bytes (valor de 32 bits) de urandom o random es lo suficientemente rápido como para que pueda hacer esto cada 1k de datos (reinicializar su prng cada 1k) y obtener resultados muy aleatorios, mientras que va muy, muy, rápidamente.-Adán
fuente
Si desea borrar un disco duro rápidamente, escríbale datos no aleatorios. Esto no es menos seguro que usar datos aleatorios. De cualquier manera, cuando se conecta a una computadora, los datos originales no se pueden leer. Sobrescribir datos del disco duro: la gran controversia de limpieza muestra que los datos originales tampoco se pueden leer con un microscopio.
fuente
Formatee con LUKS y dd sobre el volumen cifrado. Luego use / dev / urandom para borrar el encabezado LUKS.
Si tiene soporte de hardware AES, esta es una solución muy rápida.
Brevemente:
¡hecho!
Vea mi blog: llene rápidamente un disco con bits aleatorios (sin / dev / urandom)
fuente
Si desea borrar un disco duro, dd no elimina el contenido de los sectores reasignados, y es muy lento si el disco duro está muriendo. En su lugar, puede utilizar la función de borrado integrada de unidades, que se ha estandarizado durante mucho tiempo.
En este ejemplo, estoy borrando un disco duro mecánico de 500 GB en solo 102 minutos. Incluso cuando está lleno de sectores reasignados:
Puede ver más detalles en ata.wiki.kernel.org , sin embargo, su ejemplo no usa --security-erase-mejorado, que es necesario para eliminar los sectores reasignados antes mencionados.
fuente
En la práctica, probablemente no sea necesario sembrar todo el disco desde una secuencia aleatoria continua.
Puede crear una porción modesta de datos aleatorios y luego repetir eso una y otra vez en el disco.
Solo asegúrese de que esa porción de datos no sea un múltiplo del tamaño de bloque normal del disco, para asegurarse de que no termine sobrescribiendo bloques de datos correlacionados con exactamente el mismo bit de datos aleatorios. Un tamaño de fragmento que es un número primo en el rango de ~ 1 MB debería funcionar bien.
Para mayor seguridad, solo hazlo varias veces más, usando un tamaño de fragmento diferente cada vez.
fuente
La utilidad 'triturar' es fácil y rápida. Si los atributos SMART de la unidad indican cero sectores reasignados, es probable que 'triturar' sea lo suficientemente seguro.
Sin embargo, si la unidad tiene sectores reasignados, los datos de los sectores dañados no se sobrescribirán. Si las ubicaciones dañadas contenían datos confidenciales antes de ser reasignadas, 'triturar' puede no ser lo suficientemente bueno. Los sectores "defectuosos" pueden leerse restableciendo el mapa de asignación de la unidad y (repetidamente) leyéndolos.
La capacidad de restablecer el mapa de asignación de sectores defectuosos varía según el fabricante y el modelo de unidad.
fuente
Si todo lo que quiere hacer es sobrescribir el disco, entonces no importa lo que use porque cualquier cosa superará a cualquier cosa menos que un laboratorio forense y no confiaría en nada menos que estropear el disco para detener ese nivel de recursos .
Simplemente use una fuente no aleatoria como todos ceros o unos o un patrón repetitivo como (creo que esto funcionará)
fuente