Manten tus datos seguros con EncFS y CryptKeeper

EncFS, como se puede deducir del nombre, es el EncryptedFileSystem, una utilidad que nos permitirá crear y utilizar directorios encriptados.

He visto que lo habían tratado en varios sitios, como los artículos de los que me he nutrido para hacer éste mini-howto: éste de Kriptópolis y éste otro del blog de Rodolfo Pilas, dos sitios que me han venido muy bien. El de kriptópolis me hizo romperme un poco la cabeza porque como está hecho basándose en Arch Linux me supongo que lo probaron todo como root y no tenía el jaleo de permisos que tiene Ubuntu. El de Rodolfo Pilas creo que ésta hecho sobre Ubuntu (una Dapper creo) pero había ciertos problemillas que tuve yo y que él no comenta, así que me he dedicidido a hacer éste mini-tutorial basado en Ubuntu Feisty Fawn para todos aquellos que necesiten algo parecido y además he añadido una aplicación que hace mucho más cómodo es uso diario de EncFS desde gnome.

Empecemos con el tema:

1.- Instalación.

Igual que cualquier otro paquete ya que lo tenemos en los repositorios:

sudo aptitude install encfs

2.- Creación de directorios.

Yo lo he organizado todo un poco dentro de un subdirectorio en mi carpeta home, de forma que hecho un direcotiro oculto llamado “.sensible” y dentro de él otros dos “encrypted” y “.clear” de forma que en el primero se guardarán los datos encriptados y en el segundo será en el que se monten los datos encriptados, en claro, para poder trabajar con ellos. Supongo que todos controláis el mkdir así que no os pondré los comandos necesarios😛

3.- El módulo del kernel.

El kernel de Ubuntu (al menos el de Feisty Fawn y creo que el anterior también) ya traen el módulo fuse, necesario para que funcione EncFS, listo para montarlo, así que lo cargamos así:

modprobe fuse

Si queremos comprobar que se ha cargado correctamente deberíamos poder verlo con el siguiente comando:

lsmod | grep fuse

4.- Permisos de nuestro usuario.

Aquí tuve un pequeño dolor de cabeza. Es necesario para poder montar los datos encriptados que nuestro usuario pertenezca al grupo de usuarios fuse, tranquilos, el grupo se ha creado ya con los pasos anteriores. El usuario lo podéis añadir con el siguiente comando:

sudo usermod -a -G fuse vuestro_nombre_de_usuario

O si preferís utilizar un entorno gráfico desde Menú de gnome > Sistema > Administración > Usuarios y Grupos. Cualquiera de las dos opciones es perfectamente válida. El quebradero de cabeza que tuve fué que a mi no me dió los permisos de dicho grupo, para montar los datos, hasta que reinicié el equipo. Y no, no me valió con salir y volver a logearme, tuve que reiniciar del todo el equipo.

5.- Uso de EncFS.

Ya tenemos todo listo, ahora vamos a ver el comando básico del uso de EncFS. Por un lado podríamos montar los datos con un mount de toda la vida especificando el tipo de sistema de fichero fuse y desmontarlo con umount. ¿por qué no vamos a hacerlo así? Porque eso nos requeriría utilizar permisos de administrador y queremos poder usarlo como nuestro usuario sin tener que meter más contraseñas que la del volumen encriptado que queremos utilizar. Así que vamos a usar el siguiente comando:

encfs /home/usuario/dir_encriptado /home/usuario/dir_de_trabajo

Como podéis ver he puesto la ruta completa aunque me encontrar en el directorio /home/usuario, lo he hecho porque encfs necesita que le paséis las rutas completas a los directorios con las que tiene que trabajar obligatoriamente. Si es la primera vez que usáis esas carpetas os pedirá la configuración, os aparecerán dos opciones: pulsar x: modo experto, os dejará elegir el tipo de encriptación que queréis, etc… pulsar p: modo paranoico automático: es el que yo he usado, elige un modo de cifrado predefinido por defecto en la aplicación, os pedirá la contraseña que queréis ponerle al volumen encriptado y listo.

Si todo ha ido bien, ahora tendréis en el directorio_de_trabajo un directorio vacio y en directorio_encriptado un archivo .algo que es el que almacena la información de encriptación. Si creais un archivo en el directorio_de_trabajo veréis como aparece también un fichero con un nombre bastante extraño en el directorio_encriptado, es el mismo fichero, pero fuera de miradas indiscretas😀

Para desmontarlo usaremos el siguiente comando:

fusermount -u /home/usuario/directorio_de_trabajo

