Tomb, el sepulturero criptográfico

https://www.dyne.org/wp-content/uploads/2011/11/github_tomb.jpg http://dyne.org/software/tomb | https://github.com/dyne/Tomb


Introducción

Tomb es un instrumento para la gestión simple de directorios cifrados bajo GNU/Linux. Su origen se remonta al efectivo sistema de Anidado ya presente desde las versiones 1.x del sistema operativo libre dyne:bolic.

Esta es una herramienta 100% libre y de código abierto enfocada a la portabilidad y respaldo de archivos personales. Su código está escrito de tal manera que puede ser revisado fácilmente además de que comparte elementos comúnes presentes en sistemas operativos libres.

Su mecanismo es simple pero efectivo: Tomb genera archivos cifrados de almacenamiento que se abren y cierran utilizando archivos-llave que son protegidos por contraseñas elegidas por los usuarios.

Una Tumba (Tomb) es similar a un directorio cerrado que puede ser transportado de manera segura y vuelta oculta en un sistema de archivos; sus archivos-llave pueden ser separados físicamente, por ejemplo como cuando dejas la tumba en el disco duro de tu computadora, y te llevas las llaves para abrirla en una memoria USB.

Documentación

Nota: los siguientes textos son una adaptación o traducción de la documentación disponible en el repositorio principal de Tomb. En edición permanente. Si quieres colaborar aparece en el canal #dyne de irc.dyne.org (SSL puerto 9999).

Instalación

Requerimientos

Tomb necesita algunos programas previamente instalados en un sistema para poder funcionar:

  • zsh
  • sudo
  • gnupg
  • cryptsetup
  • pinentry-curses (and/or -gtk-2, -x11, -qt)

La mayoría de los sistemas ofrecen estas herramientas en su colección de paquetes. En Debian/Ubuntu por ejemplo se puede utilizar apt-get install. En Fedora y en CentOS se puede utilizar yum install, y en Arch pacman es la opción.

Instalar

Para instalar Tomb simplemente descarga la fuente principal publicada (el archivo tar.gz) desde la dirección https://files.dyne.org/tomb y descomprimela. Puedes hacer algo similar a lo siguiente desde la terminal:

    cd Descargas (suponiendo que es en este directorio donde descargaste el archivo)
    tar xvfz Tomb-2.2.tar.gz (corrige esto colocando el nombre actual del archivo)

Luego entra en este directorio y ejecuta 'make install' como administrador (con sudo o como root), lo cual instalará Tomb dentro del directorio /usr/local. Desde la terminal esto seguiría un proceso como el siguiente:

    cd Tomb-2.2 (corrige esto colocando el nombre correcto del directorio)
    sudo make install

Luego de la instalación se puede leer la ayuda disponible en la linea de comandos o leer el manual:

    tomb -h     (imprime en la terminal una breve ayuda)
    man tomb    (muestra completo el manual de uso)

Instalar complementos

Tomb ofrece una variedad de herramientas adicionales que contribuyen a mejorar su funcionalidad o integrar el programa a situaciones específicas de entornos de sistema.

extras/gtk-tray

El indicador Gtk agrega una atractiva calaverita a la barra de herramientas del escritorio y se puede usar para cerrar y explorar las tumbas abiertas.

Si pinentry-gtk-2 está presente en el sistema, agrega también una pequeña calaverita en la entrada de la contraseña, muy util para no confundirse con otros tecleos de contraseñas.

Para instalarla cambiate al directoruo extras/gtk-tray y luego continua con el siguiente orden:

  1. asegurate que los paquetes dev libnotify y gtk+-2.0 están presentes
  2. ejecuta make dentro del directoruo para construir tomb-gtk-tray

  3. ejecuta sudo make install (el PREFIX predeterminado es /usr/local)

  4. inicia tomb-gtk-tray tombname luego de que abras una tumba

También se puede incluir el lanzamiento de los scripts tomb-gtk-tray.

extras/qt-tray

El indicador QT agrega una señalización en las barras de herramientas de escritorios QT. Requiere de las versiones 5.4 o superiores de las librerias QT. Se construye con 'qmake' y luego con 'make'.

extras/kdf-keys

El envolvente KDF permite utilizar rondas KDF en las contraseñas para dificultar ataques de diccionario y de otro tipo de fuerza bruta.

En caso de que tanto el archivo de tumba y su llave caigan en posesión de un atacante, las contraseñas que sean faciles de memorizar pueden ser descubiertas intentando rápidamente diferentes combinaciones. Con KDF cada intento requeriría un significativo trabajo computacional que reduciría el proceso evitando ciclos muy cerrados, lo que de hecho hace este tipo de ataques muy onerosos y prácticamente imposibles.

