lunes, 24 de junio de 2019

Cómo cifrar y descifrar archivos en la nube

Muchos de nosotros tenemos o hemos tenido la necesidad de cifrar los archivos que subimos a la nube pública por aquello de la privacidad. Otros no quieren que les bloqueen la cuenta de la nube por subir copias de seguridad de sus bibliotecas multimedia.
Para subir los archivos cifrados a la nube pero que en local estén descifrados podemos utilizar una herramienta: rclone



Para usar esta herramienta os dejo un enlace a otro artículo de este blog: Uso de Rclone y la nube

De nuevo voy a explicar el proceso con Google Drive y Linux Mint, aunque el proceso es similar en otros sistemas operativos y con otras nubes.

El escenario que voy a montar es el siguiente:

La carpeta CIFRADO1 será donde alojemos los documentos cifrados en la nube, esto no es necesario pero seguramente te ayudará a organizar tus nubes.

Comenzamos, nos vamos al equipo 1.
Lo primero es tener creada una unidad de Google Drive según se explica en el artículo antes mencionado.
Ejecutamos una terminal y escribimos:
rclone listremotes

Nos sale una lista de las unidades remotas configuradas. En mi caso GD_MD1, es una unidad que conecta con una cuenta de Google Drive.

Después creamos una unidad cifrada en el equipo 1, para ello realizamos los siguientes pasos en la terminal:

rclone config

n ->nuevo, le damos un nombre
name>GD_MD1_cifrado

y elegimos 8 / Encrypt/Decrypt a remote   \ "crypt"

Nos indica que elijamos un directorio, aquí elegimos la unidad sin cifrar y el directorio donde trabajar con los archivos cifrados : GD_MD1:/cifrado1

Después elegimos las opciones de cifrado:

Elijo 2

Ahora si queremos encriptar directorios: 

Elijo 1

Llega el momento de elegir la clave de cifrado y después la semilla, ambas claves se utilizar para generar la verdadera clave de cifrado. Elegimos en ambos casos que sea generada aleatoriamente,
opción g  
Nota: las claves reales se almacenan en el archivo /home/pedro/.config/rclone/rclone.conf, en ¡texto plano!
Y ya está ya tenemos una unidad cifrada en el equipo 1.
Lo comprobamos; ponemos rclone config y veremos las unidades, elegimos GD_MD1_cifrado
saldrá algo así:

[GD_MD1_cifrado]
type = crypt
remote = GD_MD1:/cifrado1
filename_encryption = standard
directory_name_encryption = true
password = *** ENCRYPTED ***
password2 = *** ENCRYPTED ***

Ahora vamos a trabajar con esta unidad cifrada.
Creamos un archivo de prueba, prueba1.txt en el equipo 1


copiamos el archivo prueba1.txt a la unidad cifrada, en la terminal:
rclone copy ./Documentos/cifrada_rclone1/prueba1.txt GD_MD1_cifrado: 
Y si vamos al Drive donde lo hemos subido

Vemos que el nombre del fichero está cifrado si lo descargamos en local en el equipo 1 (o cualquier otro equipo) e intentamos abrirlo, nos dará un error. Si lo intentamos en la nube tampoco podremos abrirlo

pero si accedemos a la carpeta cifrada desde la terminal con rclone ...
$ rclone ls GD_MD1_cifrado:
       31 prueba1.txt
esta es la magia que rclone sí descifra el archivo

Voy a hacer un resumen para centrar que hemos hecho hasta ahora.

Teníamos una unidad remota creada con rclone que conectaba con Google Drive: GD_MD1; hemos creado una unidad remota nueva pero cifrada: GD_MD1_cifrado. Ahora si yo envío uno varios archivos a esta unidad remota, dichos archivos se subirán a la nube cifrados y nadie podrá ver su contenido excepto el rclone que los cifró.

Para montar la unidad cifrada podemos ejecutar en la terminal:
rclone mount GD_MD1_cifrado: /home/pedro/nube2 &

Nota: sobre montaje y cómo hacerlo permanente os remito al artículo Uso de Rclone y la nube


Ahora copio 4 archivos locales a nube2 (con el administrador de archivos del equipo 1), el directorio local que enlaza con la nube (en este caso nube2) y que os recomiendo que esté vacío


Una vez copiados podemos comprobar que están cifrados de varias formas:
- por comandos, con rclone ls GD_MD1_cifrado:

y si accedemos a la unidad sin cifrar con rclone ls GD_MD1:/cifrado1


vemos los nombres de los archivos cifrados, porque esta unidad remota conecta con Drive pero sin las claves de cifrado

- accediendo a Google Drive con un navegador

Podemos ver como los archivos están cifrados en la nube y nadie puede ver su contenido excepto nuestro equipo 1 con el rclone.

Pues con esto ya estaría, ya sabemos cifrar archivos y subirlos a la nube sin problemas.

Ahora podemos utilizar esto para múltiples proyectos, como montar un servidor Plex multimedia dónde los archivos están en la nube ;)
Para ello sólo hay que decirle a plex que la biblioteca está en nube2.

Un saludo y a gastar tiempo. Por cierto esto no ha terminado ;) y si queremos compartir la nube cifrada con otros equipos o personas.

Tutorial Rclone y cuentas ilimitadas:
Usar la nube en local
Cifrar y descifrar archivos en la nube
Acceso a la nube cifrada desde varios equipos
Compartir la nube ilimitada sin dar usuario y contraseña