Y veremos como en el directorio_de_trabajo no queda nada, pero si en el directorio_encriptado en el que aparecen los datos de forma no legible sin la contraseña. En el siguiente punto haremos todo ésto un poco más cómodo mediante el uso de un interfaz gráfico.

6.- Cómodo uso en gnome

Usarlo siempre desde la línea de comandos es un poco incómodo, y crearse un script para lanzarlo desde el panel de gnome nos haría tener un script para cada directorio encriptado o que nos pidiese elegir el directorio que queremos montar en ese momento.

Por suerte para los vagos como yo, existe la aplicación Crypkeeper, actualemente en su versión 0.7.666 (un poco satánico ya lo sé… xD) y que nos va a ser de gran ayuda. No está en los repositorios, todavía, pero si el paquete para ubuntu en getDeb, os dejo el link de descarga. Para instalarlo:

sudo dpkg –install fichero.deb

Ya lo tendremos en el menu de gnome > Herramientas del Sistema > Cryptkeeper, una vez arrancado aparece un candado en el tray del sistema, ahí es donde podemos configurar los directorios encriptados que tengamos listos. Con el botón derecho nos dejará elegir del gestor de ficheros que queremos usar (por defecto nautilus) y con el botón izquierdo nos muestra las funcionalidades:

Imported folders: debajo de ésto aparecerán la lista de los directorios encriptados que hemos configurado (siguiente función), con hacer click en uno, se monta (pidiéndonos la clave) y se desmonta en caso de estar montado.

Import EncFS folder: nos deja indicarle un directorio ya encriptado con EncFS y lo añade a la lista anterior.

New encrypted floder: nos deja crear un directorio nuevo y él se encargará de pedirnos que clave le queremos poner. (ésto no lo he probado, supongo que funciona así, si alguien ve alguna diferencia que me deje un comentario :D)

Friki-Consejo: si queréis que sea cómodo de verdad, añadid cryptkeeper al incio de sesiones para que se arranque al inciar sesión. menu de gnome >Sistema > Preferencias > Sesiones.

7.- Conclusiones.

Me parece una herramienta en una perfecta relación seguridad/sencillez. Está claro que no puedes depender de ella para mantener seguros unos datos de los que dependa tu vida, pero para cosas sencillas me parece estupenda. Ya ningún “colega” más al que le deje usar el ordenador me mangará las prácticas de la universidad jejeje…

