USB Cifrado entre Windows y Linux

CiberSeguridad 4 de jul. de 2024

Windows y el soporte de sistemas de ficheros

Windows es un sistema operativo que se mira sólo a si mismo y se cree que no existen otros sistemas operativos.

No tiene soporte nativo para ningún sistema de ficheros que no sea lo que usan ellos, al igual que pasa con el sistema MacOS de Apple.

No sucede así con GNU/Linux, en el que puedes usar casi cualquier sistema de ficheros incluso a pesar de las dificultades que van imponiendo Microsoft y Apple.

En el artículo anterior expliqué como proteger y cifrar dispositivos externos para poderlos usar entre equipos GNU/Linux

Proteger Dispositivos Externos
Riesgo ante pérdidas Ya sea porque tienes que llevar contigo de viaje un disco duro externo o un USB y este se puede extraviar o puede ser robado.O simplemente porque tienes que dejar almacenado en algún lugar cualquier dispositivo externo y quieres que los datos estén protegidos y no
USB protegidos y cifrados en GNU/Linux

Sin embargo los dispositivos cifrados con LUKS no se pueden leer desde Windows o MacOS, ya que no saben (o no quieren) dar soporte a otros sistemas de ficheros.

Windows de Microsoft y MacOS de Apple, cada uno de ellos, son un problema en si mismos y GNU/Linux la solución para ambos.

Dispositivo cifrado con Bitlocker

Como GNU/Linux puede leer todo, vamos a ver como podemos formatear y crear un USB protegido con Bitlocker en Windows y luego poderlo usar también en Linux.

En Linux usaremos el software Dislocker (clon de Bitlocker) para abrir, leer y escribir en el dispositivo sin ningún tipo de problema.

Cifrando con un Güindous

Escoge el dispositivo externo, USB o disco duro externo, que vayas a cifrar con Bitlocker. Localiza un equipo con Windows y lo primero formatea el dispositivo para que no tenga datos previos:

En el explorador de ficheros de Windows haz clic en Este equipo y localiza el dispositivo que acabas de formatear:

Botón derecho con el ratón y escoge la opción Activar BitLocker:

En la opción de como quieres desbloquear la unidad, selecciona Usar una contraseña, utiliza un contraseña robusta para proteger correctamente los datos:

Es obligatorio crear una copia de seguridad de la clave de recuperación, y sólo se puede guardar en un dispositivo que no esté cifrado o imprimirla:

Lo mejor es que generes un fichero PDF con la clave de recuperación:

A la hora de escoger que cantidad de la unidad quieres cifrar, selecciona Cifrar la unidad entera:

En la pregunta del modo de cifrado escoge Modo Compatible:

Con todas las preguntas respondidas, tan sólo tienes que pulsar sobre el botón Iniciar cifrado:

Windows se pondrá a cifrar el dispositivo...

Es horriblemente lento comparado con el cifrado LUKS de GNU/Linux, el mismo USB al cifrarse en Windows y en Linux, en Windows el proceso dura aproximadamente 10 veces más.

Problema de BitLocker en primeros usos y solución

Una vez que tengas el dispositivo externo cifrado, procede a Expulsarlo correctamente, vuelve a conectarlo y comprueba que lo puedes abrir y desproteger para su uso.

Crea o copia un fichero sencillo en el, por ejemplo un fichero TXT y cuando termines, procede a expulsar el USB.

Uno de los problemas de BitLocker, es que no haya finalizado o cerrado correctamente el disco cifrado, para asegurarte de ello, realiza de nuevo por segunda vez el conectar el USB a Windows, comprobar que puedes leer el fichero de prueba guardado en él y por ultimo vuelve a expulsar el dispositivo.

Ya tenemos preparado el dispositivo para usarlo cifrado en Windows.

Uso del dispositivo cifrado con BitLocker en Linux

Si navegaste por el blog, seguramente ya leíste el artículo en el que usábamos GNU/Linux para recuperar un PC Windows en el que le fallaba el inicio por BitLocker:

Recuperando discos y datos bajo Bitlocker
Un equipo con Bitlocker falla y no inicia El boot de un equipo con Windows que use bitlocker puede fallar y dejar inaccesible el equipo y sus datos. Causas que lo pueden provocar: Módulo TPM (Módulo de plataforma segura) averiado o se actualizó el firmware del dispositivo TPAM, o se

El proceso es similar, para usar un dispositivo cifrado con BitLocker en Linux simplemente usaremos las herramientas de Dislocker, lo primero será instalar el software si no lo tenemos instalado en nuestro equipo:

# Actualizamos datos de paquetes disponibles en el repositorio
sudo apt -y update

# Instalamos dislocker (el Bilocker para Linux)
sudo apt -y install dislocker libbde-utils

Automontaje en Linux mediante FUSE

Gracias a la magia de FUSE (FileSystem in User Space), nuestro GNU/Linux detectará en cuanto conectemos el USB que se trata de un dispositivo cifrado y nos pedirá la clave para desbloquearlo:

Tras escribir la contraseña y pulsar en Aceptar montará con permisos para nuestro usuario el disco externo listo para ser usado.
No puede ser más fácil

Automontado Dislocker mediante FUSE

Procedimiento manual de desencriptado y montaje

Si por algún motivo queremos realizar el montaje de forma manual, para desencriptar y usar el dispositivo BitLocker, las operaciones las vamos a tener que realizar con privilegios del usuario root:

Localizamos el dispositivo cifrado:

sudo lsblk -f


NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                         
├─sda1
│    vfat   FAT32       7B98-6F32                             293,6M     2% /boot/efi
├─sda2
│    ext4   1.0         bbacfaaf-c4f  564,4G    31% /
└─sda3
     swap   1     swap  c608951-81bd                [SWAP]
sdb                                                                         
└─sdb1
     BitLoc 2  
   
# El disco que pone BitLoc es el que usaremos => sdb1 !     

También podemos usar el comando dislocker-find:

sudo dislocker-find
/dev/sdb1

Usaremos 2 directorios para realizar el proceso de descifrado y montaje:

sudo mkdir /mnt/usb-cifrado
sudo mkdir /mnt/usb-abierto

Montamos el disco encriptado por Bitlocker (indicando la clave) y lo usaremos en modo escritura (evitamos usar --read-only)

# Montar dispositivo del disco (/dev/sdb1)
sudo dislocker -v --volume /dev/sdb1 --user-password=ClaveBitLocker -- /mnt/usb-cifrado

Es preferible por seguridad no incluir la clave y hacer que nos la solicite, es tan simple como usar el parámetro --user-password sin indicar nada y nos la solicitará:

dislocker -v --volume /dev/sdb1 --user-password -- /mnt/usb-cifrado

Enter the user password:

Con este comando obtenemos un fichero dislocker-file que es el dispositivo desencriptado.
Ahora para usar sus datos lo montamos mediante loop:

# Montamos dislocker-file (disco desencriptado)
sudo mount -o loop /mnt/usb-cifrado/dislocker-file /mnt/usb-abierto

Si queremos que nuestro usuario tenga permisos sobre esos datos (y no solo el usuario root), para trabajar normalmente desde nuestro escritorio Linux, podemos montarlo usando el UID y GID de nuestro usuario:

# Averiguamos nuestro uid y gid
id -u
 1000
 
id -g
 1000 

sudo mount -o loop -o uid=1000 -o gid=1000 /mnt/usb-cifrado/dislocker-file /mnt/usb-abierto


# Automatizandolo:
MiUID=$(id -u); MiGID=$(id -g)
sudo mount -o loop -o uid=$MiUID -o gid=$MiGID /mnt/usb-cifrado/dislocker-file /mnt/usb-abierto

Ahora podemos ya comprobar que podemos acceder a los datos del disco, con nuestro usuario:

# Listamos y comprobamos que vemos datos del disco
ls -l /mnt/usb-abierto/

Desmontando el dispositivo BitLocker desde Linux

En cuanto terminemos de usar el dispositivo cifrado, cerraremos todas las aplicaciones que estén usando los ficheros de ese directorio y ejecutaremos las siguientes instrucciones:

sudo umount /mnt/usb-abierto
sudo umount /mnt/usb-cifrado

Asegúrate desde el navegador de ficheros de Linux, que el dispositivo externo ha quedado también desmontado, expúlsalo simplemente con botón derecho y la opción Expulsar

De esta forma puedes tener datos cifrados y protegidos en dispositivos externos y poderlos compartir entre Windows y Linux.

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux