Encriptar directorios con eCryptfs
Cuando uno transporta información sensible en medios removibles, o bien necesita resguardar los datos contenidos en su máquina, debe recurrir a algún sistema de encripción. Hasta hace un tiempo utilizaba TrueCrypt para realizar esta tarea, el cual es excelente, pero me interesé por probar algo más estándar y libre. Así fue como llegué a eCryptfs, un sistema que permite encriptar fácilmente directorios, que es lo que estaba necesitando. Además eCryptfs es POSIX-compliant, libre y se encuentra integrado en el kernel de Linux desde hace tiempo.

En este post les mostraré los pasos necesarios para instalar y utilizar eCryptfs. Mi configuración inicial se basó en el artículo How To Encrypt Directories/Partitions With eCryptfs On Debian Squeeze.

En debian y derivados existe un paquete de utilidades para utilizar ecryptfs, el cual se instala ejecutando:
  # apt-get install ecryptfs-utils
Otras distribuciones tienen paquetes similares, sólo hay que buscar el equivalente.

Encryptar un directorio es tan simple como montarlo utilizando el tipo ecryptfs:
  # mount -t ecryptfs /data/crypt /data/crypt

Cada vez que se monte el directorio, ecrypfs consultará cuáles parámetros utilizar:
1- Tipo de clave:
  1) passphrase
  2) tspi
  eCryptfs permite utilizar tanto passphrase como TSPI (TCG Service Provider Interface).
2- Algoritmo para cifrar:
  1) aes: blocksize = 16; min keysize = 16; max keysize = 32
  2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
  3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
  4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
  5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
  6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
3- Tamaño en bytes de la clave a utilizar:
  1) 16
  2) 32
  3) 24
4- Decidir si se permitirá utilizar archivos sin encriptar dentro del directorio (plaintext passthrough). En la gran mayoría de los casos se elige que no, a menos que exista alguna razón muy específica para no hacerlo.
5- Decidir si encriptar los nombre de archivos (filename encryption). Si no se desea que se pueda saber ni siquiera el nombre de los archivos contenidos en el directorio, debe seleccionarse sí en esta opción.
6- En el último paso se genera un "Filename Encryption Key (FNEK) Signature", el cual para un uso default (y avanzado también?) no es necesario cambiar.

Cuando se monta el directorio por primera vez, el sistema indicará que no encuentra el signature en la máquina y preguntará si desean almacenarlo. Si no se desea que cada vez que se monte el directorio el sistema pregunte esto, elegir que se almacene el signature.

Una vez montado el directorio, los archivos se acceden de la misma manera que cualquier otro archivo del filesystem. Si se desmonta, los archivos se ven con nombres codificados y no se pueden acceder.


eCryptfs también provee la posibilidad de automontar directorios o particiones editando fstab. Para hacerlo debe colocarse la passphrase en un archivo, el cual se utiliza como parámetro en las opciones de montaje. Algo interesante es que de esta forma se puede copiar el archivo con la clave en un pen drive, con lo cual se podrá acceder a los archivos utilizando el pen-drive. La forma de hacerlo está muy bien explicada en el HowTo de referencia.

Algo a destacar es que este tipo de encripción no protege completamente los datos. Como se observa en la imagen de arriba, si bien los nombres de los archivos no se ven, si se distingue entre directorios y archivos, y los atributos no cambian (fecha de creación, owner, etc). El simple hecho de contar con esta información puede ser suficiente en algunos casos.

2 comentarios:

Anónimo dijo...

Hola amigo,

Interesante articulo y muy buena opción a Truecrypt. Lo único que podría alegar sobre el post, es que la palabra "Encriptar" se muy mal en el titulo, no te gustaría cambiarla por "Cifrar"?

Saludos...

d3m4s1@d0v1v0 dijo...

Hola!
Se que la palabra encriptar no existe en la RAE, pero es el término más comúnmente utilizado en Argentina, y por lo que he visto, en otros países de habla hispana. Nunca he escuchado a alguien por aquí decir "debes cifrar el archivo". Supongo que a la larga terminarán incluyendo al término como válido para el lenguaje español... por ahora seguirá siendo parte del espaninglish =)
Gracias por tu comentario!

Publicar un comentario