Para instalar esta característica entra al directorio extras/kdf-keys y luego sigue este procedimiento:

  1. asegurate que los paquetes dev libgcrypt están disponibles en el sistema
  2. ejecuta make dentro del directorio para construir los ejecutables tomb-kdb-*

  3. ejecuta sudo make install (el PREFIX predeterminado es /usr/local)

  4. utiliza --kdf 100 cuando estés forjando tu llave (ajusta en numero según tu cpu)

Las llaves KDF son automáticamente reconocidas por Tomb, por lo que siempre se necesitará que el programa extras/kdf-keys esté instalado en tu máquina para que Tomb pueda abrir los archivos.

Es importante observar que no tiene sentido utilizar llaves KDF junto con la estenografía, ya que esta última puede invalidar la protección contra ataques de fuerza bruta. Para detalles sobre esto ver el archivo KNOWN_BUGS.

extras/translations/

Existen varias traducciones disponibles para Tomb y se instalan automáticamente. Si quieres actualizarlas manualmente navega hasta el directorio 'extras/po' y ejecuta 'make install' como root:

 cd extras/translations
    sudo make install

extras/gtomb/

Este es una interfaz de usuario minimalista escrita en ZSh y que depende de Zenity para mostrar las cajas de diálogo. Cubre todas las operaciones básicas de Tomb y facilita la configuración de los ganchos.

 cd extras/gtomb
  ./gtomb

Soporte para otras aplicaciones

¿Puede Tomb ser usado por otras aplicaciones?

Claro que se puede! Considerando la licencia GNU GPLv3+ Tomb ofrece salidas legibles para la máquina e interacciones via algunas flags:

         flag   | función
--------------- | ------------------------------------------------
 --no-color     | evita el coloreado de color para permiter el parseo
 --unsafe       | permite opciones de contraseña y llaves en plano desde stdin
 --tomb-pwd     | especifica la llave como argumento
 --tomb-old-pwd | especifa la antigua llave como argumento
 -k cleartext   | lee la llave sin encriptar desde stdin

Por favor considera que estas flags introducen vulnerabilidades y si existiesen otras personas conectadas en el mismo sistema pueden fácilmente registrar tus contraseñas mientras estos comandos son ejecutados. Solamente recomendamos el uso de pinentry para la entrada de contraseñas.

Python

La envoltura de Python está bajo desarrollo y aunque es posible utilizarla introduce algunas vulnerabilidades como las anteriormente mencionadas. La envoltura python se puede encontrar en el directorio extras/tomber. Para más información ver extras/PYTHON.md.

Aplicaciones gráficas

Hasta el momento la única aplicación gráfica con soporte para volumenes cifrados Tomb es ZuluCrypt. Se necesita activar el plugin para Tomb incluido en su código fuente y con eso te permitirá crear, abrir y cerrar tumbas. Puede ser que pierda algunas funcionalidades avanzadas de Tomb que solamente están disponibles via línea de comandos.

Avisanos!

Si planeas desarrollar cualquier envoltura para Tomb eres bienvenida para compartir con nosotras. La idea de Tomb es mantenerla como herramienta minimalista que pueda ser compatible a largo tiempo con el manejo de algo tan delicado como nuestros secretos. Para cualquier otra cosa nos atenemos a tu propia iniciativa.

Feliz hacking! ;^)


Utilización

Uso básico

Una vez terminada la instalación se puede proceder a crear una tumba (archivo tomb), por ejemplo siguiendo los siguientes pasos:

    tomb dig -s 10 secretos.tomb      (cava una tumba de 10MB, ten paciencia)
    tomb forge -k secretos.tomb.key    (ten paciencia y sigue las instrucciones para forjar la llave)
    tomb lock  -k secretos.tomb.key secretos.tomb  (con esto aseguras que la llave pueda cerrar-abrir la tumba)

Cuando este proceso concluya la tumba puede ser abierta con:

    tomb open -k secretos.tomb.key secretos.tomb

El archivo que funciona para abrir y cerrar la tumba puede también ser escondida dentro de una imágen para ser usada posteriormente como llave.

    tomb bury -k secretos.tomb.key coatlicue.jpg
    tomb open -k coatlicue.jpg secretos.tomb

También puedes respaldar tu llave generando un código QR que pueda ser impreso en un papel para por ejemplo resguardarlo dentro de un libro. Los códigos QR pueden ser escaneados con cualquier dispositivo móvil, lo que daría como resultado un bloque de texto que luego puede ser usado con la opción '-k' como cualquier otra llave.

    tomb engrave -k secretos.tomb.key  (también funciona con una imagen)

Hay más cosas que una tumba puede hacer por tí. Por eso te sugerimos leer atentamente las páginas del manual y la ayuda disponible en la línea de comandos.

