07 – EncFS

Bienvenidos a este séptimo episodio de deployando.me, el podcast de tecnología para sysadmins y devops. Soy Rodolfo Pilas y estoy grabando el 13 de diciembre de 2016.

Quiero compartir con Ustedes algunos cambios que les serán bastante evidentes en este podcast, a los que nos han seguido
episodio tras episodio.  En primer lugar, esta semana me ha tocado estar trabajando en la ciudad de Buenos Aires y me di cuenta que no iba a ser posible para mi conseguir un lugar con relativo silencio como para grabar, así que me dije a mi mismo ¿por qué no ir a un lugar lindo y grabo desde ahí con todo el ruido que haya?  y así estamos en un Starbucks de la calle Florida, disfrutando un rico té helado y grabando este episodio.

A su vez, también estuve hablando con  Juan Priario, que en twitter es @jpstudio1, conversando sobre la fluidez del podcast o cómo hablaba el tema y, bueno, quiénes hayan seguido episodio tras episodio notarán un cambio: este podcast lo estoy haciendo así, a medida que va saliendo y eso va a ser lo que va a quedar.

Me ha pasado de tener que manejar archivos con datos bastante confidenciales y desempeñarme en ambientes donde es imposible que la información se filtre o sería muy malo que eso pasara. Generalmente cuando uno hace una investigación o una auditoría, en el proceso de recopilación de datos, no se tienen las conclusiones y si los datos son sacados de contexto los daños pueden ser importantes o se puede tener algo que no es lo deseado antes de tener las conclusiones definitivas del informe que se presenta.

En esas condiciones, cada vez que doy guardar un archivo al disco pienso qué pasará con esos datos cuando me vaya a descansar o cuándo no tenga control del computador en el que estoy trabajando.

No se si a Ustedes les ha pasado tener que manejar archivos confidenciales o datos que realmente requieran confidencialidad. ¿suelen tomar alguna precaución?

En este episodio les voy a hablar de EncFS, una forma para que todo lo que guardes o tengas en una determinada carpeta quede automáticamente cifrado y no pueda ser visto por nadie más (a menos que tenga la clave).

A la hora de guardar información o archivos digitales confidenciales, sin dudas tenemos un grupo importante de opciones:

Lo más simple que podemos hacer es poner una clave a un archivo ZIP, o poner una clave en el procesador de texto cuando guardo el archivo. O podría inspirarme un poco más y hacer un cifrado asimétrico con mi clave personal GPG.

También puedo optar por un contenedor cifrado, hay software que arma un archivo cifrado que luego se presenta en una carpeta o como una unidad y lo pongo en un pendrives y todo toque guarde allí va a quedar cifrado.

Pero hoy hablaré de ENCFS, que cifra una carpeta y la presenta en el filesystem exclusivamente para que el usuario que tiene la clave de cifrado, transparentemente y los archivos se pueden acceder como cualquier carpeta.

EncFS osuna utilidad que se puede instalar tanto en sistemas Linux y yo en particular también lo uso en MacOS.

La idea es que una vez instalado creo una carpeta que va estar cifrada y creo una carpeta que va a estar vacía

$ mkdir carpeta_cifrada carpeta_vacia

y con el comando

$ encfs carpeta_cifrada carpeta_vacia

se inicializa mi sistema cifrado.

Ese volumen cifrado se puede hacer en base a tres opciones: el modo estándar que simplemente me va a pedir la contraseña o mi passphrase y lo va a cifrar; un modo para expertos donde va a preguntar el algoritmo que quiero, en grado de encripción quiero, etc.; o voy a tener un modo preconfigurado paranoico, como le llama EncFS mismo.

La idea es que cada vez que quiera volver a montar esa carpeta cifrada para accederla, me va a volver a pedir la contraseña. Obviamente, si pierdo esa contraseña no hay vuelta atrás.

Una vez que termino de inicializar mi volumen cifrado puedo acceder directamente a la carpeta montada y todo lo que escriba automáticamente va estar siendo cifrado y guardado en esa carpeta que les dije que es cifrada.

Si por algún motivo mi computadora se apaga o me la roban, o alguien quiere acceder y leer esos datos no va a poder. Si la apagan y la vuelven a encender, va a estar sin montar y lo que va a quedar es la carpeta cifrada. Si la computadora está prendida y está accediendo concurrentemente conmigo, ya sea otro usuario o una aplicación, y quiere leer mis datos, no va a poder pues el único que puede acceder al manejado de mi carpeta abierta es mi sesión.

Y lo puedo utilizar con cualquier herramienta, pues en mi sesión es una carpeta que tiene mis archivos abiertos y puedo crear sub-carpetas, puedo guardar con mi procesador de textos normal, copiar archivos, o ver videos; o sea no tengo limitación de uso.

Y cuando termino de usar, solamente la desmonto con el comando:

$ fusermount -u carpeta_vacia

Si entro a la carpeta cifrada solo voy a ver basura.

Si la carpeta cifrada la copio normalmente a un dispositivo que pueda mover puedo llevarme esos datos a otro computador que tenga instalado EncFS y con la passphrase correspondiente, puedo volver a montar.

Algunas ventajas que se pueden estar imaginando:

  • Está disponible para múltiples plataformas.
  • A diferencia de los sistemas que crean un contenedor, EncFS es una carpeta, entonces el espacio libre que voy a tener es el espacio libre de mi disco.
  • El directorio de la carpeta cifrada puede estar localizado en cualquier filesystem normal: un filesystem de red, un USB, en un disco externo, o de solo lectura grabado en un CD.

También resulta bastante conveniente se puede usar con herramientas de respaldo, o sea que la carpeta cifrada se puede respaldar con cualquier herramienta que uno tenga, incluso herramientas que busquen para respaldar las diferencias.

Una característica que me gusta bastante es que EncFS no descifra el archivo completo, si tengo un archivo muy grande, por ejemplo un video, y decido adelantar para ver de la mitad en adelante, solo esos datos se van a estar descifrando para poder ver el video en tiempo real.

EncFS es un software libre que se licencia con LGPL por lo que puede ser estudiado, modificado, usado y compartido como quieras y con quién quieras.

Tengo varios contenedores con datos que guardo en un disco externo y los puedo montar el día que quiera.

Soy Rodolfo Pilas, en twitter me siguen por @pilasguru y les dejo un saludo a todos, confiando en que este podcast les haya aportado para mejorar y, como siempre, espero sus inquietudes y sugerencias comentando en deployando.me

Hasta la próxima edición.

Referencias: