This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

trustword: Un pequeño programa para cifrar, firmar y el mantenimiento de claves

  • 3 Replies
  • 2148 Views

0 Members and 1 Guest are viewing this topic.

Online DtxdF

  • *
  • Moderador Global
  • Posts: 1123
  • Actividad:
    100%
  • Country: 00
  • Reputación 27
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • View Profile
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email
Trustword es un programa muy simple para la firma, el cifrado y el mantenimiento de claves para facilitar y fortalecer una comunicación segura. Usa internamente (gracias a You are not allowed to view links. Register or Login) para el cifrado XSalsa20, y en el caso de la criptografía asimétrica, se complementa con el intercambio de claves X25519. Y para la firma digital Ed25519ph con SHA512. En el caso del almacenamiento de contraseñas usa You are not allowed to view links. Register or Login.


Dependencias:

Usando el gestor de paquetes de nuestro sistema, podremos instalar las siguientes dependencias que harán funcionar a trustword:

  • gcc (recomendado) o clang (no probado)
  • cmake
  • openssl
  • libsodium
  • argon2
  • sqlite3

Arch Linux:

Code: (bash) You are not allowed to view links. Register or Login
sudo pacman -S base-devel cmake openssl libsodium argon2 sqlite3
Debian:

Code: (bash) You are not allowed to view links. Register or Login
sudo apt-get install libssl-dev libsqlite3-dev libsodium-dev libargon2-dev cmake make gcc
FreeBSD:

Code: (bash) You are not allowed to view links. Register or Login
doas pkg install gcc cmake openssl libsodium libargon2 sqlite3
Instalación:

Ya habiendo instalado las dependencias correspondientes para nuestro sistema, es hora de realizar la instalación:

Code: (bash) You are not allowed to view links. Register or Login
git clone https://github.com/UltraTesla/trustword.git
cd trustword
chmod +x dependences.sh
./dependences.sh
sudo chown <Tu nombre de usuario>:<Tu grupo> ~/.trustword
trustword --help

Tutorial:

Antes que nada es necesario generar nuestro par de claves, o en otras palabras, la clave pública, la secreta, la del firmado, y la de verificación. Afortunadamente es tan fácil como ejecutar un comando con la información necesaria:

Code: (bash) You are not allowed to view links. Register or Login
trustword -g --user [Nombre de usuario] --password [Contraseña]
Recordando que si no se ajustara un nombre de usuario conveniente, trustword usaría el valor de la variable de entorno USER.


Resultado de generar las claves

Una vez generadas, es posible, nuevamente con un simple comando, visualizar todas las claves de nuestro sistema:

Code: (bash) You are not allowed to view links. Register or Login
trustword -l

Las claves que están en nuestro sistema

Algo peculiar de trustword es que no almacena los nombres de usuarios tal cual se escriben, más bien guarda la suma de verificación (SHA3_224(), específicamente) con el propósito de agregar un extra de confidencialidad. La contra de este método de almacenamiento es que se necesita conocer de antemano el nombre de usuario del remitente y del destinatario, por lo que podría dificultar el mantenimiento.

Pero qué mejor forma de demostrar lo que digo que importando la clave pública y de nuestro compañero @Kirari:


Code: (bash) You are not allowed to view links. Register or Login
trustword -i [Ruta de la clave] --hash [Huella dactilar]

Importando la clave de nuestro compañero

Una vez le compartimos nuestra clave pública (y de verificación, en caso de ser necesario) tendremos la posibilidad de comunicarnos de forma segura con la otra parte a tratar, pero primero hay que exportar nuestra clave pública correspondiente, ya sea en binario, o en formato hexadecimal (usando el parámetro -h), siendo este último una muy buena opción en caso de no poder distribuir la clave como un archivo.

Code: (bash) You are not allowed to view links. Register or Login
trustword -e --user [Nombre de usuario]

Exportando mi clave pública

Para importar una clave en trustword es necesario indicar, además de la clave, su huella dactilar. Una muy útil forma de verificar que la clave a importar sea la del usuario correspondiente y también verifica que no se haya modificado en el transcurso.

Una vez hecho el apretón de manos con nuestra otra parte, es posible cifrar.


Code: (bash) You are not allowed to view links. Register or Login
./trustword -C [Nombre del archivo a cifrar] --from [Nombre de usuario - origen] --to [Nombre de usuario - destino] --password [Contraseña de la clave secreta del usuario de origen]

Cifrando el mensaje para nuestro compañero

Tal vez surga la duda de por qué trustword necesita de la contraseña que usamos en la generación del par de claves. Pues es una sencilla cuestión: trustword almacena la clave secreta y de firmado cifrada para que un atacante al obtener la base de datos, en caso de un ataque, no pueda obtener su contenido.


Descifrando el mensaje de nuestro compañero

Siguiendo con el tema de cifrado. Si el usuario no desea generar su par de claves, está la posibilidad de usar el cifrado simétrico, lo cual implica que las dos partes sepan de antemano la contraseña para el cifrado y descifrado.

Code: (bash) You are not allowed to view links. Register or Login
./trustword -k [Nombre del archivo a cifrar] --password [Contraseña]

Vídeo:

Nuestro compañero @Kirari realizó un vídeo para el que desee ver una demostración visual de la herramienta:


~ DtxdF
Los seres humanos son robots, cuyo combustible es el afanado dinero.

Offline ???????

  • *
  • Underc0der
  • Posts: 242
  • Actividad:
    0%
  • Country: 00
  • Reputación 12
    • View Profile
Excelente tutorial y herramienta compañero, estaremos pendientes a nuevos cambios.   ;D

Es un gusto haber ayudado en la misma . :D

Saludos!
-Kirari

Online Gabriela

  • *
  • Co Admin
  • Posts: 1014
  • Actividad:
    0%
  • Country: 00
  • Reputación 22
  • A las personas se las conoce por sus heridas...
    • View Profile
    • Hirana: red de IRC
    • Email

@You are not allowed to view links. Register or Login
Excelente aporte!!!! para usar lejos de IRC. XD

Al malvado @You are not allowed to view links. Register or Login se agradece el video, pero ya me explicarás sobre big sister.

Estupendo trabajo, y contribución propia a la comunidad.

Saludos

Gabriela



Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Online DtxdF

  • *
  • Moderador Global
  • Posts: 1123
  • Actividad:
    100%
  • Country: 00
  • Reputación 27
  • Eres un auto y tienes dos opciones: Parar o Seguir
    • View Profile
    • Mi repositorio de Github donde encontraras herramientas para tu trabajo.
    • Email
Un placer @You are not allowed to view links. Register or Login y @You are not allowed to view links. Register or Login. Y muchas gracias a nuestro compañero por el vídeo.

~ DtxdF
Los seres humanos son robots, cuyo combustible es el afanado dinero.