Probadlo, y si os gusta dejadme un comentario! Valoro muy mucho las críticas que me ayuden a hacer mejores tutoriales😀

    • Rafa
    • 2/10/07

    Bien, creo que tendré que conformarme con esto de momento. Estaba buscando algo como “File and Folder protector” o similares que hay para windows, en donde es posible prohibir el acceso a cualquier carpeta o archivo ya existente. Lo único que he encontrado para Linux son truecrypt y encFS, que no es exactamente lo que buscaba.
    Gracias por el tutorial.

  1. Si usas éste, una vez instalado el interfaz gráfico (cryptkeeper), funciona más o menos igual creo yo, le das a utilizar una carpeta y si está encriptada te pregunta el password y listo.

    No sé muy bien como funcionan los otros (he probado alguno que otro, pero nunca me he metido a fondo), pero éste es bastante sencillo una vez tienes todo instalado.

  2. xDDD un pingback propio al citar otro post! xDDD eso como se llama? loopback? xDD

    • Anónimo
    • 24/05/08

    pero una vez que tengo funcionando el cifrado como accesso a los datos encriptados

  3. Si ejecutas el Cryptkeeper, veras que aparece al lado del reloj (en el systray) un icono con un candado, dándole ahí puedes elegir el sistema cifrado que quieres montar. Te pedirá la clave y lo montará y te lo mostrará directamente.

    De todas formas, eso viene explicado en el post, en los puntos 5 y 6.

    Para Rafa, el del primer comentario, lo que buscas creo que es lo que trae Ubuntu 8.04, un plugin para nautilus que haciendo click con el botón derecho en un fichero te muestra una opción de “Cifrar…”. Lo que no te puedo decir es el paquete en cuestión, porque venía instalado por defecto y en los repositorios no veo nada que me suene a “cifrado”. Posiblemente le dedique un post un día de éstos porque su uso es centralizado y no tan elemental como esas aplicaciones que comentas (que no las he usado, pero me supongo como son :P)

  4. $columns[4]

    • Rigo Vega
    • 31/01/09

    muy buena aplicacion, al menos hasta el momento me ha parecido buena, pero tengo un par de dudas, la primera, si cuando salgala nueva version de ubuntu se me da por instalarla desde cero (claro teniendo mi carpeta /home/usuario separada para no perder los datos) qeu pasara con la carpeta encriptada? ¿al instalar nuevamente crypkeeper me aparecera ya encriptada la carpeta o esta desaparecera, dejara de estar encriptada habra que configurarla nuevamente?
    la segunda, ahora que ya lo tengo funcionando, como hago para dejar de encriptar permenentemente una carpeta?

    Saludos,

    • Anonimo
    • 14/10/09

    Muy bueno, pero que tal si hablamos un poco de algo que sea multiplataforma?

    TrueCrypt es multiplataforma, pero adolece de un problemita muy serio: Sólo maneja volúmenes de tamaño fijo!!!

    Me explico: No permite hacer crecer o decrecer el contenedor.

    A parte si realmente deseamos multiplataforma, nos veremos obligados a usar como partición FAT32 o NTFS, las EXT3 no van en Windows.

    No me refiero a que en Windows no se pueda montar una particion EXT3 (yo tengo mis MemoriasUSB en EXT3 y las uso tanto en Linux como en Windows, tanto en lectura como en escritura); me refiero a que si el volumen TrueCrypt le damos formato EXT3, en Linux no hay problemas, pero en Windows no hay modo de montarla y eso ocurre porque TrueCrypt no emula todo lo que debería, en concreto no crea una nueva unidad de disco, por lo que Ext2Mgr no puede ver la particion Ext3 y por tanto Windows tampoco.

    De todos modos no es la solución que se busca (o al menos en mi caso).

    EncFS tampoco es lo que busco pero podría valer, aunque adolece de algo muy serio: Dos carpetas! puaj que asco! Es que no sabe montar la desencriptada sobre el mismo punto de montaje que la no encriptada!!

    Me explico: en Linux es muy fácil montar un sistema en un directorio no vacío, un simple mount lo hace; pero lo que ocurre es que se piede acceso a lo que hubiera en dicho directorio hasta que se desmonte.

    No recuerdo cómo se llamaba una aplicación que ví en su día, pero era capaz de recordar el punto de anclaje; era una aplicación para bloquear el acceso a determinadas carpetas, montando sobre ellas un sistema…

    En otras palabras, lo que hacía era:
    -Montar sobre una carpeta otra carpeta de otro sitio, de forma similar a convertir la carpeta en un enlace
    -Cualquier acceso posterior a dicha carpeta no permitía alterar el contenido que allí había antes.
    -La propia aplicación creaba en otro sitio una carpeta de sólo lectura, desde la cual se podía acceder a los datos

    De forma que sólo los usuarios con la contraseña podían ver y/o alterar el contenido de una carpeta, presentándose a los demás esa carpeta como si un enlace se tratase.

    No requería escribir nada para hacer su trabajo (funcionaba incluso con carpetas de CDs donde es imposible escribir).

    Realmente estaría muy bien que EncFS usase algo parecido, y no nos obligue a tener dos carpetas…

    Si por un error borras o cambias el nombre de algún archivo en la encriptada, de la que no está encriptada desaparece, puaj!

    Y qué pasa con el tema de multiplataforma? Como se accede a esos datos desde un PC con Windows (por poner un ejemplo muy odioso).

    En definitiva: Un buen sistema de encriptación de carpetas debe ser transparente (no obligarnos a acceder desde otra ruta), cuando esté montado no permitir ver la información en su estado encriptado o al menos dar esa opción para evitar accidentes como manejar ambas partes, encriptada y no encriptada simultaneamente. Y además debe ser multiplataforma, para poder recuperar los datos en casos de desastre total…

    Esiste realmente algo de este estilo? Estaría muy interesado en el tema.

    Como digo EncFS casi se adecua a lo que busco, pero le falta poder ocultar/proteger la carpeta con los datos ya encriptados mientras esté montada, de forma que sólo los datos en claro puedan ser mostrados.

    TrueCrypt por contra es ideal para discos duros USB o memorias USB, pero adolece de que en Windows no permite que la partición tenga un formato diferente de FAT32 o NTFS, mientras que en Linux puede ser cualquiera, incluso EXT3 y EXT4; por lo que no es totalmente multiplataforma.

    Nota – Ejemplo de desastre usando EncFS:
    -Creamos ~/encriptada
    -Creamos ~/.ContenidoRealmenteEscritoEnDisco
    -Montamos con EncFS ~/.ContenidoRealmenteEscritoEnDisco sobre ~/encriptada
    -De esta forma lo que esté en ~/encriptada se verá como no encriptado, mientras que lo que esté en ~/.ContenidoRealmenteEscritoEnDisco estará encriptado
    -Arrggg!!! hacemos por error un rm -R ~/.ContenidoRealmenteEscritoEnDisco/.*.xml

    Resultado: Hemos perdido todo, la clave está almacenada en un xml

    Lo mismo ocurre si por cualquier motivo se altera algo de ~/.ContenidoRealmenteEscritoEnDisco/
    Simplemente renombrar un directorio hará que en ~/encriptada desaparezca y por tanto se pierdan sus datos

    Arrrrgggg!!! Peligroso…. y nada fiable!!!

    Como mínimo que sea de sólo lectura la ruta ~/.ContenidoRealmenteEscritoEnDisco/
    Lo mejor, que ni siquiera fuera necesaria…

    En otras palabras: Mientras esté montado el sistema EncFS que los datos reales que están en el disco o que se graban a él (los que realmente están encriptados) no sean accesibles; si no está montado obviamente lo que se verá es lo encriptado.

    El que se pueda ver lo encriptado mientras está montado no es nada saludable… Un simple script que estemos creando y probando puede mandarnos al traste toda la información… Arrrrggg! simplemente por renombrar carpetas!

    Espero esto se solucione en breve! Pues es bastante rápido en su trabajo, aunque el algoritmo que usa para encriptar no es en absoluto inviolable… Por favor claves más largas…

    Yo para encriptar mis datos más importantes uso un algoritmo que yop mismo me he programado (basado en un simple XOR), pero con claves de varios GigaBytes,… de forma que la longitud de la clave siempre es mayor que la de los datos a protejer, luego uso dicha clave con permutaciones basadas en una frase de paso de al menos un MegaByte de largo… De forma que matemáticamente es demostrable que el coste de generar las 2 elevado a la longitud de los datos es mucho menor que el probar a fuerza bruta, por lo que cualquier combinación posible de la misma longitud que los datos encriptados es válida como candidata a ser los datos desencriptados, por lo que como digo el algoritmo es totalmente seguro incluso ante fuerza bruta independientemente de que se disponga de todos los recursos que se quieran (núcleos de proceso, ram, etc) e independientemente del tiempo que se desee invertir (miles de millones de veces toda la vida del universo), al final se llega siempre a lo mismo: todas las posibles combinaciones de bits son posibles si no se conocen las dos claves, de forma que la probabilidad de acertar es de 1/2^8*LongitudDatosEnBytes. Esto implica que no hay forma de atacar al algoritmo, es muchísimo más eficiente jugar a la lotería.
    Pondré un ejemplo sencillo: Encriptar una memoria USB de 4GB -> 4GB=4294967296bytes -> 34359738368bits => Lo que implica que la clave será igual o mayor y por tanto la cantidad de posibles claves diferentes de entre las cuales sólo una es válida es: (uso una clave de 8GB -> 68719476736 claves diferentes, por lo que acertar con la buena tiene una probabilidad de 1.4551915228366851806640625e-11, pero acertar con los datos en claro tendría una probabilidad de 2.910383045673370361328125e-11, justo el doble… para que intentar averiguar la clave? cuesta la mitad intentar adivinar los datos en claro.
    La probabilidad de que te toque todo el gordo de navidad es de aproximadamente 1E-8, mucho mayor…

    Longitud de clave igual a longitud de datos => Matematicamente Indescifrable.

    ¿Poqué se usan claves de 128bits? Si los algoritmos ya están rotos para claves de 4095bits!!!

      • Anónimo
      • 30/03/16

      Dicho de otro modo podemos usar un pendrive de clave superlarga generada aleatoriamente. Me gusto mucho tu idea. Lo que mi pregunta es no se podria usar una clave mas corta para encryptar el rostro la mano la huella dactilar de uno para generar dicha clave.

    • Anonimo
    • 14/10/09

    Uff! que largo me salió, todo para pedir que EncFS no requiera de dos carpetas y se pueda usar en Windows!

    O dicho de otro modo que desde Windows se pueda acceder a los datos de una carpeta encriptada con EncFS residente en una memoria USB.

    Me parece muy bueno en EncFS aunque adolezca de ciertas deficiencias, longitud de clave, que la clave se almacene dentro de un XML accesible… y lo de las dos carpetas no lo hace 100% transparente.

    Pena no sea multiplataforma.

  5. Hi! I know this is kind of off topic but I was wondering if you knew where I
    could find a captcha plugin for my comment form?
    I’m using the same blog platform as yours and I’m having trouble finding one?
    Thanks a lot!

  6. I don’t know if it’s just me or if everybody else encountering issues with your
    site. It appears as if some of the text on your content are running off the screen.
    Can someone else please provide feedback and let me know
    if this is happening to them too? This may be a problem with my browser because I’ve had this happen previously. Appreciate it

  7. WOW just what I was looking for. Came here by searching for sushi zushi nutritional info

  1. 9/11/07

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: