En lo que sigue se intenta mejorar la seguridad de los archivos descargados mediante Dropbox a un PC, de tal forma que si un adversario tiene acceso al disco duro los archivos no son accesibles.
Se supone que se tiene permisos de administrador en el PC y que el disco no posee una encriptación completa.
Programa tomb
tomb es un programa utilizado para encriptar archivos en linux.
De la página del manual:
Tomb generates encrypted storage files to be opened and closed using their associated keys, which are also protected with a password chosen by the user.
También en la página del manual se indica, en los ejemplos, como utilizarlo.
Hay que notar que tomb tiene dos tipos de hooks: bind-hooks y exec-hooks.
Los bind-hooks, como su nombre lo indica, son utilizados para montar
(utilizando la opción bind de mount) en el directorio $HOME del usuario
archivos y directorios al abrir el archivo tomb. Los directorios a montar se
indican mediante el archivo bind-hooks que se encuentra en la raiz del tomb.
Con abrir el archivo tomb se hace referencia a montar el archivo encriptado en
un directorio para que se accesible.
Por otro lado, los exec-hooks son scripts que deben ser ejecutables y en
contrarse en la raíz del tomb y que reciben el parámetro open o close,
según se esté montando o desmontando el archivo encriptado.
Uso con Dropbox
Para proteger los archivos descargados mediante Dropbox se debe configurar
adecuadamente tomb.
Para ello se debe crear un archivo contenedor mediante los comandos dig,
forge y lock de tomb como se indica en el manual.
NOTA: Para realizar los pasos siguientes se supone que se tiene instalado el
cliente de Dropbox mediante el paquete nautilus-dropbox o caja-dropbox y
que ya hay archivos sincronizados en el disco.
-
Se crea el archivo a utilizar con
tomby se le asocia una clave. Se elige como tamaño de archivo 6GB ya que es el tamaño máximo de una cuenta gratuita (por defecto) de Dropbox:$ mkdir -p ~/graveyard $ tomb dig -s 6144 ~/graveyard/dropbox.tomb $ tomb forge -f ~/dropbox.tomb.key $ tomb lock -k ~/dropbox.tomb.key ~/graveyard/dropbox.tombNOTA: Se utiliza la opción
-fpara forzar la operación, ya que al no tener una partición (o archivo) swap encriptado,tomblanza warnings respecto a la falta de seguridad de la configuración.En mi caso particular practicamente no se está utilizando la swap (
free -h) y estoy en duda de encriptar la partición swap ya que utilizo un disco SSD, por lo que por ahora se ignora el aviso de tomb. -
Se copian los archivos de Dropbox al tomb.
Primeramente se detiene el cliente de Dropbox para evitar problemas al mover los archivos:
$ dropbox stopLuego se mueven los archivos y directorios relacionados a Dropbox:
$ tomb open -f -k ~/dropbox.tomb.key ~/graveyard/dropbox.tomb /run/media/$USER/dropbox $ mv ~/Dropbox /media/dropbox/ $ mv ~/.dropbox /media/dropbox/_dropbox $ mv ~/.dropbox-dist /media/dropbox/_dropbox-distNOTA: No se desea copiar los directorios ocultos utilizados como tales dentro del tomb, sinó que se los quiere hacer visibles por defecto utilizando
_en lugar de.como prefijo del nombre.Es necesario volver a crear los directorios movidos para utilizar como puntos de montaje al abrir el archivo tomb:
$ mkdir ~/Dropbox ~/.dropbox ~/.dropbox-dist -
Configurar Dropbox para que no inicie cuando se loguea un usuario, ya que hasta no abrir el archivo tomb no se tiene acceso a los archivos utilizados por Dropbox:
Mediante la interfaz gráfica del cliente de Dropbox, deshabilitar en Preferencias... la opción Start Dropbox on system startup para evitar que se inicie el cliente de Dropbox y muestre un diálogo sugiriendo que nos logueemos para sincronizar los datos.
-
Se crean los hooks a utilizar por tomb:
Primero el bind-hooks para montar automaticamente mediante bind mount los directorios utilizados por el cliente de Dropbox en el
$HOME.$ cat > /media/dropbox/bind-hooks <<END Dropbox Dropbox _dropbox .dropbox _dropbox-dist .dropbox-dist ENDLuego el exec-hooks para iniciar o terminar el cliente de Dropbox cuando se abre o cierra el archivo tomb:
$ cat > /media/dropbox/exec-hooks <<END #!/bin/sh if [ "$1" = open ]; then dropbox start 1>/dev/null 2>&1 elif [ "$1" = close ]; then dropbox stop fi END $ chmod +x /media/dropbox/exec-hooks
Conclusiones
tomb es útil para encriptar datos particulares de programas y almacenarlos en
dispositivos usb o archivos en el filesystem como alternativa a utilizar una
partición totalmente encriptada.
Lo que no me da buen olfato es agregar permisos de sudo mediante una linea de
la forma:
username ALL=NOPASSWD: /usr/bin/tomb
en /etc/sudoers como se indica en el manual, por lo que solo le encuentro
utilidad en sistemas en los que se tengan priviliegios de administrador
utilizando sudo - digase la PC personal y con suerte la PC del trabajo.
También es de hacer notar que los datos no están ocultos:
-
Se puede encontrar en la historia del shell los parámetros de los comandos utilizados por tomb. Si bien es cierto que anteponiendo un espacio el comando no se guarda en el historial, es posible que por error se hayan omitido alguna vez y no se haya borrado ese comando del historial.
-
El tipo de archivo utilizado por tomb no está oculto:
$ file ~/graveyard/dropbox.tomb /home/<user>/graveyard/dropbox.tomb: LUKS encrypted file, ver 1 [aes, xts-plain64:sha256, sha256] UUID: 2126e723-ee60-4a9b-a9c6-fab1d7bb895co sea, si se ordenan de forma decreciente los archivos por tamaño y se aplica el comando
filea los primeros es posible encontrar fácilmente los archivos tomb.