En ext4 existe la posibilidad de que sus datos (sus claves secretas) puedan recuperarse independientemente del hardware subyacente, dependiendo de cómo lo monte. (Las siguientes explicaciones también son válidas para muchos otros sistemas de archivos de registro por diario, y siempre tiene un problema con los sistemas de archivos de copia en escritura, como btrfs y otros que son compatibles con instantáneas).
La maldición de los sistemas de archivos de registro / copia en diario
Esto tiene que ver con la forma en que los sistemas de archivos modernos (de registro por diario) se aseguran de que si tiene una pérdida de energía en medio de la escritura en el sistema de archivos, el sistema de archivos seguirá en un estado normal. Con discos pequeños, tuvimos que ejecutar programas como fsck para arreglar un sistema de archivos después de un fallo de este tipo. Con discos grandes, ejecutar fsck tomaría demasiado tiempo, por lo que los sistemas de archivos de registro por diario son una opción mucho mejor.
Sin embargo, logran su recuperación mágica manteniendo un diario de operaciones (de ahí el nombre) que pueden volver a reproducir en su totalidad o descartar si no hay un registro registrado (por ejemplo, si su computadora murió mientras escribía algo en el disco). ).
Ahora, dependiendo de cuánto escriba su sistema de archivos en el diario (solo las operaciones de metadatos del archivo o también los datos asociados), puede tener un problema.
Una forma de poder recuperar un estado limpio después de que una escritura en un archivo haya fallado / se haya interrumpido en el medio) es nunca escribir datos en la misma ubicación, por lo tanto, si sobrescribe los datos de un archivo, la nueva los contenidos no se almacenan en el mismo bloque de disco que los contenidos del archivo original. Se asigna un nuevo bloque de disco en su lugar. Esto se llama copiar en escritura (COW para abreviar). De esta manera, el contenido del archivo anterior se puede recuperar fácilmente cuando la operación de escritura no se completó correctamente.
Sin embargo, esto también significa que sus claves secretas aún residen en el disco después de haber sido "sobrescritas" con datos nuevos y se pueden encontrar con una simple operación grep
en el dispositivo de partición, por ejemplo:
grep "my-secret" /dev/sda1
o tal vez
strings /dev/sda1 | grep "my-secret"
Por lo tanto, no es necesario ser un científico espacial para recuperar los datos sobrescritos previamente cuando el sistema de archivos se monta con la opción de registro de datos.
diario de datos en ext3 y ext4
ext3 y ext4 le permiten activar el registro diario de datos (opción data=journal
) o desactivarlo (lo cual, creo, es el valor predeterminado). Pienso que sin el registro de datos (o al menos con data=writeback
), sus archivos deberían sobrescribirse en su lugar (eso es lo que man ext4
sugiere, de todos modos). Pero no estoy 100% seguro, así que es mejor que lo pruebes.
Problemas causados por discos de estado sólido y algoritmos de nivelación de desgaste
Los SSD y las unidades de memoria flash plantean más problemas: los algoritmos de nivelación de desgaste hacen que sea prácticamente imposible saber dónde terminan físicamente los datos.
La opción de recorte del SSD puede ayudarlo porque permite que el controlador del SSD marque los bloques como eliminados, por lo que el controlador puede programar que se sobrescriban en un momento anterior. Sin embargo, usted tampoco tiene garantías aquí. Es posible que los SSD baratos ni siquiera lo implementen y mientan al sistema operativo.
Finalmente, incluso los discos magnéticos rotacionales plantean problemas. La mayoría de estos discos que todavía están operativos tienen controladores inteligentes que pueden sustituir a un sector defectuoso por un sector defectuoso sobre la marcha. Esto puede suceder en cualquier momento, por lo que, si tiene muy mala suerte, el sector que contiene su secreto podría terminar marcado como defectuoso y se intercambiará de forma transparente. Por lo general, no puede acceder a estos sectores defectuosos (son defectuosos, después de todo), pero eso no significa que los expertos con el hardware de diagnóstico necesario todavía no puedan leer estos sectores defectuosos. Sin embargo, no me preocuparía mucho por este escenario, es algo a tener en cuenta.
¿Qué puedes hacer?
Entonces, su única apuesta segura es cifrar el sistema de archivos donde almacena información confidencial. Luego puede asegurarse de que sea realmente inaccesible al eliminar la clave de cifrado. Esta es la única solución que funciona sin importar qué tipo de sistema de archivos y hardware use.
Otra forma de sobrescribir realmente los datos es crear un archivo que ocupe todo el espacio libre de una partición:
dd if=/dev/zero of=stupidly_big_file
Sin embargo, esto puede llevar mucho tiempo y no es absolutamente infalible.