Ganchos

Amarrando ganchos

El archivo de ancla o gancho (hook) es muy útil para montar directorios específicos ubicados dentro de la tumba, a colocarse dentro del directorio personal de cada usuario (home)

Imagina que lo que quieres es guardar de modo seguro dentro de tu tumba algunos directorios que normalmente se encuentran ubicados dentro de tu directorio personal, y que debido a ello deben estar exactamente en su lugar. Por ejemplo los directorios Mail y el subdirectorio "secretos" ubicado dentro de Documentos.

Los ganchos anclados te ayudan a solucionar este problema. Tan sólo tienes que mover esos directorios dentro de la raíz de la tumba y luego crear un archivo que se llame "bind-hooks", el cual deberá estar ubicado en ese mismo lugar. Entonces deberás escribir dentro de ese archivo una tabla a dos columnas siguiendo el modelo siguiente:

 correo Mail
 secretos Documentos/secretos

Como puedes observar, en la primera columna se indican las rutas relativas a la tumba y en la segunda columna se indican las rutas relativas a tu directorio personal Home. Toma en cuenta que previamente deberás crear los directorios en la ruta a la que quieras sean montados, en este caso el directorio "secretos" fue creado previamente.

De esta manera cada vez que abras tu tumba, los directorios serán montados en el lugar correcto, es decir, en el lugar que indicaste en las segunda columna.

Ganchos dinámicos

Otra manera de utilizar los ganchos es mediante archivos de consola o de ejecutables binarios a ser lanzados al abrirse la tumba.

Supongamos que lo que necesitas es que cada vez que abras tu tumba, también se abra el archivo "mis-tareas-por-hacer.txt", guardado dentro de la raíz de tu tumba. Para ello deberás crear un archivo que nombrarás "post-hooks", guardado también en la raíz de la tumba, y con el siguiente contenido:

 #!/bin/sh

 <tu editor de texto preferido> mis-tareas-por-hacer.txt

Ayuda

Vía línea de comandos

Desde la consola puedes teclear tomb -h y obtener una rápida y compacta guía de ayuda sobre el uso general de Tomb.

Tomb 2.2 - un poderoso y amable sepulturero para tus secretos

 Copyright (C) 2007-2015 Dyne.org Foundation, Licencia GNU GPL v3+
   Esto es software libre: eres libre de modificarlo y redistribuirlo
   Para actualizaciones del código fuente visita <http://dyne.org/software/tomb>


Syntaxis: tomb [opciones] comando [argumentos]

Comandos:


Creación

 dig        crear un nuevo ARCHIVO de TUMBA del tamaño -s en MB
 forge      crea un nuevo archivo de LLAVE (key) con su respectiva contraseña
 lock       instala un candado en una TUMBA para usarla con la LLAVE 


Operaciones con tumbas

 open       abre una TUMBA. Abre un archivo tomb ya existente
 index      actualiza el indice de búsquedas de tumbas
 search     busca nombres de archivo en base a patrones de texto
 list       lista tumbas o archivos tomb abiertos y ofrece información sobre ellas
 close      cierra una tumba específica (o cierra todas utilizando 'all')
 slam       cierra inmediatamente una tumba y mata todos los programas que la utilizen
 resize     redimensiona una tumba al nuevo tamaño indicado con -s (sólo puede aumentar de tamaño)


Operaciones con llaves

 passwd     cambia la contraseña de la llave de alguna tumba (requiere la antigua contraseña)
 setkey     cambia la LLAVE (key) que bloquea una tumba (requiere la llave antigua y su contraseña)



Respaldo en papel

 engrave    genera un código QR code de una llave para que pueda ser impresa en papel


Esteganogradía

 bury       esconde una llave dentro de una imagen JPEG (para ser usado con -k)
 exhume     extrae una llave de una imagen JPEG (lo imprime a stout)


Opciones:

 -s     indica el tamaño del archivo tomb durante su creación/redimensión (en MB)
 -k     ruta a la llave a utilizar para abrir una tumba (con '-k -' se lee desde stdin)
 -n     no procesa los ganchos encontrados en la tumba
 -o     opciones especiales para montaje (por default: rw,noatime,nodev)
 -f     forza una operación (i.e. aunque swap se encuentre activo)
 -h     muestra esta ayuda
 -v     sobre la versión de la herramienta
 -q     se ejecuta silenciosamente sin mostrar información
 -D     muestra información (debugging) del proceso durante el arranque 

Para más información sobre Tomb leer el manual: man tomb
Favor de reportar bugs en <http://github.com/dyne/tomb/issues>.


(...)

TombEs (last edited 2016-01-03 04:58:25 by vlax)