EncFS (Español)

Esta traducción de
EncFS
fue revisada el
2020-08-06
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
Data-at-rest encryption (Español)
EncFS
es un sistema de archivos
criptográfico
apilable ejecutado en el espacio de usuario similar a
eCryptfs
, y tiene como objetivo asegurar los datos con las mínimas complicaciones. Utiliza
FUSE
para montar un directorio encriptado en otro directorio especificado por el usuario. No utiliza un sistema
loopback
como algunos otros sistemas comparables como
TrueCrypt
y
dm-crypt
.
Definitivamente EncFS es el software más simple si desea probar el cifrado de disco en Linux.
Esto tiene una serie de ventajas y desventajas en comparación con otros sistemas. En primer lugar, no requiere ningún privilegio de root para implementarlo; cualquier usuario puede crear un repositorio de archivos cifrados. En segundo lugar, no necesita crear un único archivo ni un sistema de archivos dentro de ese; funciona en el sistema de archivos existente sin modificaciones.
Sin embargo, esto implica algunas desventajas; debido a que los archivos cifrados no se almacenan en su propio archivo, alguien que tuviere acceso al sistema (a pesar del cifrado) podría ver la estructura de los directorios subyacentes, la cantidad de archivos, sus tamaños y cuándo se modificaron. Sin embargo, no podrían ver los contenidos.
Este método de asegurar los datos en particular, obviamente no es perfecto, pero hay situaciones en las que es útil.
Para obtener más detalles sobre EncFS en comparación con otras soluciones de cifrado de disco, consulte
Data-at-rest encryption (Español)#Cuadro comparativo
.
Comparación con eCryptFS
ECryptfs
se implementa en el espacio del kernel y, por lo tanto, es un poco más difícil de configurar. Con este método se deben recordar varias opciones de cifrado (algoritmo de cifrado usado, tipo de clave, etc.). No es el caso con EncFS, porque este almacena la información de metadatos de cifrado en un archivo de configuración por directorio (
.encfs6.xml
). Por lo tanto, no tiene que recordar nada (excepto la frase de contraseña).
El rendimiento de ambos depende del tipo de actividad del disco. Si bien eCryptFS puede funcionar más rápido en algunos casos porque hay menos sobrecarga por el contexto en el que opera (entre el kernel y el espacio de usuario). EncFS tiene ventajas en otros aspectos, porque los metadatos de cifrado están centralizados y no almacenados en los encabezados de los archivos individuales. Para obtener más información, el proyecto EncFS proporciona
ejemplos de referencia
.
Instalación
Instale
el paquete
encfs
.
Advertencia
Una
review
de  seguridad de
encfs
(febrero de 2014) descubrió una serie de problemas de seguridad en la versión estable 1.7.4 (junio de 2014). Tenga presente este informe y sus referencias para tener información actualizada antes de usar dicha versión.
Utilización
Para crear un repositorio seguro, escriba la orden siguiente:
$ encfs ~/.
cifrado
~/
original
Tenga en cuenta que se deben utilizar rutas absolutas. Esta orden vendrá seguida por un mensaje preguntándole sobre si desea optar por las opciones predeterminadas o por una configuración experta. La configuración predeterminada es bastante segura. La experta permite especificar algoritmos y otras opciones. Después de ingresar una clave para el cifrado, se creará y montará el sistema de archivos codificado. Los archivos codificados se almacenarán, en este ejemplo, en
~/.
cifrado
, y sus versiones no cifradas en
~/
original
.
Sugerencia
El uso de EncFS en un
sistema de archivos
FUSE, por ejemplo
NTFS-3G
, puede abocar a un rendimiento lento. En este caso, considere la posibilidad de cambiar el sistema de archivos.
Para desmontar el sistema de archivos, escriba:
$ fusermount -u ~/
nombre
Para volver a montar el sistema de archivos, emita la primera orden e ingrese la clave utilizada para codificarlo. Una vez ingresada la clave, el sistema de archivos se volverá a montar.
Cambiar la contraseña
Para cambiar la contraseña de un directorio cifrado por EncFS se puede usar la siguiente orden:
$ encfsctl passwd ~/.
nombre
En este ejemplo,
~/.
nombre
es la ruta al directorio que contiene los archivos codificados. El programa le pedirá su contraseña actual y luego podrá establecer una nueva.
Herramientas para facilitar el montaje
Gnome Encfs Manager
Gnome Encfs Manager
es un administrador y montador de encfs fácil de usar, con una configuración predefinida, con soporte para Gnome Keyring, con un menú de bandeja inspirado en Cryptkeeper pero usando la API AppIndicator y otras características propias.
Tiene disponible tanto el paquete
gnome-encfs-manager-bin
AUR
como el más actualizado
gnome-encfs-manager-bzr
AUR
.
Montar utilizando gnome-encfs
gnome-encfs integra las carpetas EncFS en el escritorio de GNOME, almacenando sus contraseñas en el depósito de claves y, opcionalmente, montándo dichas carpetas al iniciar sesión utilizando el mecanismo de inicio automático de GNOME.
Este método tiene la ventaja de que se puede montar y automatizar, y la contraseña no tiene que ser la misma que su contraseña de usuario.
Montar utilizando el icono CryptKeeper
Aplicación bastante simple, basta
instalar
cryptkeeper
AUR
y añadirla a su sesión X.
Montar utilizando encfsui
El script de bash
encfsui
proporciona una interfaz gráfica de usuario simple diseñada con
zenity
, creada en torno de la utilidad de línea de órdenes de EncFS, para montar y desmontar un directorio cifrado. Incluye un lanzador de escritorio. Instálelo con
encfsui
AUR
.
Montar con fstab
Añadir una entrada en
/etc/fstab
le permitirá montar el volumen encfs con un simple
mount /ruta/destino
y luego se le pedirá su contraseña.
/etc/fstab
encfs#/ruta/a/datos/encfs  /mnt/decrypted  fuse  noauto,user  0  0
La opción
noauto
evita el intento de montar el volumen en el arranque, lo que podría retrasar el proceso de arranque mientras el sistema espera que se ingrese una contraseña. Se puede omitir
user
si se quiere que solo el usuario
root
pueda montar el volumen.
Montar al iniciar sesión utilizando pam_encfs
Instale
pam_encfs
AUR
. Véase también:
https://wiki.edubuntu.org/EncryptedHomeFolder
https://code.google.com/p/pam-encfs/
Contraseña única
Advertencia
Tenga en cuenta que si va a usar la misma contraseña (por ejemplo: utilizando el parámetro try_first_pass o use_first_pass) para iniciar tanto sesión como encfs (para que encfs se monten durante su inicio de sesión), entonces debe usar
SHA password hashes
(preferiblemente SHA512 con gran cantidad de rondas) y (lo que es más importante)
contraseña segura
, porque el hash de su contraseña probablemente se almacene en forma no cifrada en el archivo
/etc/shadow
al que un atacante podría acceder con el fin de obtener su contraseña de encfs (porque es la misma que su contraseña de inicio de sesión normal de Unix).
/etc/pam.d/
Tenga en cuenta que cuando utilice el parámetro
try_first_pass
en
pam_unix.so
, deberá configurar EncFS para que use la misma contraseña que está utilizando para iniciar sesión (o viceversa) y bastará ingresar una única contraseña. Sin este parámetro, deberá ingresar dos contraseñas.
configurar pam_encfs para todos los métodos de inicio de sesión
Coloque la línea encfs en /etc/pam.d/system-login como sigue:
...
auth       sufficient pam_encfs.so
...
inicio de sesión
En esta sección se explica cómo hacer que encfs se monte automáticamente cuando inicie sesión con un terminal virtual.
Nota
Si solo desea usar encfs a través de
GDM
, puede saltarse esta sección e ir directamente a la
sección GDM
.
Edite el archivo
/etc/pam.d/login
:
#%PAM-1.0

