Copiar archivos cifrados ext4

Copiar archivos cifrados ext4

Estoy usando cifrado ext4. https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption

Antes de descifrar un directorio, puedo ver muchos nombres de archivos cifrados en él.

Me gustaría copiar los archivos cifrados para poder descifrarlos en una máquina diferente.

Podría hacer esto con ecryptfs. ¿Cómo hago esto con el cifrado ext4?

Respuesta1

Puede ver nombres de archivos cifrados y rellenados, pero no debería poder leer el contenido de los archivos. Por lo tanto, intentar copiar los archivos sin cifrar provocará errores como:

cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available

Así que se supone que no debes hacer esto. La respuesta práctica es descifrarlo y luego copiarlo. La copia se volverá a cifrar si eligió una ubicación cifrada como directorio de destino. A través de la red con rsync/ssh, la transferencia también se cifrará. Entonces, la mayoría de las cosas funcionan, simplemente almacenarlas en la nube probablemente esté fuera de discusión. El cifrado específico del sistema de archivos no funciona fuera del sistema de archivos.

Evitar la barrera de lectura no es suficiente: a diferencia de ecryptfs, donde todos los metadatos son archivos normales, el cifrado ext4 implica metadatos ocultos en el propio sistema de archivos, no visibles para usted, por lo que no puede copiarlos fácilmente.

Lo más cercano que encontré es e4crypt get_policy, e4crypt set_policyque le permite cifrar un directorio con una clave existente sin conocer la clave real en texto claro. Pero sólo funciona para directorios vacíos, no para archivos.

También puede cifrar un directorio de bóveda, llenarlo con archivos, luego vincular esos archivos al directorio raíz y luego eliminar el directorio de bóveda. Termina con archivos cifrados (contenidos) en el directorio raíz (que se supone que no puede cifrar). El sistema de archivos simplemente sabe que el archivo está cifrado. (No se recomienda hacer esto).


Si debes hacer una copia de todos modos, supongo que puedes hacerlo de la siguiente manera:

  1. hacer una copia dd sin formato de todo el sistema de archivos
  2. cambiar el UUID del sistema de archivos
  3. elimina los archivos que no querías

De lo contrario, supongo que necesitarías una herramienta especializada que sepa cómo replicar un directorio cifrado + metadatos de un sistema de archivos ext4 a otro, pero no vi una manera de hacerlo con e4crypto debugfs.


debugfsen particular parece estar desprovisto de características relacionadas con políticas/criptas, excepto ls -rque muestra nombres de archivos cifrados en todo su esplendor, lo \x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axYque significa que la representación ASCII lsque se muestra regularmente está codificada de alguna manera para ser imprimible.

El nombre de archivo real se [rellena y realmente se almacena en el sistema de archivos como] 16 bytes aleatorios, pero normalmente lslo muestra como 22 caracteres ASCII. Copiar un archivo de este tipo de la manera tradicional crearía un archivo almacenado como su representación de caracteres ASCII cuando realmente necesita almacenarlo como bytes aleatorios. Así que eso está destinado a fallar en muchos niveles.


tl; drsi hay una manera de hacerlo entonces no lo sé :-}

información relacionada