Cuando tratamos de borrar SSD de forma segura, tenemos varios problemas:
- Los SSD se desgastan después de una cantidad limitada de ciclos de borrado
- Las SSD tienen un controlador que asigna dinámicamente los LBA (direcciones de bloques lógicos utilizados por el sistema para acceder al disco) a las celdas NVRAM (las celdas de memoria flash reales) para equilibrar el desgaste, lo que significa decirle al disco que sobrescriba los bloques que anteriormente almacenaban un determinado el archivo puede sobrescribir cualquier otro bloque de repuesto.
- Los SSD tienen un porcentaje notable de capacidad de reserva que se utiliza para compensar las células de almacenamiento moribundas y reducir el desgaste. No son visibles para el sistema y pueden contener fragmentos de datos antiguos.
Ahora, ¿qué opciones tenemos desde Ubuntu para borrar de forma segura los SSD?
Escuché que algunos SSD más nuevos deberían poder limpiarse de manera segura, pero ¿cómo puedo saber si mi SSD es capaz de esto y cómo podría activarlo?
También debería haber un comando de borrado seguro ATA, ¿cómo puedo saber si eso es compatible y cómo lo activaría?
¿Existen también formas de borrar de forma segura solo un archivo determinado o solo el espacio no utilizado?
Supongo que sería posible hacer una copia de seguridad de todas las particiones, limpiar de forma segura todo el disco y luego restaurar la copia de seguridad, pero parece demasiado complicado y tomaría demasiado tiempo para ser práctico. ¿Hay otras alternativas? Si no, ¿qué herramientas puedo usar para hacer una copia de seguridad de las particiones sin también hacer una copia de seguridad de los archivos ya eliminados?
Por supuesto, las herramientas estándar tienen gusto shred
o wipe
no aquí para los puntos descritos anteriormente. Simplemente sobrescriben un archivo (sobrescribiendo sus grupos de sistemas de archivos que están vinculados a LBA que no apuntan constantemente a las mismas celdas flash debido al controlador de nivelación de desgaste).
fuente
Respuestas:
Actualmente no hay forma de borrar archivos de forma segura en SSD sin borrar el contenido de toda la unidad o acceder al firmware de la SSD.
Es imposible saber dónde puede almacenar el SSD copias anteriores de un bloque lógico.
Para empeorar las cosas, debido a los mecanismos de registro diario y copia en escritura del sistema de archivos, puede ser imposible saber qué bloques lógicos pueden contener una copia previa de un archivo en particular.
La única forma de evitar la filtración de archivos eliminados a alguien con acceso directo a la unidad es, en primer lugar, cifrarlos y mantener la clave de cifrado a salvo de miradas indiscretas.
Apéndice:
Investigué un poco y descubrí que puedes borrar todos los archivos eliminados previamente si logras aprender todos los sectores desocupados de un sistema de archivos, lo que generalmente es posible y lo ofrecen algunas herramientas del sistema de archivos (por ejemplo, para la familia ext * ), y luego deséchelos (por ejemplo,
blkdiscard(8)
como se describe en esta respuesta a la pregunta vinculada ), que devuelve los bloques para la recolección de basura hasta que se vuelvan a usar y se sobrescriban en el proceso.Esto es seguro contra todos los que no pueden acceder a las celdas flash directamente, por lo que todos los que
fuente
La forma más fácil de determinar si su unidad admite borrado seguro es preguntarlo: he usado / dev / sdX en los ejemplos a continuación. Deberá cambiarlo cuidadosamente para que coincida con el dispositivo con el que está trabajando:
Fuentes:
https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
/superuser/1161531/how-to-un-freeze-drive-in-linux
En mi SSD esto resulta en:
Si su dispositivo admite el borrado seguro, su activación es un proceso de 2 o 3 pasos.
sudo hdparm -I /dev/sdX
similar a esto:Descongele suspendiendo y reanudando su sistema. Hice esto con el comando
sudo systemctl suspend
moviendo el puntero hasta que el sistema se reanudó.Debe establecer una contraseña para usar el borrado seguro en este caso, estoy usando foobar como contraseña, puede usar cualquier contraseña que no esté en blanco que desee, ya que es temporal.
sudo hdparm --user-master u --security-set-pass foobar /dev/sdX
Con la contraseña establecida, ahora puede usarla para borrar la unidad de forma segura:
sudo hdparm --user-master u --security-erase foobar /dev/sdX
Si su unidad lo admite y desea, puede optar por utilizar el borrado de seguridad mejorado en su lugar con:
sudo hdparm --user-master u --security-erase-enhanced foobar /dev/sdX
fuente