auth		required	pam_securetty.so
auth		requisite	pam_nologin.so
auth		sufficient	pam_encfs.so
auth		required	pam_unix.so nullok try_first_pass
#auth		required	pam_unix.so nullok
auth		required	pam_tally.so onerr=succeed file=/var/log/faillog
# use this to lockout accounts for 10 minutes after 3 failed attempts
#auth		required	pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
account		required	pam_access.so
account		required	pam_time.so
account		required	pam_unix.so
#password	required	pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password	required	pam_unix.so md5 shadow use_authtok
session		required	pam_unix.so
session		required	pam_env.so
session		required	pam_motd.so
session		required	pam_limits.so
session		optional	pam_mail.so dir=/var/spool/mail standard
session		optional	pam_lastlog.so
session		optional	pam_loginuid.so
-session	optional	pam_ck_connector.so nox11
#Automatic unmount (optional):
#session	required	pam_encfs.so
Advertencia
Tenga en cuenta que el desmontaje automático se procesará incluso cuando exista otra sesión. Por ejemplo: cerrar sesión en la consola virtual puede desmontar encfs montada en una sesión GDM que aún esté activa.
gdm
Esta sección explica cómo hacer que encfs se monte automáticamente al iniciar sesión con GDM (GNOME Display Manager).
Nota
Para propósitos de depuración de errores, puede intentar primero el montaje automático con el inicio de sesión en una consola virtual.
Este artículo aborda el montaje automático en el inicio de sesión en una consola virtual
.
Edite el archivo
/etc/pam.d/gdm-password
.
Inserte (no sobrescriba) lo siguiente en la parte inferior de gdm-password:
#%PAM-1.0
auth            requisite       pam_nologin.so
auth            required        pam_env.so
auth            sufficient      pam_encfs.so
auth            required        pam_unix.so try_first_pass
auth            optional        pam_gnome_keyring.so
account         required        pam_unix.so
session         required        pam_limits.so
session         required        pam_unix.so
session         optional        pam_gnome_keyring.so auto_start
password        required        pam_unix.so
session         required        pam_encfs.so
Guarde y salga.
Configuración
Edite
/etc/security/pam_encfs.conf
:
Recomendado: comente la línea:
encfs_default --idle=1
Este indicador desmontará su carpeta cifrada después de 1 minuto de inactividad. No obstante, si la carpeta se ha montando automáticamente al iniciar sesión, probablemente deseará mantenerla montada durante el tiempo que esté conectado.
En la parte inferior, comente las entradas de demostración existentes y añada:
#USERNAME       SOURCE                                  TARGET PATH                 ENCFS Options           FUSE Options
foo             /home/foo/EncryptedFolder             /home/foo/DecryptedFolder       -v                    allow_other
Nota
No es posible montar múltiples carpetas EncFS al iniciar sesión usando
pam_encfs
. Si se especifican varias entradas en
/etc/security/pam_encfs.conf
, solo se montará la primera y el resto se ignorarán. Para montar múltiples carpetas EncFS al iniciar sesión es necesario usar
pam_mount
. Vea
#Montar al iniciar sesión utilizando pam_mount
para más detalles.
Además, si ve la línea de abajo, elimine
allow_root
de las opciones. De lo contrario, entrará en conflicto con
allow_other
definido anteriormente.
fuse_default allow_root,nonempty
A continuación, edite
/etc/fuse.conf
y descomente:
user_allow_other
Para probar su configuración, abra una nueva terminal virtual (por ejemplo con
Ctrl+Alt+F4
) e inicie sesión. Debería comprobar que pam monta con éxito su carpeta EncFS.
Montar al iniciar sesión utilizando pam_mount
Instale y configure
pam_mount
como se explica en su página wiki. Los montajes de EncFS se pueden especificar en el archivo de configuración de pam_mount de la siguiente manera:
/etc/security/pam_mount.conf.xml
<volume fstype="fuse" path="encfs#
/ruta/a/datos/cifrados/con/encfs
" mountpoint="
/ruta/a/puntodemontaje/de/datos/descifrados
" options="nonempty" />
Los montajes de EncFS deben tener la misma contraseña que su cuenta de usuario. La opción
nonempty
hace posible montar el sistema de archivos cifrados incluso cuando el punto de montaje no está vacío. Puede eliminar esta opción si este no es el comportamiento deseado.
Es posible montar múltiples carpetas EncFS al iniciar sesión especificando múltiples entradas
<volume>
consecutivas en el archivo de configuración.
Montar cuando se inserta una unidad USB con carpetas EncFS utilizando fsniper
Este es un método simple para montar automáticamente encfs (solicitando contraseña) cuando se inserta una unidad USB con una o más carpetas cifradas con EncFS en su raíz. Usaremos
fsniper
AUR
(sistema de archivos que explora utilizando el demonio inotify) y
git
(para pedir contraseñas binarias).
Para conocer más, consulte
https://github.com/Harvie/Programs/tree/master/bash/encfs/automount
(última versión de los archivos utilizados en
#Cómo hacerlo
).
Cómo hacerlo
1.
Necesitará un montaje automático de USB que funcione para esto, como lo hace Thunar o Gnome Files.
2.
Cree una carpeta cifrada en su unidad extraible, por ejemplo:
encfs /media/USB/somename /media/USB/somename.plain
(y ​​luego desmonte todo).
3.
Cree un archivo en su unidad local
~/.config/fsniper/config
:
watch {
	/etc/ {
		mtab {
			# %% is replaced with the filename of the new file
			handler = encfs-automount.sh %%;
		}
	}
}
4.
Instale el script de ayuda:
#!/bin/sh
#	~/.config/fsniper/scripts/encfs-automount.sh
# Quick & dirty script for automounting EncFS USB drives
# TODO:
#  - Unmounting!!!
#
ASKPASS="/usr/lib/git-core/git-gui--askpass"

