Matrix para usuarias

Usamos un sistema de chat llamado Matrix que federa y permite hablar con otros servidores, es decir, con usuarias de otras dominios que tengan cuenta de matrix.

Para entrar al chat sin necesidad de cliente de escritorio podéis ir al enlace: https://chat.sindominio.net

Basta poner vuestro nombre de usuaria y contraseña de sindominio y tendréis acceso a la mensajería instantánea.

Tambien podéis instalar en el móvil y en los ordenadores Riot o cualquier otro programa de chat para Matrix. En Gnu/Linux se recomienda revolt, que tiene capacidad de usar salas cifradas (y la sala asamblea lo está). Otros como nheko o quaternion parece que no la tienen…

En el programa revolt, para entrar en el chat, al menos la primera vez, hay que hacer:

  • Pinchar en el botón azul que pone “Sign in”.
  • En la siguiente “ventana” aparecen los controles para conectar con el servidor “matrix.org”, que no es el nuestro. Pinchar en enlace “Change”.
  • En la siguiente “ventana”, en los dos cuadros (Homeserver URL y Identity Server URL) introducir: https://matrix.sindominio.net. Dar al botón verde Next.
  • En la siguiente “ventana”, introducir tu nombre de usuario de sindominio (en cuadro Username) y tu contraseña de sindominio (en cuadro contraseña). Dar al botón verde Conectar.
  • Ya estas dentro!!

Una vez hecho esto la primera vez, en los siguientes arranques de revolt entras directamente al chat de sindominio. Estas indicaciones pueden servir también, con los ajustes adecuados, para los otros clientes de chat citados…

Vuestro nombre de usuaria para que otra gente os encuentre es:

@PALABRA_QUE_TU_HAS_ELEGIDO:sindominio.net

Por temas de privacidad hemos decidido no publicar los nombres de los usuarios de sindmominio-matrix en directorios públicos, por lo que vuestro nombre/nick no será buscable a través de las aplicaciones clientes de matrix. Si queréis que alguien contacte con vosotros le tendréis que pasar vuestra dirección, del mismo modo que hacéis cuando a la gente le dais el correo electrónico o vuestro teléfono por primera vez.

Cifrado y clave de recuperación

Si no hemos creado una clave de cifrado (clave de recuperación del cifrado) es posible que element nos esté insistiendo continuamente en que lo hagamos. Esta clave debe ser diferente del password y es recomendable que sea del tipo passphrase/frase de paso, es decir que sea larga. Si password y clave de cifrado son iguales, por cuestiones de matemática profunda, estaríamos creando una debilidad, o eso comentan en la lista de desarrollo de matrix.

Cuando crees la clave también se te ofrecerá guardar un fichero que la puede sustituir. Así, si olvidas la clave de cifrado, siempre podrás recuperar los mensajes cifrados con ese fichero, que por supuesto debes poner a buen recaudo.

Las claves con las que cifras mensajes, las que usas para descifrar los de otros, las que se usan para verificar usuarios … se guardan en el servidor. Cuando abres un cliente con una sesión ya abierta anteriormente, esas claves están disponibles (siempre que hubiéses generado la clave de recuperación señalada en párrafos anteriores).

Pero si abres sesión en nuevo dispositivo (haces login en un nuevo client o dispositivo, o instalación del mismo cliente) deberás introducir tu clave de recuperación para poder recuperarlas. El proceso es trasparente para el usuario, dado que no tendrás que estar manejando esas claves, sólo la de recuperación. Eso sí, siempre que tengas desactivado en configuración, seguridad y privacidad: Never send encrypted messages to unverified sessions from this session No enviar nunca mensajes cifrados a sesiones sin verificar desde esta sesión

Si no fuera así, cuando abres sesión un nuevo dispositivo te saldrá un aviso en los dispositivos anteriores para que les des acceso a los nuevos dispositivos a las claves de cifrado.

Pero quizás es mejor solución mantener esa opción activa (no comparitr claves con sesiones no verificadas), y tener guardadas las claves de cifrado en el server (element te sugiere que lo hagas), protegidas con contraseña (o fichero de descifrado). Así, cuando entres en un dispositivo nuevo te seguirá pidiendo permiso en los anteriores para acceder a las claves (solicitud de verificación), y si no tienes dispositivos anteriores (el móvil ha explotado) podrás usar tu pass o fichero de descifrado.

