[COMO] Cifrado de datos en Ubuntu

Imagen de Gabriel_M
11,539 puntos

Cifrado en Ubuntu.
Este es uno de los múltiples procedimientos existentes para cifrar datos en Ubuntu.
Hay varios algoritmos de codificación disponibles, para este ejemplo se usará Blowfish.
En principio es necesario cargar los módulos necesarios: blowfish, loop, y cryploop, ejecutando en consola:

sudo modprobe blowfish
sudo modprobe loop
sudo modprobe cryptoloop

Luego se requiere crear un archivo, en base de números aleatorios, para alojar los datos, en este caso de 100 Megabytes, ejecutando en consola:

sudo dd if=/dev/urandom of=contenedor bs=1M count=100

Con esta orden se crea un archivo, llamado contenedor, en el directorio donde estemos situados, supongamos para el ejemplo, que sea /home/usuario
Ahora es necesario asociar un dispositivo de tipo loop con el archivo contenedor, ejecutando en consola:

sudo losetup -e blowfish2048 /dev/loop0 /home/usuario/contenedor

El número 2048 que sigue a blowfish indica el número de bits de la clave que se usará para codificar los datos.
Inmediatamente, losetup pregunta la contraseña que usará para generar la clave de cifrado, en caso de estar usándose /dev/loop0 para otros menesteres, usar /dev/loop1, /dev/loop2, etc., etc.
El siguiente paso es dar formato al archivo contenedor generado con un contenido aleatorio, ejecutando en consola:

sudo mkfs -t ext3 /dev/loop0

Se debe ahora, crear un punto de montaje para el sistema de archivos, ejecutando en consola:

sudo mkdir /mnt/cifrado

Para posteriormente montar el sistema de archivos cifrado, ejecutando en consola:

sudo mount -t ext3 /dev/loop0 /mnt/cifrado

Es conveniente comprobar la contraseña, porque losetup sólo pregunta una sola vez la contraseña, para comprobar que la contraseña que escribimos es la correcta, lo hacemos:
Desmontando el sistema de archivos y el filtro de cifrado, ejecutando en consola:

sudo umount /mnt/cifrado
sudo losetup -d /dev/loop0

Volviendo a montar el filtro, a introducir la contraseña y a montar el sistema de archivos, ejecutando en consola:

sudo losetup -e blowfish2048 /dev/loop0 /home/usuario/contenedor
contraseña:
sudo mount -t ext3 /dev/loop0 /mnt/cifrado

Si no se monta el sistema de archivos hubo un error al escribir la contraseña, por lo que hay que desmontar el filtro de cifrado y repetir el procedimiento
Todo olvido o error en la contraseña hace inaccesibles los datos almacenados en el sistema de archivos cifrado, y no existe posibilidad alguna de recuperarlos
Se puede acceder a los datos almacenados en su interior, ejecutando en consola:

sudo losetup -e blowfish2048 /dev/loop0 /home/usuario/contenedor
contraseña:
sudo mount -t ext3 /dev/loop0 /mnt/cifrado

Se hace inaccesible la información a otros usuarios, ejecutando en consola:

sudo umount /mnt/cifrado
sudo losetup -d /dev/loop0

Otro procedimiento de cifrado, es el de utilizar de EncFS.
EncFS, proporciona un sistema de archivos cifrado en el espacio del usuario. Se ejecuta sin ningún permiso especial y utiliza la biblioteca Fuse y el kernel de Linux para proporcionar el interfaz al sistema de ficheros.
En principio es necesario instalar fuse-utils y encfs, ejecutando en consola:

sudo apt-get install fuse-utils encfs

Luego se debe averiguar se el grupo fuse se creó, ejecutando en consola:

groups

Aparecerá un listado, si en este listado aparece fuse, es necesario agregarse como usuario, ejecutando en consola:

sudo adduser usuario fuse

Ahora se debe estar seguro de que fuse se cargó como módulo, ejecutando en consola:

sudo modprobe fuse

Para que se cargue al inicio desistema, ejecutar en consola:

sudo gedit/etc/modules

Agregar al final de larchivo

fuse

Para guardar los archivos no accesibles, se crea un directorio por ejemplo /home/usuario/cifrado, ejecutando en consola:

sudo mkdir /home/usuario/.cifrado
sudo mkdir /home/usuario/cifrado

Se monta el sistema de archivos usando encfs, ejecutando en consola:

encfs /home/usuario/.encriptado /home/usuario/encriptado

Este comando dará una salida similar a esta:

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:

Pones la que elijas, no se ve al escribirla. Luego te pide que la vuelvas a escribir:

Verifique la contraseña Encfs:

Para probar el sistema, escribe en consola:

echo "test" > /home/usuario/cifrado/test.txt
echo "test2" > /home/usuario/cifrado/test2.txt

Tanto test.txt and test2.txt estan presentes y legibles en /home/usuario/cifrado
Desmonta el sistema encriptado, ejecutando en consola:

fusermount -u /home/usuario/cifrado

Examina el directorio /home/usuario/cifrado, ejecutando en consola:

ls /home/usuario/cifrado

Estará vacío, ya que los archivos estan en /home/usuario/.cifrado:
Examina el directorio /home/usuario/.cifrado, ejecutando en consola:

ls /home/usuario/.cifrado

Los archivos estan cifrados y no se pueden acceder
Monta nuevamente el directorio y quedarán accesibles los archivos, ejecutando en consola:

encfs /home/usuario/.encriptado /home/usuario/encriptado

Cuando crees el sistema de archivos te pedirá que establezcas una contraseña, trata de no olvidarla o perderás definitivamente el acceso a los archivos.
Mueve los archivos al directorio /home/usuario/cifrado y luego de desmontar el directorio quedaran inaccesibles para los extraños.

Atención: Aqui solo correcciones y/o mejoras. Las preguntas en el foro. Para otros sistemas de cifrado escribir tutorial nuevo.
Saludos.
Gabriel.


Ubuntu: sistema operativo superior, moderno, optimizado, seguro, racional, completo, y evolutivo.