ICM / seguridad / Cómo encriptar datos antes de subirlos al cloud

Cómo encriptar datos antes de subirlos al cloud

8 octubre 2020 | Carlos Calvo

La entrada de hace unos días explicábamos cómo comprobar si nuestro sistema operativo estaba actualizado y cómo no tenerlo podía suponer un problema en su seguridad. Hoy vamos a ver otro aspecto que nos podría ayudar, de forma considerable, a mejorar tal seguridad: encriptar nuestros datos.

La encriptación de nuestros datos es una de las cosas que podemos ejecutar en nuestros PCs/Tablets/Teléfonos, etc. y que más nos ayudará a reforzar la seguridad del dispositivo. Además, se trata de una práctica incluida en el «Best-Practices» de casi cualquier fabricante.

Pasos para encriptar los datos en dispositivos Windows

En dispositivos Windows, para encriptar nuestros datos, primeros debemos hablar de BitLocker. Si no queremos liarnos demasiado, lo mejor sería empezar probando la opción de Microsoft para cifrar nuestros ficheros. Eso sí, sólo si dispones de un sistema Windows 10.

Para encriptar un disco de tu Windows 10, el primer paso es abrir el gestor de BitLocker con el siguiente comando: «control /name Microsoft.BitLockerDriveEncryption«

A continuación, aparecerá un listado de discos, incluyendo el disco de sistema, de entre los cuales deberás seleccionar qué disco quieres encriptar. Una vez lo hayas decidido, selecciona la opción Activar BitLocker junto a la unidad que deseas ejecutar.

Es importante remarcar en el siguiente paso que, de unir la máquina a un Controlador de Dominio en Azure, podrías optar (si tu placa base lo soporta -chip TPM versión 1.2 como mínimo-) por guardar las claves de encriptación de forma segura bajo nuestro Tenant en Microsoft Azure. Pero en este caso asumiremos que es un PC personal y que no hay unas políticas de seguridad empresariales de por medio.

Por lo tanto, deberás establecer un password, la cual se guardará muy bien en algunas de las ubicaciones que Windows te ofrece. Estas ubicaciones podrían cambiar dependiendo de tu versión Update, la edición del SO, etc…, pero aconsejamos, si es posible, que guardes una copia en la nube, en un USB o que la memorice o imprima y guarde. No obstante, no guardes la clave en un fichero dentro del mismo sistema de ficheros que va a encriptar.

Para finalizar, elije si deseas encriptar sólo la porción con datos del disco o si quieres encriptar el disco entero. Nuestro consejo es que encriptes sólo los datos utilizados. Así el proceso terminará antes y los nuevos datos siempre serán encriptados antes de llegar al disco.

Recomendación de ICM

No se trata de lo mismo pero, sí me gustaría remarcar que desde ICM recomendamos el uso de encriptación de discos junto con «Secure Boot«. Este sistema protegerá el arranque de nuestro sistema operativo verificando lo que arranca. Es decir, que se ejecute nuestro sistema operativo y no una imagen de sistema (rootkit) que algún hacker nos haya colado. Juntas, Secure Boot y encriptación de discos representan, de cara a un posible atacante, un esfuerzo muy grande para llegar a obtener nuestros datos, haciendo que seguramente sea muy difícil atacarnos.

Pensad que con estos dos sistemas activados, incluso con el robo físico de nuestro dispositivo sería muy difícil para un grupo de personas experimentadas acceder a la información de nuestros discos.

encriptar datos

Pasos para encriptar los datos en dispositivos Linux

Del mismo modo que con Windows, podríamos encontrar diferentes fórmulas para encriptar nuestros datos en dispositivos Linux. Además, teniendo en cuenta la cantidad de distribuciones Linux que tenemos a nuestra disposición, las posibilidades son bastante grandes. En este caso, que utilizamos una Ubuntu Server 20.04, nos quedaremos con cryptsetup. Aquí podemos encontrar el enlace a la página de documentación del comando.

Lo primero que deberemos hacer es asegurarnos de que nuestro sistema operativo está al día:

