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
tomb
y 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.tomb
NOTA: Se utiliza la opción
-f
para forzar la operación, ya que al no tener una partición (o archivo) swap encriptado,tomb
lanza 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 stop
Luego 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-dist
NOTA: 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 END
Luego 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-fab1d7bb895c
o sea, si se ordenan de forma decreciente los archivos por tamaño y se aplica el comando
file
a los primeros es posible encontrar fácilmente los archivos tomb.