miércoles, 24 de marzo de 2021

¿Cómo configuro el cifrado OMEMO con el cliente de chat Gajim en Ubuntu?

La década de 1960 encontró a Juan Perón detallando los desafíos que aguardaban a los Movimientos de corte popular que se erigían en el mundo. Sus epístolas refieren sobre cómo activar el cifrado de extremo a extremo OMEMO en el cliente de chat XMPP/Jabber Gajim en Ubuntu.

¡Compañeros!

Los Movimientos Populares - como lo es el Justicialismo - disponen de ventajas intrínsecas a la hora de la lucha estratégica. Cuando hace 18 años lanzamos nuestra Tercera Posición, el mundo superaba una conflagración de enormes proporciones. Pero los Pueblos no quedan inermes y hoy, tres cuartas partes del Mundo giran hacia nuestra Tercera Posición. El Asia y el África se observan en nuestro justo espejo y claman por una Liberación definitiva del software que nos torne a todos en hermanos, y en dignos destinatarios de los beneficios de nuestro propio trabajo.

Nuestros Movimientos deben - sin embargo - cobrar una muy especial precaución en la Conducción del estamento táctico. Esto es así pues los canales que debemos usar han necesariamente de considerarse dominados. Oscuros poderes de una sinarquía sin Patria ni bandera, coaligada a oligarquías locales, intentarán los más abyectos e inconfesables ardides para someter nuestro Software. Las vías de comunicación podrían constituírse en sus herramientas de dominación.

La telemática moderna permite una gran agilidad, que nos es necesaria para establecer enlaces veloces a través de las redes de datos. Pero de poco valdrán si lo hacemos a través de infraestructuras no neutras, dominadas por dicho Capital. Por demás, las redes sociales basadas en empresas son - hoy en día - una de las más perniciosas organizaciones, donde se las prevee con destino de lucro y como tal, deben ser combatidas con decisión y con una visión de Justicia Social. 

En particular, todo militante ha de saber y difundir que tales servicios no hacen más que someter a una esclavitud de datos, ya que no utilizan sistemas de cifrado ni aseguran el secreto de los mismos por una simple razón: su objetivo no es permitir la comunicación, sino es forzar a las Masas a comunicarse a través de infraestructura podrida.

En este aspecto es fundamental lograr la independencia de todos los servicios telemáticos que usemos, reemplazando enlaces del Capital por otros no sólo libres, pero sino también descentralizados.

Nuestro Movimiento dispone de herramental necesario para tal cometido. En el campo de la conversación telemática, ya he expuesto cómo obrar a través del internet relay chat o IRC. Este se basa en el concepto de salas o foros públicos o semi-privados, los cuales se establecen en un servidor remoto y al cual se accede con un cliente de ejecución local. Sin embargo, esta tecnología extensible puede ser complementada por otro medio, el XMPP, el Protocolo Extensible de Mensajería y Presencia, originalmente conocido como Jabber.

Este protocolo de mensajería instantánea basada en un modelo cliente-servidor, con información de perfil, y capacidad de almacenar lista de contactos. Gracias a esta base tecnológica, quien lo anhele podrá mantener un servidor propio, y logra una potente descentralización tendiente a una mayor capacidad organizativa. Podrá así suscribir una instancia identificada como JID en un servidor XMPP, la cual se podrá utilizar con el fin de establecer los enlaces de militancia y liberación.

Pero estas características no son más que el comienzo, y sólo elevan muy parcialmente al IRC tradicional. Sin duda el aspecto más fundamental hace pié en la posibilidad de incorporarle una capa de cifrado de punta a punta a las conversaciones, denominadas OMEMO. Es una encriptación de este tipo la que nos provee una condición indispensable, sin la cual nada bueno puede hacerse: la de conservar el secreto específico de la conversación a lo largo de toda la transmisión, y asegurar así el éxito real del enlace.

Para hacer uso de este protocolo de liberación os puedo recomendar el cliente de chat Gajim, capaz de correr en un sistema GNU con Linux. Si hacen uso de dispositivos móviles, bien podrán utilizar el Conversations con fundamental parecido.

