Repbin, un pastebin cifrado desde la línea de comandos que funciona sobre Tor

Repbin es una especie de pastebin enfocado a la privacidad (cifra los mensajes) y al anonimato (padding y repost chains). Los servidores Repbin forman una red distribuida donde los nodos sincronizan posts entre sí (parecido a Usenet o BBS/Fido), lo que le hace más resistente y escalable.
 

Además, para limitar el spam y evitar ataques de denegación de servicio utiliza el algoritmo Hashcash (os sonará de Bitcoin) que básicamente es un método en el que se añade información extra al encabezado del mensaje para probar que el emisor legítimo ha invertido una cierta capacidad de cálculo para enviarlo.

Sus características son:

- Cifrado seguro de mensajes utilizando DHE-curve25519. Una clave que ha sido comprometida después de un tiempo largo no permite descifrar los mensajes viejos.
- Protección de la integridad de los mensajes utilizando HMAC-SHA256, para asegurarse de que los mensajes no han sido manipulados.
- Confidencialidad de los mensajes utilizando AES256-CTR. Nadie puede leer el post sin la clave del destinatario.
- Todos los mensajes se rellenan con un mismo tamaño (padding). Eso significa que los mensajes no se distinguen por su tamaño cuando se buscan "on the wire".
- Los mensajes publicados se replican entre todos los servidores de la red Repbin.
- Claves de receptor constantes opcionales para la funcionalidad de "buzón de mensajes".
- Atributos de la clave de receptor para la sincronización y autenticación del buzón de entrada de mensajes.
- Control de recursos a través de hashcash (SHA256) y ed25519.
- Algo de protección de la privacidad mediante el uso de Tor para todas las comunicaciones y las claves temporales.
- Y otras "golosinas" no documentadas


Instalación

Si no tienes go >= 1.4 en tu distribución Linux:

$ sudo apt-get install golang
$ mkdir $HOME/work
$ export GOPATH=$HOME/work

$ export PATH=$PATH:$GOPATH/bin

Y lo mismo con tor (debemos dejar lanzado el cliente):

$ sudo apt-get install tor
$ tor

Software cliente para enviar y recibir archivos:

go get -u github.com/repbin/repbin/cmd/repclient

Software servidor que pone a disposición de los usuarios los posts:

go get -u github.com/repbin/repbin/cmd/repserver

Herramienta para generar los tokens hashcash requeridos para enviar mensajes a repservers.

go get -u github.com/repbin/repbin/cmd/reptoken

Mandando un mensaje

Para postear un fichero:

vmotos@kali:~$ cat prueba.txt | repclient

como respuesta recibiremos una salida como esta:

Pastebin Address:    http://2n4dz35mlptg2ysb.onion/4Vm2hxss7AmpgVAwtBEL5H7EWQZmNVcoGvQayGxAbPQe_B6DAuyooexSaqeccyEBynqSP9dxjLEjzTW1HWixjbW3w

Y simplemente facilitando la dirección a alguien debería tener acceso al post:

vmotos@kali:~$ repclient http://2n4dz35mlptg2ysb.onion/4Vm2hxss7AmpgVAwtBEL5H7EWQZmNVcoGvQayGxAbPQe_B6DAuyooexSaqeccyEBynqSP9dxjLEjzTW1HWixjbW3w

Esto es una prueba para el blog hackplayers.com.

Luego, si queremos usar la funcionalidad 'post-box' manteniendo la misma clave privada, primero debemos generarla:

vmotos@kali:~$ repclient --genkey
PRIVATE key: GT37fqR2hwo5JwLuEbqi55k5jAUSEVgEeaXcSd4Qzd2b

Por supuesto, nunca jamás debéis compartir esta clave con nadie. Tiene que ser mantenida en secreto.


A continuación, por cada persona que quieras comunicarte, tienes que crearle una clave temporal:

vmotos@kali:~$ repclient --gentemp
Private key(s): 

Ponemos la clave privada creada anteriormente y recibimos un par de claves asimétricas:

PRIVATE key: GT37fqR2hwo5JwLuEbqi55k5jAUSEVgEeaXcSd4Qzd2b_BsXNonAWrWczD6ApZiL7wMoFjkj8TUXd1o9ENgXpHFQw

Public key: 5TAd1ZU31h4Gtr9RcyQrYdkpCjCFuJMSxCnkHm3jGUKj_3gPtLRbkUgVv4WYiSZw9mrBziqQjsCLrsbkNgFZRZJen

La clave pública se puede dar a la parte que nos envía el mensaje y tendremos que mantener la clave privada. Ojo que si la perdemos, perderemos también el acceso a todos los mensajes cifrados con la misma.

El remitente debe usar así la clave pública para enviar mensajes:
vmotos@kali:~$ cat prueba.txt | repclient -recipientPubKey="5TAd1ZU31h4Gtr9RcyQrYdkpCjCFuJMSxCnkHm3jGUKj_3gPtLRbkUgVv4WYiSZw9mrBziqQjsCLrsbkNgFZRZJen"
Pastebin Address:    http://2n4dz35mlptg2ysb.onion/7hvucRwx3nPjSvMHJw3vA6eLRMWXmJKGe8Fmfj2uzZNX

Después para listar lo mensajes enviados con esa clave puedes usar:
vmotos@kali:~$ repclient -index -privkey="GT37fqR2hwo5JwLuEbqi55k5jAUSEVgEeaXcSd4Qzd2b_BsXNonAWrWczD6ApZiL7wMoFjkj8TUXd1o9ENgXpHFQw"

Instrucciones para montar el servidor y ayudar a la red Repbin y más información en:

https://github.com/repbin/repbin

Comentarios