sudo apt-get update sudo apt-get upgrade

A continuación instalaremos el paquete en cuestión:
sudo apt install cryptsetup

Como en el caso de Windows también, deberemos identificar la partición que queremos encriptar. Para ello, podemos realizarlo, por ejemplo, con el siguiente comando:

$:/home/me# df -h Filesystem Size Used Avail Use% Mounted on udev 894M 0 894M 0% /dev tmpfs 188M 660K 187M 1% /run /dev/sda2 20G 3.0G 16G 17% / tmpfs 936M 0 936M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 936M 0 936M 0% /sys/fs/cgroup tmpfs 188M 0 188M 0% /run/user/1000 /dev/sdb 49G 53M 47G 1% /data

En nuestro caso, optamos por encriptar un disco secundario que queremos utilizar para datos, ubicado en /dev/sdb y montado sobre /data. Por lo tanto, ejecutaremos el siguiente comando:

sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb

De la página MAN:
–verify-passphrase, -y
query for passwords twice. Useful when creating a (regular) mapping for the first time, or when running luksFormat.

A continuación nos pedirá introducir la clave de encriptación que nosotros prefiramos. Como siempre, encontrar un equilibrio entre compleja y fácil de recordar es lo mejor. Nosotros usaremos esta: ‘MAv2fntUryj5’ . Recuerda no perder nunca esa clave e intentar no guardarla en formato digital.

Cuando el proceso haya terminado, comprobaremos que efectivamente podemos usar el disco, utilizaremos el siguiente comando:

cryptsetup luksOpen /dev/sdb sdb

Si no nos retorna ningún error, veremos el estado de las particiones ahora con el siguiente comando:

fdisk -l

Ahora, no sólo deberíamos ver nuestro disco original en /dev/sdb, sino también un mapeo con el nombre especificado en el comando anterior, algo como esto:

Disk /dev/mapper/sdb: 49.101 GiB, 53670313984 bytes, 104824832 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes

Queremos empezar a utilizar nuestra unidad encriptada ya, así que formatearemos dicha con el sistema de ficheros EXT4:

sudo mkfs.ext4 /dev/mapper/sdb

Como en esta unidad no tenemos instalado el sistema operativo, podemos ganar algo de almacenamiento eliminando el espacio que EXT4 reserva por defecto, ejecutando este comando:

tune2fs -m 0 /dev/mapper/sdb

Comprobación final

Ahora vamos a probar que todo está correcto, pero por defecto sólo ‘root’ tendrá acceso a esos ficheros. Así que, después de montar el disco encriptado, modificaremos un poco los permisos -nuestro usuario es ‘me’-:

mkdir -p /data mount /dev/mapper/sdb /data sudo chown -R me:users /data echo "test" > /data/test cat /data/test

A partir de aquí nos debería mostrar el contenido de /data/test, que en este caso es la palabra test. Cuando hayamos terminado de utilizar el disco podemos retirar el acceso del siguiente modo:

sudo umount -l /dev/mapper/sdb sudo umount -f /data

Cuando queramos volver a utilizarlo podemos, simplemente, montar el disco en la ruta que nos interese, guardar nuestra información sensible y volver a desmontar:

mount /dev/mapper/sdb /data echo "información-sensible" > /data/informacion-sensible sudo umount -l /dev/mapper/sdb sudo umount -f /data

Existen mecanismos para automatizar estos procesos. Desde ICM preferimos no hacerlo. Siempre puedes montar un script con una o dos líneas de las vistas en este artículo en el arranque de tu sesión, pero recomendamos realmente hacerlo a mano.

Si aún así te gustaría usar /etc/fstab, como con cualquier otro disco, échale un vistazo a este artículo.

Conclusión

Cuando hablamos de criptografía ciertamente todo parece bastante complejo. En cambio, esperamos poder haberte hecho ver que no es así. Que incluso en Linux, que requiere algo más de trabajo, es bastante sencillo y podemos acabar manejando la encriptación de nuestros discos sabiéndonos sólo 3 o 4 comandos.