Para instalar el cliente de chat Gajim, podremos hacer uso de la terminal abriendo una con Ctrl+Alt+t, e ingresaando en ella los comandos de organización necesarios. Primero desinstalamos la versión empaquetada con Ubuntu:

sudo apt remove gajim ;

El sistema nos solicitará nuestra contraseña y la desinstalará. Acto seguido, agregamos la llave y el repositorio de Gajim ingresando en nuestra terminal el siguiente bloque de Comandos de Organización:

wget -q https://gajim.org/gajim.key -O - | sudo apt-key add - ;
sudo sh -c "echo deb https://ftp.gajim.org/debian unstable main > /etc/apt/sources.list.d/gajim.list" ;
sudo apt update

Finalmente, instalaremos las dependencias requeridas y la versión más reciente de Gajim.

sudo apt install build-essential libssl-dev libffi-dev python3-dev python3-setuptools python3-cryptography python3-axolotl python3-qrcode ;
sudo apt install gajim-nightly ;
sudo apt install gajim-default-nightly

Ahora podremos ejecutar el cliente de chat desde Aplicaciones / Internet / Gajim.

La primera vez que iniciemos el programa, nos veremos en la posibilidad de Registrar una nueva cuenta con algún servidor libre que se nos ofrecerá , o bien introducir los datos de una cuenta que ya tengamos, informando en tal caso el usuario y contraseña del servidor XMPP/Jabber que utilicemos.

En mi caso debo introducir el usuario y la contraseña. También requiere oprimir el botón de Configuraciones Avanzadas e introducir los datos del host (requeridos por el servidor de Jabber en algunos casos).

Pues bien, una vez que nos conectemos con el servidor de XMPP/Jabber, se abrirá al instante el el cliente de chat.

En él se asociarán nuestras acciones y grupos de chat o IRC. Si tenemos varias cuentas de chat podremos agregar otras adicionales, usarlas de forma independiente entre ellas o integradas (condición que se puede configurar). 

Podremos crear conversaciones con contactos con Ctrl+n y/o crear grupos de charla (públicos o privados) mediante Ctrl+g.

Tanto los servicios de XMPP/Jabber como los foros de conversación tipo IRC, deben asumirse como públicos, y como tal inherentemente inseguros. Naturalmente, al menos el administrador del servicio podría acceder a ellas y a los envíos telemáticos intermedios. Sin embargo, esta práctica ya de por sí es mucho más segura que depender de una omnímoda empresa de la sinarquía para comunicarse.

Para evitar este inconveniente, nuestro Movimiento ha implementado el cifrado punta a punta OMEMO. Esta estrategia consiste en un plugin de cifrado y descifrado opcional, que debe acoplarse a nuestro cliente de conversación Gajim. El receptor de nuestros mensajes también deberá activarlo en su propio cliente si desea poder desencriptar nuestros mensajes.

Para activar el Plugin OMEMO en Gajin debemos abrir la ventana del Gestor de Extensiones presionando Ctrl+E. En la ventana Plugins haremos clic en la solapa Available ("disponibles"), lo cual nos presentará la lista de extensiones disponibles para descarga. Simplemente buscamos la extensión "OMEMO",  tildamos la opción Install, y presionamos el botón Install / Update.

La extensión debería descargarse y presentarse en la solapa Installed del Gestor de Plugins.

Conforme el plugin OMEMO esté instalado en nuestro cliente Gajim, podremos activar la encriptación opcionales para cada charla con un contacto  o grupos de charla (son distintas para cada instancia). En cualquier caso se realiza haciendo clic en el ícono del candado y tildando OMEMO. 

Pues bien señores, la primera vez que envíen un primer mensaje encriptado con OMEMO a uno de sus contactos - este Plugin solicitará las llaves de encriptación del referido contacto, y las presentará en nuestro propio cliente en una ventana de certificación denominada Fingerprint. Esto se realiza con el fin de gestionar el nivel de confianza de las Huellas Digitales de cifrado. Habremos de indicar confianza en al menos UNA de las Huellas Digitales para poder enviarle mensajes. 


