¿Qué tipo de encriptación necesito si quiero encriptar subdirectorios de un directorio encriptado, para tener múltiples niveles de acceso?

¿Qué tipo de encriptación necesito si quiero encriptar subdirectorios de un directorio encriptado, para tener múltiples niveles de acceso?

Si:

  • desea directorios anidados cifrados independientemente,
  • desea alojarlos en un NAS y
  • sus datos deben permanecer encriptados durante el vuelo,

entonces estás prácticamente atascado con el cifrado a nivel de archivo del lado del cliente. Realmente no desea utilizar el cifrado de volumen para esto, incluso si su herramienta elegida admite volúmenes anidados: un pequeño cambio en un archivo anidado a tres niveles de cifrado profundos podría resultar en una escritura enormemente complicada en su red.

Mi herramienta de acceso para esto es EncFS, y aunque una auditoría de seguridad de 2014 reveló algunos problemas con su implementación, hay planes para abordar esto en una iteración 2.x, y la versión actual (1.9.1 a partir de este escrito) debería ser lo suficientemente seguro para uso interno.

Más importante aún, no tiene problemas con los directorios encriptados anidados.

Por ejemplo, comencemos creando una jerarquía cifrada en /tmp/base , cuya representación en texto plano se monta en /tmp/A :

$ encfs / tmp / base / tmp / A
El directorio “/ tmp / base /” no existe. ¿Debería ser creado? (y, n) y
El directorio “/ tmp / A” no existe. ¿Debería ser creado? (y, n) y
Creando nuevo volumen encriptado.
Elija una de las siguientes opciones:
ingrese “x” para el modo de configuración experto,
ingrese “p” para el modo de paranoia preconfigurado,
cualquier otra cosa, o una línea vacía seleccionará el modo estándar.
?>

Configuración estándar seleccionada.

Configuración finalizada. El sistema de archivos a crear tiene
las siguientes propiedades:
Cifrado del sistema de archivos: “ssl / aes”, versión 3: 0: 2
Codificación de nombre de archivo: “nameio / block”, versión 4: 0: 2
Tamaño clave: 192 bits
Tamaño de bloque: 1024 bytes
Cada archivo contiene un encabezado de 8 bytes con datos IV únicos.
Nombres de archivos codificados con el modo de encadenamiento IV.
Los agujeros de archivo pasaron al texto cifrado.

Ahora deberá ingresar una contraseña para su sistema de archivos.
Tendrá que recordar esta contraseña, ya que hay absolutamente
Sin mecanismo de recuperación. Sin embargo, la contraseña se puede cambiar
más tarde usando encfsctl.

Nueva contraseña de encfs:
Verifique la contraseña de Encfs:

Ahora pongamos algo en /tmp/A y veamos cómo se ve todo:

$ echo “Esta es una prueba del sistema de transmisión de emergencia”> / tmp / A / rand1

$ ls -R / tmp / base
/ tmp / base:
cwKPj4hd79gsdCeEsb, dYMsy .encfs6.xml

$ ls -R / tmp / A
/ tmp / A:
rand1

Pero estoy un poco paranoico, así que crearé una segunda jerarquía cifrada en /tmp/A/B , para montar en /tmp/B :

$ encfs / tmp / A / B / tmp / B
El directorio “/ tmp / A / B /” no existe. ¿Debería ser creado? (y, n) y
El directorio “/ tmp / B” no existe. ¿Debería ser creado? (y, n) y
Creando nuevo volumen encriptado.
Elija una de las siguientes opciones:
ingrese “x” para el modo de configuración experto,
ingrese “p” para el modo de paranoia preconfigurado,
cualquier otra cosa, o una línea vacía seleccionará el modo estándar.
?> p

Configuración de paranoia seleccionada.

Configuración finalizada. El sistema de archivos a crear tiene
las siguientes propiedades:
Cifrado del sistema de archivos: “ssl / aes”, versión 3: 0: 2
Codificación de nombre de archivo: “nameio / block”, versión 4: 0: 2
Tamaño clave: 256 bits
Tamaño de bloque: 1024 bytes, incluido el encabezado MAC de 8 bytes
Cada archivo contiene un encabezado de 8 bytes con datos IV únicos.
Nombres de archivos codificados con el modo de encadenamiento IV.
Los datos del archivo IV están encadenados al nombre de archivo IV.
Los agujeros de archivo pasaron al texto cifrado.

——— ADVERTENCIA ———
La opción de encadenamiento de vector de inicialización externa ha sido
habilitado Esta opción deshabilita el uso de enlaces duros en el
sistema de archivos Sin enlaces duros, algunos programas pueden no funcionar.
Se sabe que los programas ‘mutt’ y ‘procmail’ fallan. por
Para obtener más información, consulte la lista de correo de encfs.
Si desea elegir otra configuración,
presione CTRL-C ahora para cancelar y comenzar de nuevo.

Ahora deberá ingresar una contraseña para su sistema de archivos.
Tendrá que recordar esta contraseña, ya que hay absolutamente
Sin mecanismo de recuperación. Sin embargo, la contraseña se puede cambiar
más tarde usando encfsctl.

Nueva contraseña de encfs:
Verifique la contraseña de Encfs:

Y ahora pongamos algo en /tmp/B :

$ echo “Es un mundo extraño en el que vivimos, ¿no?” > / tmp / B / rand2

$ ls -R / tmp / base
/ tmp / base:
cwKPj4hd79gsdCeEsb, dYMsy .encfs6.xml ep, Or7IxdM4hqHbICEPbBb8v /

/ tmp / base / ep, Or7IxdM4hqHbICEPbBb8v:
-5IolshveX8JMh2NvXweaLr, V3osklpG, o6EBPPVQkwjnz3lXazan4C-mN7hcjDRZEGEP,

$ ls -R / tmp / A
/ tmp / A:
B / rand1

/ tmp / A / B:
.encfs6.xml RPuE0n6lSDweW7L7yVN326Jj

$ ls -R / tmp / B
/ tmp / B:
rand2

Y solo para asegurarnos de que nuestros datos no se arruinaron:

$ cat / tmp / A / rand1
Esta es una prueba del sistema de transmisión de emergencia.

$ cat / tmp / B / rand2
Es un mundo extraño en el que vivimos, ¿no?

Ahora, cuando termine mi trabajo en /tmp/B :

$ fusermount -u / tmp / B

$ ls -R / tmp / B
/ tmp / B:


Una desventaja de EncFS debería ser obvia a partir de la salida de ls : cifra los nombres de ruta y los datos de archivo. Esto significa que tendría que montar todos los directorios cifrados “primarios” como requisito previo para montar su directorio de destino. (El uso de la herramienta encfsctl EncFS para codificar manualmente los nombres de ruta cifrados como una derivación a este requisito se deja como ejercicio para el lector).