Tomb, el sepulturero criptográfico
http://dyne.org/software/tomb | https://github.com/dyne/Tomb
Contents
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).
Tomb necesita algunos programas previamente instalados en un sistema para poder funcionar: 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.
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: 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: Luego de la instalación se puede leer la ayuda disponible en la linea de comandos o leer el manual:
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.
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: ejecuta make dentro del directoruo para construir tomb-gtk-tray ejecuta sudo make install (el PREFIX predeterminado es /usr/local) inicia tomb-gtk-tray tombname luego de que abras una tumba También se puede incluir el lanzamiento de los scripts tomb-gtk-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'.
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: ejecuta make dentro del directorio para construir los ejecutables tomb-kdb-* ejecuta sudo make install (el PREFIX predeterminado es /usr/local) 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.
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:
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.
¿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: 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.
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.
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.
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! ;^)
Una vez terminada la instalación se puede proceder a crear una tumba (archivo tomb), por ejemplo siguiendo los siguientes pasos: Cuando este proceso concluya la tumba puede ser abierta con: 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. 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. 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.
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: 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.
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:
Desde la consola puedes teclear tomb -h y obtener una rápida y compacta guía de ayuda sobre el uso general de Tomb. (...) Instalación
Requerimientos
Instalar
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)
cd Tomb-2.2 (corrige esto colocando el nombre correcto del directorio)
sudo make install
tomb -h (imprime en la terminal una breve ayuda)
man tomb (muestra completo el manual de uso)
Instalar complementos
extras/gtk-tray
extras/qt-tray
extras/kdf-keys
extras/translations/
cd extras/translations
sudo make install
extras/gtomb/
cd extras/gtomb
./gtomb
Soporte para otras aplicaciones
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
Python
Aplicaciones gráficas
Avisanos!
Utilización
Uso básico
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)
tomb open -k secretos.tomb.key secretos.tomb
tomb bury -k secretos.tomb.key coatlicue.jpg
tomb open -k coatlicue.jpg secretos.tomb
tomb engrave -k secretos.tomb.key (también funciona con una imagen)
Ganchos
Amarrando ganchos
correo Mail
secretos Documentos/secretos
Ganchos dinámicos
#!/bin/sh
<tu editor de texto preferido> mis-tareas-por-hacer.txt
Ayuda
Vía línea de comandos
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>.