Para establecer el nivel de confianza, debe hacerse clic en el botón en el escudo de confianza (al costado izquierdo de la huella digital) y elegir el nivel de confianza desde el menú:

Normalmente escogeríamos Thrusted ("confiada"), o Unthrusted ("desconfiada"). Si ya está confiada, podremos elegir elevar nuevamente el nivel de confianza al máximo escogiendo la opción Blind Thrust ("confianza ciega"). Debemos reservar este nivel máximo de confianza para los casos donde estamos absoluta y positivamente seguros - tal vez incluso a través de otros medios de comunicación - que el contacto es el usuario que dice ser y que estamos en contacto con él.

Es importante tener en cuenta que el nivel de confianza no implica "bloquear" a un contacto (ya que el bloqueo se realiza de la forma tradicional con clic derecho sobre el contacto / Bloquear). Se podrá recibir mensajes desde las Huellas que no ha confiado, pero no podrá recibir Mensajes desde las Huellas no no confiadas.

Es importante saber que cada conjunto de llaves y huellas sirve idealmente para cada cliente de chat y cada dispositivo. Si instalamos otra instancia de cliente de chat en otro dispositivo, este registrará una nueva llave, la cual habremos también de darle confianza. De esta manera, podremos sincronizar las conversaciones entre varios clientes y dispositivos.

Ahora podremos chatear normalmente, con la seguridad de la encriptación OMEMO. Todos los mensajes que enviaremos con OMEMO activado serán cifrados de un extremo al otro (y naturalmente, si nuestros contactos tienen activado su cifrado OMEMO, descifraremos automáticamente sus conversaciones). De lo contrario no podrán ser leídos leerlos y se recibirá una advertencia referente a activar OMEMO en el cliente. Si fuese necesario enviar una conversación sin cifrar, podríamos deshabilitar el cifrado seguro OMEMO desde el ícono del candado y seleccionar "Deshabilitado".

Envío de Adjuntos

En el caso de transmisión de archivos adjuntos a través de XMMP/Jabber presenta una de sus limitaciones. Naturalmente, OMEMO será capaz de encriptarlos, pero sólo en el caso que tengan un peso inferior a 1,5MB. Esto normalmente favorece documentos normales, mensajes de audio de corta duración, y fotografías relativamente pequeñas.

Cuando envíe o reciba un adjunto de un contacto con OMEMO producirá la encriptación del fichero en una cadena cifrada específica para el destinatario, y enviará el mismo sólo si cuenta con conexión directa. Este podrá descargar una copia del fichero ya encriptado desde su cliente, pero únicamente con su cliente haciendo uso de un enlace URL especial denominado AES-GCM. Al hacer clic sobre este enlace URL ascgcm:// se procederá a la transferencia:

Gajim descargarán la cadena de datos ininteligible produciendo localmente la desencriptación "al vuelo", colocando la copia desencriptada en carpeta de descarga de Gajim ~/.local/share/gajim/downloads. Una vez producido esto,  ofrecerá abrir dicha carpeta (botón Open Folder) o bien abrir el fichero transferido por medio una aplicación externa asociada (botón Open).

Normalmente presionaríamos Open, lo cual cargará el adjunto por medio del visor de fotos, reproductor de audio, o reproductor de video de nuestro sistema operativo.

NOTA: Es importante saber que estas URL AES-CGM JAMÁS deben ser enlazadas ni enviadas a terceros, y los clientes  de chat jamás podrán abrirlas y mucho menos realizar la insegurísima acción de presentarlas por sí mismos en la ventana de chat. Esto, difundido en aplicaciones de chat de la oligarquía, no deja de ser el más simple vector de infección con troyanos que se puede imaginar.

Afortunadamente, la limitación de 1,5MB en los ficheros adjuntos puede suplirse con extensiones como PGP (para envío por correo electrónico cifrado) o la extensión Jingle XMPP, que establecerán un enlace par a par y cifrado.

1 comentario:

  1. Buenísimo este programa para el chat. Muy bueno el programa. Muchas gracias por la explicación de OMEMO, no entendía como ponerlo.

    ResponderEliminar