lock=/tmp/fsniper_encfs.lock
lpid=$(cat "$lock" 2>/dev/null) &&
ps "$lpid" | grep "$lpid" >/dev/null && {
	echo "Another instance of fsniper_encfs is running"
	exit;
}
echo $BASHPID > "$lock";
sleep 2;

echo
echo ==== EncFS automount script for fsniper ====

list_mounts() {
	cat /proc/mounts | cut -d ' ' -f 2
}

list_mounts | while read mount; do
	config="$mount"'/*/.encfs*';
	echo Looking for "$config"
	config="$(echo $config)"
	[ -r "$config" ] && {
		cyphertext="$(dirname "$config")";
		plaintext="$cyphertext".plain
		echo Found config: "$config";
		echo Trying to mount: "$cyphertext to $plaintext";
		list_mounts | grep "$plaintext" >/dev/null && {
			echo Already mounted: "$plaintext"
		} || {
			echo Will mount "$cyphertext to $plaintext"
			"$ASKPASS" "EncFS $cyphertext to $plaintext" | encfs --stdinpass "$cyphertext" "$plaintext"
		}
	}
done
echo

rm "$lock" 2>/dev/null
5.
Asegúrese de que /usr/lib/git-core/git-gui--askpass funciona (es por eso que necesita el paquete git, aunque también podría reajustar el script de ayuda).
6.
Pruebe
fsniper --log-to-stdout
en la terminal (la petición de contraseña debe aparecer cuando se inserte la unidad USB).
7.
Agregue
fsniper --daemon
a su sesión.
8.
No olvide desmontar encfs antes de quitar la unidad extraible.
Copia de seguridad cifrada
Advertencia
Si se siguen los siguientes ejemplos para separar el archivo de opciones de cifrado de los datos, evidentemente también debe asegurarse de tener una copia de seguridad separada del archivo de opciones en texto sin formato. Si su disco se bloquea y no ha hecho una copia de seguridad del texto sin formato, la copia de seguridad por sí sola no ayudará en nada porque el archivo contiene metadatos criptográficos. Lo bueno es que el archivo es estático, no necesita repetir la copia de seguridad una y otra vez a menos que cambie la contraseña.
Copia de seguridad del directorio cifrado
Se puede hacer una copia de seguridad de un directorio cifrado y restaurarlo en otra ubicación. Esto es posible porque el archivo de configuración con las opciones de cifrado/metadatos se almacena en el propio directorio en texto sin formato en el archivo oculto
.encfs6.xml
. Esto no compromete la seguridad, porque la contraseña no está en él.
Sin embargo, si, por ejemplo, almacena la copia de seguridad en una ubicación remota (por ejemplo, en la nube) o en un dispositivo portátil, puede sentirse incómodo al respecto. En este caso, tampoco es un problema mover manualmente el archivo oculto fuera del directorio antes de crear la copia de seguridad. Incluso puede moverlo permanentemente y aún montar y acceder a los archivos cifrados, si pasa su ubicación a
encfs
a través de la variable de entorno
ENCFS6_CONFIG
. Para el ejemplo anterior dado en
#Utilización
:
$ mv ~/.nombre/.encfs6.xml ~/.
$ ENCFS6_CONFIG=~/.encfs6.xml encfs ~/.nombre ~/nombre
Copia de seguridad del directorio de texto sin formato
El siguiente ejemplo supone que desea crear una copia de seguridad cifrada del directorio de texto sin formato existente
~/mythesis
que contiene el archivo
thesis.txt
.
Primero, creamos la copia de seguridad cifrada del directorio de texto sin formato existente:
$ encfs --reverse ~/mythesis /tmp/thesisbackup
Tenga en cuenta que en este caso el orden del directorio se invierte respecto al uso normal. El uso de la opción
--reverse
tiene dos efectos: en primer lugar, el archivo de configuración ahora se almacena en el directorio de texto sin formato y
/tmp/thesisbackup
solo lo contiene en forma cifrada. En segundo lugar, los archivos en
/tmp/thesisbackup
no son persistentes. Se eliminarán una vez que se desmonte (no, esto no se debe al uso del punto de montaje en
/tmp
).
En segundo lugar, ahora es el momento de copiar los archivos cifrados en la ubicación deseada
antes
de desmontar nuevamente el directorio temporal
encfs
:
$ cp -R /tmp/thesisbackup/* /mnt/usbstick/
$ fusermount -u /tmp/thesisbackup
y hecho.
Para restaurar (o ver) la copia de seguridad, necesitamos acceso a las opciones de cifrado en texto sin formato, que debe pasarse a
encfs
con la variable de entorno
ENCFS6_CONFIG
(utilizamos un directorio diferente para no estropear el archivo
~/mythesis
existente):
$ ENCFS6_CONFIG=~/mythesis/.encfs6.xml encfs ~/mnt/usbstick/thesisbackup ~/restoremythesis
Si ahora lista el contenido restaurado, contendrá dos archivos:
$ ls -la ~/restoremythesis
... 
-rw-r--r--  1 student student    1078  3. Jan 12:33 .encfs6.xml
-rw-r--r--  1 student student      42  3. Jan 12:33 thesis.txt
...
Véase también
EncFS
- página de inicio del proyecto.
Auditoría de seguridad
de EncFS por Taylor Hornby (14 de enero de 2014).