Bitmessage

Una alternativa al correo electrónico tradicional, es Bitmessage. Es un protocolo inspirado en BitCoin, que pretende resolver el problema de la utilización de un servidor de correo por un lado y, por otro, la privacidad en la comunicación entre dos usuarios.

Nació en noviembre del 2012, con licencia MIT. Tras las denuncias de espionaje masivo efectuadas por Edward Snowden, en junio del 2013, su utilización se disparó, multiplicándose por cinco las descargas de este software.

La idea es la siguiente:

  • Creamos una red P2P anónima, que los usuarios van a utilizar para enviar sus mensajes.
  • Los usuarios van a poder crear diferentes identidades (desaparece el concepto de cuenta), que constará de una clave pública, con la que se cifrará el mensaje, y su correspondiente clave privada, para poder descifrarlo. Estas claves son compatibles con las utilizadas por BitCoin.
  • Los mensajes cifrados completamente (en el correo tradicional solo se cifra el mensaje y los archivos adjuntos), incluyendo emisor, receptor, asunto y, por supuesto, el mensaje, se copia a la red P2P, junto con los mensajes del resto de usuarios. Todos los mensajes pasarán por todos los clientes (nodos). El mecanismo para saber si un mensaje es nuestro o no, es sencillo: Si podemos descifrarlo, el mensaje es nuestro.
  • Los mensajes se almacenan cifrados en los nodos que componen la red P2P.

El hecho de que todos los mensajes estén en la red P2P y tengan que pasar por todos los clientes, complica mucho el conocer quién envía un mensaje y a quién se lo envía. Además, el coste de la red, está repartido entre todos los clientes. Los mensajes circularán por la red un período de dos días y, si no hay acuse de recibo (el receptor no lo ha recibido en este tiempo), podemos volver a enviarlo.

Si un nodo se añade a la red, solo puede descargar y difundir la cola de mensajes con una antigüedad inferior a dos días.

Una curiosidad del protocolo, es la posibilidad de “suscripción a una identidad”. Cuando enviamos un mensaje podemos enviarlo a un destinatario o al Broadcast. Si se envía al Broadcast, el mensaje le llegará a todos los suscriptores de esa identidad.

Basándose en esto, disponemos de un tipo de identidad especial: las pseudo-listas de correo. Cuando un mensaje se envía a una pseudo-lista, ésta lo reenvía al Broadcast, llegando a todos los suscriptores. Cualquier identidad puede enviar mensajes a las pseudo-listas, aunque no esté suscrita a ella

El problema de estas pseudo-listas es que, al ser una identidad, el propietario de la misma, debe tener su cliente conectado (los mensajes solo permanecen en la red dos días). Esto rompe, de alguna manera, la idea de descentralización del servicio.

Para solucionar el problema anterior, a partir de la versión 0.3.5, se incluyen los Chans. Son listas de correos distribuidas, con un funcionamiento particular. A diferencia del resto de identidades, la clave pública de los Chans no se publica en la red.

Cuando creamos un Chan, debemos darle un nombre, que será sensible a mayúsculas/minúsculas. Este nombre lo necesitarán aquellos que quieran suscribirse.

Una vez creado el Chan, ya disponemos de su clave pública y privada. Aquellos que quieran suscribirse, deben especificar la identidad y su nombre. Hecho esto, ellos también dispondrán de su clave pública y privada.

A diferencia de las listas de correo tradicionales, los Chans no pueden cerrarse eliminando uno o varios servidores: Su naturaleza es totalmente descentralizada.

Además, cuando alguien escribe en un Chan puede (y es la idea) hacerlo con la identidad del Chan. Haciendo esto, no es posible saber quién ha escrito el mensaje, añadiendo un anonimato que no existe en las listas tradicionales. Por supuesto, también podemos escribir en el Chan con alguna identidad nuestra, si queremos dejar constancia de quién ha enviado el mensaje.

Aunque el protocolo ha ido ganando reputación,  ya que parece que está fuera del alcance de agencias de espionaje, como la NSA, necesita una auditoría independiente que certifique la seguridad del mismo.

Además, aunque en su presentación y su WhitePaper parece resuelto el problema de escalabilidad, habría que ver cómo se comporta si hubiese una utilización masiva de este servicio.

Por otra parte, aunque Bitmessage ofrece un alto grado de anonimato, los clientes añaden la opción de poder acceder a la red a través de TOR, lo que aumenta significativamente el anonimato. Sin embargo, esto perjudica nuestra integración en la red, porque no vamos a poder permitir conexiones entrantes a nuestro nodo.

Aún así, es una aplicación muy curiosa del protocolo de Bitcoin para resolver el problema de la privacidad de los usuarios.

En el siguiente post os explicaré como instalarlo y usarlo. En todo caso, si no puedes esperar, los pasos para su instalación aquí 😉

2º Parte Bitmessage

@MMontesDiaz