¿Qué es eCryptfs y cómo funciona?

Hoy en día, a medida que los ciberataques se vuelven cada vez más frecuentes, las personas no escatiman esfuerzos para proteger sus datos confidenciales. Y la plataforma Linux ofrece una variedad de herramientas que ayudan a mantenerlos a salvo de miradas indiscretas con la ayuda del cifrado. Aquellos que no desean cifrar todo el contenido del disco pueden optar por eCryptfs, un sistema de archivos criptográfico que permite realizar la protección selectiva de archivos o directorios particulares. Aquí se puede encontrar lo más esencial sobre este software de cifrado y familiarizarse con los principios de su funcionamiento.

Última actualización:
el 20 de julio de 2023

Tiempo de lectura: 4 min

¿Qué es eCryptfs?

eCryptfs (Sistema de archivos criptográfico empresarial o Enterprise Cryptographic Filesystem) es la tecnología de cifrado a nivel de archivo más común en Linux. En lugar de cifrar todo el dispositivo de bloque, cifra el contenido de los archivos individuales a medida que se escriben o se leen en la unidad, y los almacena sobre el sistema de archivos normal existente, como ext4, XFS, Btrfs, JFS, etc. También es compatible con algunos sistemas de archivos en red como NFS, CIFS y otros.

eCryptfs se basa en Cryptfs de Erez Zadok y el marco FiST para sistemas de archivos apilados. Fue lanzado originalmente en 2006 por Michael Halcrow y el IBM Linux Technology Center y, por el momento, se mantiene por Dustin Kirkland y Tyler Hicks de Canonical Ltd, la compañía que posee Ubuntu Linux.

Es posible habilitar el cifrado para cualquier archivo o carpeta que desee. eCryptfs lo cifrará utilizando una clave de cifrado de archivo separada generada aleatoriamente (también conocida como "mount passphrase" o "frase de contraseña de montaje"). De forma predeterminada, esta es una cadena hexadecimal de 32 caracteres. Se solicita al usuario que conserve una copia de seguridad de la misma con fines de respaldo.

alt

La clave de cifrado de archivo en sí se almacena en forma cifrada. El proceso de su cifrado se llama "envoltura". Se realiza con la ayuda de una clave de cifrado de "envoltura" separada (a veces denominada "master key" o "clave maestra") basada en la contraseña del usuario (también llamada "login passphrase" o "frase de contraseña para inicio de sesión"). La clave de "envoltura" también se cifra para obtener una "firma" de 8 bytes que la identifica de forma única.

La clave envuelta resultante se guarda en los metadatos del cifrado agregados directamente al encabezado del archivo. La "firma" también se almacena en el encabezado y se usa para encontrar la clave de "envoltura" correcta para "desenvolver" la clave de cifrado del archivo y luego descifrar el archivo dado. Ambas también se guardan en el archivo "wrapped-passphrase" de la carpeta ".ecryptfs" respectiva.

alt

Por lo tanto, cada archivo cifrado con eCryptfs es autónomo y puede tener una clave de cifrado única asociada. Dicha clave es simétrica, lo que significa que cifra y descifra el contenido del archivo. Su longitud depende del cifrado empleado, mientras que la configuración predeterminada y recomendada es AES-128.

Opcionalmente, también se puede cifrar el nombre de archivo utilizando una clave de cifrado de nombre de archivo derivada de la misma frase de contraseña o de una adicional.

El mecanismo antes descrito permite que eCryptfs:

  • almacene los datos cifrados junto con los no cifrados dentro del mismo volumen;

  • cifre el contenido y el nombre del mismo archivo usando diferentes contraseñas;

  • acepte cualquier contraseña para el descifrado, ya que potencialmente puede haber un archivo que coincida con cualquier contraseña dada. Si no se produce una coincidencia, el archivo simplemente permanece cifrado.

¿Cómo se activa en un dispositivo?

eCryptfs ha sido compatible con el núcleo desde la versión 2.6.19 como el módulo ecryptfs. Actualmente, es el método predeterminado para cifrar la carpeta de inicio del usuario en muchas distribuciones de Linux, entre las que se encuentran Ubuntu y ChromeOS.

Además, eCryptfs se usa ampliamente para cifrar carpetas compartidas en los dispositivos NAS de diferentes proveedores, como Synology, QNAP, Asustor, TerraMaster y otros. Sin embargo, cabe señalar que sus implementaciones pueden tener diferencias considerables definidas por el sistema subyacente.

Hay varios tipos de escenarios en los que el cifrado de eCryptfs entra en funcionamiento:

  • El usuario puede optar por cifrar su directorio /home al instalar o reinstalar el sistema.

  • eCryptfs se puede activar manualmente con instalar el paquete de ecryptfs-utils y luego realizar el cifrado usando uno de los métodos disponibles (ejecutar el comando mount junto con el indicador -t y la opción encryptfs, con la ayuda de la herramienta de configuración ecryptfs-setup-private y de otras maneras, dependiendo del sistema particular).

  • En los dispositivos NAS soportados, es posible cifrar una carpeta compartida nueva o existente marcando la casilla de verificación respectiva al crear/editar la carpeta dada.

Los siguientes productos de software permiten acceder y recuperar datos de los almacenamientos que emplean la tecnología antes descrita: