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:
Y lo mismo con tor (debemos dejar lanzado el cliente):
Software cliente para enviar y recibir archivos:
Software servidor que pone a disposición de los usuarios los posts:
Herramienta para generar los tokens hashcash requeridos para enviar mensajes a repservers.
Mandando un mensaje
Para postear un fichero:
como respuesta recibiremos una salida como esta:
Y simplemente facilitando la dirección a alguien debería tener acceso al post:
Luego, si queremos usar la funcionalidad 'post-box' manteniendo la misma clave privada, primero debemos generarla:
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:
Ponemos la clave privada creada anteriormente y recibimos un par de claves asimétricas:
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:
Después para listar lo mensajes enviados con esa clave puedes usar:
Instrucciones para montar el servidor y ayudar a la red Repbin y más información en:
https://github.com/repbin/repbin
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
Publicar un comentario