De esta forma no basta con que te roban la password de matrix para acceder a tus chats cifrados, deberán además tener tus claves de cifrado (pass de cifrado o fichero de cifrado, guardado en lugar seguro).

Verificación de usuarias

Si un chat está cifrado sólo las participantes tendrán acceso a los mensajes intercambiados. La verificación, no obstante, supondrá un extra en cuanto a la seguridad y confiabilidad de tus chats.

Cuando participamos en un chat, sea de dos participantes, o sea una sala con más gente, no tenemos la seguridad de que las otras usuarias son quienes dicen ser, salvo que estén verificadas. Es decir, podríamos pensar que sus contraseñas han sido robadas y que alguien está suplantando a nuestras interlocutoras.

La verificación se basa en la idea de que la otra parte de una conversación me pueda decir de alguna forma que efectivamente está usando matrix de forma legítima con su cuenta. Y claro está, esa otra forma no puede ser matrix. Una buena verificación se ha de producir en persona (como la firma de claves gpg de otros). Pero podemos realizar también la vertificación en otro canal como el teléfono, signal, u otro sistema que consideremos de confianza.

Veamos un ejemplo usando Element.

Sunpongamos que Alice está en una sala con Bob. Alice necesita estar segura de que tras la cuenta de su amigo está escribiendo realmente su amigo. Para ello hace clic en la parte superior derecha del chat, abriendo ‘Información de la sala’, y luego la sección de participantes. Hecho esto selecciona el usuario Bob, y bajo su avatar aparecerá entre otras cosas un enlace/botón ‘Verificar’. Alice hace clic en ese botón, dando paso al proceso de verificación. Así element lanzará una solicitud de verificación a Bob. Bob tendrá que aceptar dicha solicitud, y en caso de no hacerlo Alice podrá empezar a pensar que Bob no es Bob. O quizás simplemente Bob está haciendo la cena y no le viene bien :-)

Element usa verificación con emojis, así que aparecerá un botón que verán tanto Alice como Bob con el texto ‘Verificar con emoji’. Cuando uno de ellos pulse el botón se creará un cadena de un sólo uso (expirará al poco tiempo) con varios emojis, que serán mostrados a los dos lados del proceso de verificación; lo verán tanto Alice como Bob.

Y ahora es donde entra en juego el otro canal de comunicación. Bob tendrá que cantar a través del teléfono, signal, xmpp cifrado … o en el mejor de los casos en persona, la secuencia de emojis que visualiza, y Alice comprobará que coinciden con los de su lado. Si es así, ambos confirmarán en Element la verificación y a partir de ese momento las sesión de Bob en su dispositivo quedará verificada para Alice, y la de Alice para Bob.

Si la verifiación no ha sido realizada en persona o por teléfono, Alice puede tener fe en que Bob es Bob, pero podría ser que a Bob además de robarle la cuenta de matrix, le han robado la cuenta de Signal, XMPP, o el sistema de comunicación que esté usando como canal de verificación. De ahí el incapié en realizar una verificación personal.

Cuando damos por buena una verificación, el servidor de matrix (a través de un sistema de cifrado cruzado) dará por buenas también todas las otras sesiones vivas (dispositivos) que tenga la contraparte. Esto facilita que si Bob se conecta con el móvil, con el pc de casa, y con el pc del trabajo, sólo sea necesaria una verificación. Y por esa razón siempre que las sesiones existentes estén verificadas, si Alice o Bob abren una nueva sesión en un dispositivo (hacen login con user y password), tendrán que introducir su clave de cifrado (no el password) para que la nueva sesión sea confirmada como verificada (como las ya existentes).

Nota: esa clave de recuperación de cifrado hará también que en la nueva sesión se pueda acceder a los mensajes ya escritos en salas cifradas.

Si bien las verificaciones aportan más seguridad, en matrix reutilizamos constantemente las sesiones en nuestros dispositivos (no hacemos logout y de nuevo login), por lo que si alguien accede a ellos podrá suplantarnos sin que nuestros interlocutores lo noten.