La eliminación segura generalmente se crea de forma indirecta:
- Cifre los datos con una clave generada aleatoriamente.
- Almacene la clave en un solo lugar (quizás encriptada con una clave derivada de una contraseña).
Luego, en lugar de eliminar todos los bits de los datos, el proceso de eliminación segura solo necesita asegurarse de que borra la clave.
Esto permite que el archivo clave se almacene en un tipo de medio diferente al de los datos del archivo, por ejemplo, los datos del archivo pueden estar en un disco duro o SSD y los datos clave en un dispositivo más pequeño pero más seguro, como un flash extraíble unidad (que siempre lleva consigo) o una tarjeta inteligente (lo que dificulta la extracción de la llave). Para destruir la clave, es suficiente limpiar o destruir los medios pequeños y baratos que contienen la clave.
Esta configuración es fácil de organizar a nivel del sistema de archivos completo (por ejemplo, LUKS en Linux puede funcionar con un archivo de claves almacenado en un medio diferente o con una contraseña almacenada en una tarjeta inteligente OpenPGP), pero no lo hago. Conozca cualquier solución preparada a nivel de archivo.
No es muy conveniente, pero puedes construir algo con encfs bajo Linux. Encfs cifra un árbol de directorios con una clave que se almacena en un archivo ( .encfs6.xml
en la raíz del árbol cifrado). Puede mover este archivo a otro dispositivo de almacenamiento (que puede ser de solo lectura) y crear un enlace simbólico. Luego puede borrar el árbol cifrado de manera efectiva destruyendo o limpiando el dispositivo que contiene la clave. El archivo clave solo debe escribirse una vez, por lo tanto, mientras use un sistema de archivos que no reasigne bloques (por ejemplo, ext2), sobrescribir el archivo en su lugar es suficiente para borrar el contenido anterior (al menos en el nivel lógico; flash las unidades realizan su propia reasignación de bloques, por lo que aún es posible recuperar los datos desarmando la unidad para omitir el controlador).