| Kriptópolis alojado en |
| Zilos-Veloxia Network |
| Tu mejor defensa: |
| Bufet Almeida |
EncFS: cifrado fácil de ficheros en Linux
Por José Manuel Gómez
Un artículo de Linux.com me recordó hoy EncFS (Encrypted Filesystem), una interesante utilidad de la que en Kriptópolis sólo hicimos la presentación, y de eso hace ya algún tiempo.
EncFS no trata de crear un dispositivo cifrado de bloque, sino que crea un sistema cifrado de ficheros en el espacio de usuario. No se trata pues de crear un contenedor cifrado cuyo tamaño se fija en el momento de su creación, sino de algo bastante más cómodo y dinámico, que permite ahorrar mucho espacio de disco y se adapta mejor al cifrado de pequeños proyectos, facilitando además que los ficheros cifrados se incorporen a cualquier backup.
Supongamos, por ejemplo, que queremos crear un fichero de texto llamado "secreto" donde guardar una serie de datos y queremos -por supuesto- guardarlo cifrado. En base a este ejemplo sencillo veremos a continuación cómo utilizar EncFS...
Lo primero es obtener EncFS y satisfacer sus dependencias: OpenSSL, rlog y FUSE. No sé otras distribuciones, pero los usuarios de Debian y derivados (como Ubuntu) parece que lo tienen fácil. En Arch tuve que construir los paquetes correspondientes con ABS antes de poder instalarlos con pacman (aviso que esto puede sonar más complicado de lo que en realidad es).
Una vez instalado EncFS, comprueba si tienes cargado el módulo fuse (lsmod) y si no cárgalo ahora con modprobe fuse.
Sitúate en tu directorio personal y crea dos directorios, uno para los ficheros visibles (p.ej. temp) y otro para los mismos pero cifrados (temp-cif, p.ej)
$ cd
$ mkdir temp
$ mkdir temp-cif
Llama a encfs:
$ encfs ~/temp-cif ~/temp
Creando nuevo volumen cifrado.
Por favor, elige una de las siguientes opciones:
pulsa "x" para modo experto de configuracion,
pulsa "p" para modo paranoia pre-configurado,
cualquier otra, o una linea vacia elegira el modo estandar.
?>
Seleccionada configuración Estándar.
Configuración finalizada. El sistema de ficheros a ser creado tiene
las siguientes propiedades:
Cifrado del sistema de ficheros: "ssl/blowfish", versión 2:1:1
Codificacion del nombre de fichero: "nameio/block", versión 3:0:1
Tamaño de la llave: 160 bytes
Tamaño de Bloque: 512 bytes
Cada fichero contiene una cabecera de 8 bytes con datos IV únicos.
Nombres de fichero encodeados usando el modo IV de encadenamiento.
Ahora tendrás que introducir una contraseña para tu sistema de ficheros.
Necesitaras recordar esta contraseña, dado que no hay absolutamente
ningún mecanismo de recuperación. Sin embargo, la contraseña puede ser cambiada
más tarde usando encfsctl.
Nueva contraseña Encfs: **********
Verifique la contraseña Encfs: **********
Procedemos a crear nuestro fichero secreto:
$ cd temp
$ vi secreto
Tras finalizar la edición y cerrarlo, podemos comprobar que está ahí:
$ ls -la ~/temp
total 13
drwxr-xr-x 2 turing users 104 2006-06-26 16:51 .
drwx--x--x 90 turing users 9552 2006-06-26 16:51 ..
-rw-r--r-- 1 turing users 36 2006-06-26 16:51 secreto
Y comprobamos cómo también disponemos de su versión cifrada en la carpeta correspondiente:
$ ls -la ~/temp-cif
drwxr-xr-x 2 turing users 104 2006-06-26 16:51 .
drwx--x--x 90 turing users 9552 2006-06-26 16:51 ..
-rw-r----- 1 turing users 224 2006-06-26 16:49 .encfs5
-rw-r--r-- 1 turing users 44 2006-06-26 16:51 AuxHwBrtv2if9-
Desde luego no nos interesa que se siga pudiendo acceder a la versión en claro. Para ello desmontamos el sistema de ficheros donde reside:
$ fusermount -u ~/temp
Efectivamente ha funcionado. El fichero secreto (legible) ya no aparece:
$ ls -la ~/temp
total 9
drwxr-xr-x 2 turing users 48 2006-06-26 16:47 .
drwx--x--x 90 turing users 9552 2006-06-26 16:51 ..
Sin embargo sí que sigue apareciendo el correspondiente fichero cifrado:
$ ls -la ~/temp-cif
drwxr-xr-x 2 turing users 104 2006-06-26 16:51 .
drwx--x--x 90 turing users 9552 2006-06-26 16:51 ..
-rw-r----- 1 turing users 224 2006-06-26 16:49 .encfs5
-rw-r--r-- 1 turing users 44 2006-06-26 16:51 AuxHwBrtv2if9-
Supongamos ahora que queremos volver a trabajar con nuestro fichero secreto en claro (para editarlo y añadir nuevos datos, por ejemplo). Para ello volvemos a montar el sistema con el mismo comando con que lo creamos, pero ahora detectará que el sistema ya existe y sólo nos pedirá la contraseña:
$ encfs ~/temp-cif ~/temp
Contraseña EncFS: **********
$
Lógicamente existen muchas más opciones que facilitan y afinan el trabajo con EncFS y puede accederse a ellas mediante man encfs.
También aporta información interesante el comando man encfsctl, ya que encfsctl es la herramienta que permite administrar los sistemas de ficheros cifrados con EncFS; entre otras cosas permite cambiar la contraseña y mostrar información básica sobre el volumen cifrado.




Interesante
Me parece que lo voy a probar cuando tenga algo que deba ser cifrado.
Realmente bueno y sencillo, y ocupa solo lo necesario
Hola Jose Manuel buen articulo, hace tiempo que no leia nada tuyo, pero volvere a empezar a leerlos, como en aquellos tiempos de 2001.
Un saludo Sagaru.
Problema con usuarios normales
Tengo un problema, con los usuarios normales, ya que con root funciona correctamente.
al lanzar el comando:
encfs ~/temp-cif ~/temp
Me da el error:
fuse: failed to exec fusermount: Permiso denegado
fuse ha fallado. Problemas habituales:
- el modulo del kernel no esta instalado (modprobe fuse)
- opciones invalidas -- ver opciones.
ruben@adelin:~$ modprobe fuse
-bash: modprobe: command not found
Las carpetas las he creado con el usuario.
Veo que tu lo haces con un usuario, pero a mi me da este error.
¿Seguro e Intercambiable?
¿Y cómo funciona? ¿Esteganografía, o criptografía? Si se borrara la carpeta del programa (o se envía por correo o USB) y conociendo la contraseña, ¿es accesible?
Opinar