El cifrado de datos en discos duros o SSD, particiones y archivos es algo fundamental hoy en día. Actualmente tenemos la posibilidad de cifrar los datos de un servidor NAS, de un ordenador de sobremesa e incluso de un ordenador portátil. Sobre todo, en los ordenadores portátiles es donde más se necesita el cifrado de datos, porque si lo perdemos, podrían acceder a todos nuestros datos, lo mismo que si perdemos nuestro disco duro o pendrive. Hoy en RedesZone os vamos a enseñar a cifrar todo el contenido del disco duro desde cero, haciendo uso de LUKS en Linux.
Aunque solemos pensar que Linux es un sistema más seguro, no implica que no tengamos que usar protección si utilizamos el sistema operativo del pingüino. Y utilizar un cifrado para nuestro disco duro puede ser algo muy interesante si tenemos en cuenta que solemos almacenar todo tipo de contenidos privados que no queremos que caigan en manos de cualquiera. Almacenamos fotografías, archivos confidenciales, datos personales… y eso hace que nos preocupe cómo podemos guardarlos de la forma más segura posible. En ese caso, cifrar nuestro disco duro es fundamental.
Aunque no es el sistema operativo más utilizado, Linux es una buena opción para instalar en ordenadores portátiles dedicados a probar nuevos programas o incluso para que los niños utilicen algunas de las distros más habituales, además de aprender a programar. La tendencia es creer que se trata de un sistema operativo más seguro que otros como Windows pero no está libre de peligros y el malware es menos habitual simplemente porque está menos extendido. Pero debes tomar medidas. Y debes proteger tus datos. Especialmente si es un ordenador portátil que puede caer en manos de cualquiera o si es un ordenador que compartes con otros miembros de tu casa y quieres tener una capa extra de seguridad en tus datos.
Formas de cifrar datos en Linux
En sistemas operativos Linux tenemos muchas opciones para cifrar datos en Linux, por ejemplo, podemos usar dm-crypt, LUKS, eCryptfs e incluso programas como Veracrypt que son realmente versátiles y muy recomendables. LUKS (Linux Unified Key Setup) nos permite cifrar discos, particiones y también volúmenes lógicos que nosotros creemos en nuestro equipo.
Algunas de las ventajas que tiene LUKS frente a otros, es que su uso es realmente sencillo, sin tener que configurar o ejecutar complicados comandos, está incluido en el propio kernel, por tanto, el rendimiento a la hora de cifrar/descifrar datos será muy elevado, también debemos tener en cuenta que podremos gestionar la clave de cifrado como nosotros deseemos. No obstante, hay que tener claro que existen diferentes alternativas disponibles a esta opción en concreto. Sin embargo, nos centraremos en cómo se puede configurar este cifrado y llegar a usar en cualquier disco o partición en particular.
Este tutorial lo vamos a dividir claramente en dos secciones, en la primera sección os enseñaremos cómo instalar un sistema operativo Debian con cifrado en toda la partición, cifrado por defecto, y en la segunda sección os enseñaremos a cifrar el equipo una vez instalado Debian normalmente, sin cifrado en la partición por defecto. Un detalle muy importante, es que la partición orientada al «boot» no irá cifrada, para permitir leer la información, pero el resto del disco sí estará cifrado con LUKS, ya sean particiones o volúmenes lógicos (LVM).
Ventajas de usar LUKS
LUKS es actualmente el estándar que se utiliza para el cifrado de discos, particiones y archivos en sistemas operativos Linux, por tanto, es recomendable hacer uso de LUKS frente a otras herramientas que no son estándar, porque LUKS siempre lo tendremos instalado en cualquier sistema operativo basado en Linux, sin necesidad de instalar ningún software adicional ni realizar complicadas configuraciones.
Una ventaja de LUKS, es que, en la instalación del propio sistema operativo Linux tendremos la posibilidad de cifrar la partición de disco donde vamos a instalar el sistema, e incluso también podremos cifrar solamente la carpeta del usuario, tal y como os enseñaremos próximamente. Gracias a que tendremos la posibilidad de crear particiones cifradas, estaremos protegiendo desde cero toda la información que tengamos en nuestros discos duros o SSD.
Mientras que programas como VeraCrypt necesita hacer uso del propio programa para descifrar particiones o archivos, LUKS ya viene instalado de forma predeterminada en nuestro sistema operativo sin necesidad de hacer nada más. Otro aspecto positivo es que este sistema de cifrado está más que probado y su código fuente auditado, por tanto, podremos tener la seguridad de que LUKS es un sistema de encriptado robusto y libre de fallos de seguridad (hasta el momento, porque la seguridad al 100% no existe).
Sistema de cifrado
Todas las herramientas de cifrado utilizan sistemas para realizar la encriptación. En el caso de LUKS, estamos ante una herramienta que utiliza el cifrado AES (Advanced Encryption Standard) para proteger los datos de los discos duros. AES es un algoritmo de cifrado simétrico, que utiliza bloques de cifrado de 128 bits, 198 bits o 256 bits. Siendo este último el más seguro de todos, y eligiendo el más adecuado dependiendo la configuración que el usuario tiene establecida en el sistema.
Con LUKS el cifrado se realiza por bloques, lo cual quiere decir que la información de cada bloque de datos se cifran de forma individual. Esto tiene la ventaja de que se puede utilizar en prácticamente cualquier sistema de archivos, haciendo de esta herramienta una solución muy flexible. Por otro lado, LUKS también dispone de otros tipos de cifrado como pueden ser Serpent y Twofish a parte de AES. En cuanto a las contraseñas, con LUKS disponemos de un sistema de múltiples códigos para el acceso a los discos duros. Esto quiere decir que se pueden establecer diferentes contraseñas para usuario y grupos, lo cual permite disponer de un control de acceso mucho mejor.
Otra de las características de LUKS, es que es compatible con la suspensión del sistema. Esto quiere decir que se puede apagar y volver a encenderlo con el cifrado montado, siempre y cuando se establezcan las contraseñas de acceso al mismo. Todo esto hace que nos encontremos ante una herramienta de cifrado muy segura, la cual es muy versátil para utilizarla en multitud de circunstancias diferentes. En todo caso, a pesar de realizar una encriptación de la información es recomendable contar con las medidas de seguridad adicionales que siempre recomendamos. Como los antivirus, firewalls, y mantener el sistema y todas sus aplicaciones totalmente actualizadas. Por lo general, pueden contener parches de seguridad que nos ayudan a mantener los datos a salvo.
Para qué sirve el cifrado
El cifrad de los discos, particiones o archivos tiene un objetivo claro, aplicarle un algoritmo a estos con el fin de que la información que tenga solo pueda ser inteligible por nosotros. ¿Cómo? Pues muy sencillo, se aplica un formato diferente al que tenía con tal de proteger la información de los archivos, particiones o discos. De esta manera, los usuarios al disponer de las credenciales en sí pueden proteger esta información y solamente ellos tendrían el acceso al contar, por ejemplo, con la contraseña necesaria.
No obstante, hay que tener en cuenta otra serie de detalles clave. Como es el caso de qué sucede con el cifrado de un disco duro, ya que solamente llega a tener utilidad cuando el PC está apagado. O, por otra parte, si se cifra un disco duro externo, este cifrado únicamente serviría cuando no se esté trabajndo con este.
Por lo tanto, hay que tener claro cuál es la utilidad de estos cifrados. ¿Tiene sentido que se aplique en todo momento? Claro. Sin embargo, si se cifra un disco duro de un PC que está encendido todo el tiempo, entonces sería de poca utilidad llegar a cifrar este equipo. Pero si en tu caso no es así, entonces adelante, ya que es una capa de protección para la información que contengan los discos, particiones o archivos.
Instalar Debian o Linux con cifrado LUKS por defecto
En el asistente de instalación de Debian, ya sea con la interfaz gráfica de usuario completa, o con el asistente de instalación con interfaz mínima, tenemos la posibilidad de configurar todo el disco con un LVM cifrado, con el objetivo de tener la máxima confidencialidad cuando usemos el equipo, ya que todos los datos de la partición del sistema y de los datos estarán cifradas.
Simplemente tendremos que elegir «Guiado – Utilizar todo el disco y configurar LVM cifrado», a continuación, elegimos el disco, y seleccionamos si lo queremos todo en una partición o separarlo por particiones, esto no importa porque podremos separar la partición de /home en otra.
Nos indicará que, si queremos guardar todos los cambios realizados, es muy recomendable hacer uso de LVM para posteriormente ampliar o disminuir su capacidad. Una vez que lo hayamos hecho, el sistema operativo se encargará de borrar todo el disco con datos aleatorios para mejorar la seguridad y evitar la recuperación de los datos. Esto tardará un tiempo, dependiendo del tamaño del disco que hayamos seleccionado.
Una vez que termine, nos indicará que pongamos la contraseña de cifrado, para cifrar y descifrar el disco con esta contraseña. Como mínimo se recomienda poner 8 caracteres, pero nuestra recomendación es poner mínimo 12 caracteres, usando una contraseña robusta. Una vez terminado, nos saldrá un resumen de todo lo que hará el asistente de instalación de Debian en nuestro disco, lo más importante es la parte de «Cifrado sda5_scrypt», un detalle importante es que el /boot no se encontrará cifrado, y tampoco el intercambio (swap), por tanto, os recomendamos no usar nada de swap nunca, o cifrarlo a posteriori.
Después de que hayamos visto todo lo que se va a hacer, indicamos que queremos escribir los cambios en el disco, y también instalar el cargador de arranque en el grub, seleccionando el disco /dev/sda que tenemos.
Y una vez que hayamos terminado la instalación, nos saldrá el grub, y elegiremos la primera opción, o dejamos pasar el tiempo. Automáticamente nos pedirá la contraseña para poder iniciar el sistema operativo, si no introducimos la contraseña directamente no se podrá iniciar, porque todo está cifrado. Si introducimos la clave, veremos cómo empiezan a arrancar los diferentes servicios en Debian.
Si queremos comprobar las particiones que tenemos creadas, podemos poner el comando siguiente:
lsblk --fs
Si queremos ver las características de LUKS (algoritmo de cifrado simétrico usado, longitud de clave etc), podemos poner el siguiente comando:
cryptsetup luksDump /dev/sda5
El /dev/sda5 es en nuestro caso, si has realizado una instalación diferente es posible que cambie este dato. Tal y como podéis ver, LUKS cifra todos los datos con AES-XTS en su versión de 512 bits, utiliza un PBKDF argon2i, y un hash SHA256.
Tal y como habéis visto, configurar de manera predeterminada nuestro sistema operativo con Linux es realmente fácil, tan solo necesitamos seguir los pasos del asistente de configuración, sin necesidad de hacer nada más. Una vez que ya sabemos cómo cifrar todos los datos de forma predeterminada, vamos a ver cómo hacerlo cuando ya está el sistema operativo instalado.
Configurar cifrado LUKS en un sistema ya instalado sin cifrado previo
En esta sección del tutorial vamos a ver cómo podemos cifrar particiones cuando ya están creadas, e incluso cómo podemos cifrar cualquier archivo con LUKS que nosotros tengamos en el sistema operativo. Estas pruebas las realizaremos con un sistema Debian 10 sin tener nada cifrado por defecto, ni partición del sistema, datos ni nada.
Lo primero que tenemos que hacer es instalar LUKS en el sistema operativo, porque no viene instalado por defecto si no lo hemos utilizado en el asistente de instalación. La instalación se realiza directamente desde el repositorio oficial de Debian de la siguiente forma:
sudo apt install cryptsetup
Una vez instalado, ya podremos utilizarlo para cifrar el contenido de discos duros, particiones o cualquier dispositivo de almacenamiento extraíble.
Antes de empezar, siempre es recomendable formatear por completo la partición y reescribir los datos, para tener la mejor seguridad posible, de esta forma, se reescribirá toda la partición o disco con información aleatoria, para que sea muy difícil o casi imposible recuperar información. Actualmente LUKS no permite cifrar el disco o partición cuando está en uso, por tanto, tendríamos que hacerlo desde otro equipo. Además, hay que hacer uso de «cryptsetup-reencrypt» que nos servirá para reencriptar la partición totalmente, sin pérdida de datos, aunque sería muy recomendable que hicieras una copia de seguridad de los archivos importantes antes de hacerlo. Esta herramienta permite cifrar los datos en el dispositivo LUKS insitu, pero es necesario que no esté en uso la partición.
Cifrar cualquier disco o partición (con pérdida de datos)
Lo primero que tenemos que hacer es crear una nueva partición en el disco, para posteriormente utilizarla. Ejecutamos el siguiente comando:
sudo fdisk /dev/sdb
Y continuamos poniendo «n» para crear una nueva partición, ponemos «p» para hacerla primaria, y aceptamos los valores que nos indican para tener una partición de todo el disco duro, si queremos hacerla más pequeña, tendremos que modificar los sectores para esta partición en concreto.
Una vez que hayamos hecho esto, deberemos poner la partición sdb1 recién creada con el formato LUKS, para ello ejecutamos el siguiente comando:
sudo cryptsetup luksFormat /dev/sdb1
Ponemos «YES» en mayúsculas, introducimos la clave que queremos, y esperamos hasta que esté listo.
Si ejecutamos el comando:
lsblk -f
Podremos ver todos los discos duros, las particiones y el sistema de archivos que estamos utilizando. Deberíamos ver que el sdb1 tenemos «crypto_LUKS» como aparece aquí:
Una vez que lo hayamos hecho, tendremos que abrir esta partición con LUKS que acabamos de crear, para ello ponemos el comando:
cryptsetup luksOpen /dev/sdb1 particioncifrada
Introducimos la contraseña, y a continuación volvemos a ejecutar el «lsblk -f» y nos aparecerá «particioncifrada» que es el nombre identificador que le hemos dado, pero podemos cambiarlo en cualquier momento.
Ahora tenemos que darle formato de archivos a esta partición, lo normal sería hacerlo con EXT4 también, para ello, ponemos el siguiente comando:
mkfs.ext4 /dev/mapper/particioncifrada
Y ya tendremos el sistema de archivos EXT4 en esta partición cifrada.
Ahora deberemos montar la partición a un directorio, para hacerlo, deberemos crear en la /home o donde queramos el punto de montaje:
mkdir -p /home/bron/particioncifrada/archivos
Y ahora tenemos que montarlo:
mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos
Y si accedemos al directorio «/home/bron/particioncifrada/archivos» podremos escribir todos los datos que queramos, el cifrado es al vuelo y totalmente transparente.
Si reiniciamos el ordenador, no estará montada la unidad, ni tampoco tendremos abierta la partición con LUKS, por tanto, cada vez que reiniciemos y queramos acceder a esta partición, tendremos que hacer lo siguiente:
cryptsetup luksOpen /dev/sdb1 particioncifrada
Introducimos la contraseña cuando nos la pida, y montamos la unidad nuevamente:
mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos
Si queremos que se nos abra y monte automáticamente al inicio del sistema operativo, tendremos que editar los archivos /etc/crypttab y /etc/fstab para poner esta partición, pero nuestra recomendación es que montéis la unidad manualmente y que os pida la contraseña, por seguridad, porque si no, tendrás que almacenar la clave en texto plano en la partición /boot/.
Alternativas a LUKS
Como siempre que se recomienda alguna opción, en este caso de encriptación, siempre es bueno repasar algunas alternativas. Esto es con el fin de buscar siempre la opción que más de adapta a nuestras necesidades.
Como podrás ver, las opciones son muy variadas. Dentro de que todas tienen prácticamente las mismas funciones, hay algunas características que son específicas de cada una. Por lo cual tendremos que ver todas ellas para realizar la mejor elección posible. Podemos encontrarnos con un sin fin de opciones, pero también debemos tener en cuenta que en estos casos, hay muchas aplicaciones que tienen fines maliciosos al realizar las encriptaciones.
De esta manera podremos saber todo lo que necesitamos saber para poder cifrar discos completos o particiones usando LUKS y haciéndolo directamente desde Linux, incluso cuando el sistema ya se está ejecutando, tendremos que tener cuidado con nuestras contraseñas, pero estaremos hablando de un sistema tremendamente seguro con cifrado de datos.
En estos casos, la seguridad prevalece sobre todo, pero puede que alguna otra herramienta nos permita ahorrar tiempo y costes. Algunas de las más reconocidas son las siguientes alternativas:
Knox
Ofrece un cifrado muy sencillo y con servicios de respaldo automático. Puede realizar copias de seguridad de uno o todos los sectores de los discos duros locales y los que el sistema operativo interprete como un almacenamiento. De esta manera podemos garantizar que los datos confidenciales estén completamente seguros. Por lo que es una de las distintas alternativas Luks que se deben tener en cuenta.
FinalCrypt
Se trata de uno de los más seguros de todos. Su cifrado se llama «One Time Pad», y cuenta con una interfaz gráfica que hace que sea más accesible para el usuario. Pero a pesar de ser sencillo, se trata de una opción muy completa para realizar grandes encriptaciones.
Hay que tener en cuenta que uso es muy sencillo, además de que estamos ante una alternativa de código abierto que está diseñada con la finalidad de aplicar un cifrado de una forma muy simple. Y sin duda es una opción que ayuda a proteger los archivos mediante algoritmos de cifrado que son robustos y completamente seguros.
Zed
Nos permite realizar una copia encriptada de nuestros archivos, en el correo electrónico, una memoria USB o en otras copias de seguridad. Su encriptación cuenta con varias soluciones profesionales certificadas. Lo que está claro es que es una aplicación de lo más profesional para que se puedan proteger los archivos o carpetas en cualquier momento. De esta forma, el intercambio de archivos será más segura que nunca, ya que se permite proteger los documentos con una clave secreta.
EDS
Esta herramienta es compatible con el contenedor TrueCrypt. Almacena los archivos en los contenedores cifrados para evitar los accesos no autorizados. Sin olvidar de que también soporta Veracrypt, Luks y formatos encfs. Por lo que es una de las características que se deben tener en cuenta de esta alternativa en particular. Además de que se pueden usar todo tipo de funcionalidades, entre ellas, la de compartir (enviar a otros usuarios) con tal de cifrar fotos de la galería o vídeos del reproductor multimedia. Y hay que tener en cuenta que es de código abierto si se quiere usar el contenedor TrueCrypt en EDS.
Symantec Drive
Utiliza la tecnología PGP, con un cifrado transparente para equipos portátiles, de escritorio y dispositivos extraíbles. Es una herramienta muy utilizada en el sector empresarial debido a sus múltiples beneficios y facilidad de implementación. Lo que está claro es que es una de esas aplicaciones que permite tener un cifrado completo de disco con un alto rendimiento para todo tipo de datos: archivos de usuarios, archivos de intercambio, archivos ocultos, etc.
este software en particular puede proteger los datos de una forma sólida, además de que da la opción de administrarlos de manera centralizada mediante Symantec Encryption Management Server. Por lo que simplifica en gran medida tanto la distribución como la generación de informes.