¿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.