Comunicaciones Secretas y Autónomas de Voz/IP con Mumble

Rafael Bonifaz / Fellow Fundación Acceso

Las comunicaciones en Internet normalmente son mediadas por un servidor que las gestiona. Por eso, cuando se usa un servicio de correo electrónico, por ejemplo, los administradores del servidor de correo pueden monitorear nuestras comunicaciones. Esto puede suceder incluso si la comunicación está siendo cifrada entre extremos, ya que con herramientas como GPG los administradores tienen acceso a los metadatos. Es decir, pueden saber quién se comunica, con quién, desde dónde, con que frecuencia, etcétera.

Por otro lado, herramientas como Signal también permiten hablar de forma cifrada, pero la comunicación es gestionada por el proveedor de la plataforma. Esto significa, que ellos también tienen acceso a los metadatos, y podrían vigilarlos. Asimismo, Jitsi Meet es una herramienta de software libre que permite tener un servidor propio de comunicaciones a través de navegadores web. Es común utilizar Jitsi Meet a través de un servicio de pruebas accesible en: https://meet.jit.si. Una vez más, el proveedor del servicio podría monitorear los metadatos o incluso el contenido de las comunicaciones.

Lo más probable es que ni Signal ni el servicio de pruebas de Jitsi Meet estén monitoreando las comunicaciones, sin embargo, esto es algo difícil de comprobar. Es importante señalar, que existe la posibilidad de implementar un servicio propio de Jitsi Meet, pero requiere el uso de una dirección IP pública o ser publicada a través de VPN.

Frente a estas limitaciones, Mumble es una herramienta de software libre que permite crear conferencias de voz a través de Internet. Es decir, 2 o más personas podrían juntarse en una sala de conferencia de Mumble y conversar en tiempo real. Este servicio tiene la característica de funcionar bien incluso con malas conexiones a Internet. Además permite su funcionamiento a través de servicios ocultos de Tor.

Los servicios ocultos de Tor permiten proveer servicios como correo electrónico, páginas web, chat e incluso Voz/IP. A diferencia de los servicios expuestos a Internet, los servicios ocultos son accesibles solo a través de un dirección secreta del tipo 2rfdgldyowm3vgnt.onion. Otra ventaja de los servicios ocultos de Tor es que no se requiere una dirección IP pública para su funcionamiento. Esto quiere decir que cualquier máquina en una red que tenga acceso a la red Tor puede compartir un servicio a otros que tengan acceso a la red Tor. Un servicio oculto podría ser configurado en una máquina virtual, en un Raspberry Pi, una computadora vieja e incluso una laptop.

Los servicios ocultos se pueden usar para los protocolos TCP, que abarcan gran parte de las comunicaciones en Internet. Sin embargo, en el caso de la Voz/IP suele funcionar sobre el protocolo UDP por lo que sería problemático que funcione como un servicio oculto de Tor. Mumble es un sistema de comunicaciones de Voz/IP que tiene la capacidad de funcionar con el protocolo TCP por lo que es compatible con Tor.

El la sección 1 de este artículo se explicará como configurar un servidor de Mumble como servicio oculto. En la sección 2 se explicará como conectarse a un servidor Mumble desde un celular. Por último en la sección 3 se explicará como conectarse desde una máquina con Linux.

Es posible que usted vaya a conectarse al servicio oculto de Mumble configurado por otra persona, en eso caso puede saltarse directamente a la sección 2 o 3 y configurar con los datos del nombre del dominio .onion y la contraseña de mumble provisto por la persona que configuro el servicio.

1. Configurar Servidor Mumble como Servicio Oculto

Configurar Servidor de Mumble

Mumble es un servidor de chat de voz que permite realizar reuniones virtuales. Es muy utilizado en la comunidad de software libre para establecer reuniones en línea y también es utilizado como medio de comunicación para videojuegos en red. Está pensado para funcionar con poco consumo de ancho de banda y además soporta el protocolo TCP. Estas dos características lo hacen ideal para funcionar con Tor.

Instalación de Mumble

Luego editar el archivo /etc/mumble.ini para que escuche solamente en 127.0.0.1 y para asignar una contraseña de seguridad. Lo primero sirve para que el servicio sea accesible solo de forma local y desde Tor. Incluso alguien que monitoree localmente el tráfico de la red no podrá saber que en ese servidor funciona un servicio oculto con Mumble. Lo segundo es para proteger la sala de chat como medida extra de seguridad.

Esto será suficiente para poder usar Mumble como servicio oculto. Sin embargo, existen muchas más configuraciones que se pueden realizar sobre Mumble que vale la pena investigar.

Configuración del Servicio Oculto

Los servicios ocultos de Tor permiten proveer servicios de forma anónima en Internet. Para acceder a estos recursos el único requisito es tener acceso a la red Tor. Esto quiere decir que el servicio oculto puede estar instalado en un computador viejo, un Raspberry PI, una máquina virtual o incluso en una laptop.

Instalar Tor:

Para configurar el servicio oculto se debe editar el archivo de /etc/tor/torrc y añadir las siguientes líneas:

La primera línea dice el directorio donde se guardará la configuración de Tor y la segunda dice el puerto de Tor que se quiere publicar a la red. En el caso de Mumble decimos que se quiere publicar el puerto 64738 ubicado en 127.0.0.1 (IP local) en el mismo puerto.

Se reinicia el servicio de Tor

En el archivo /var/lib/tor/mumble/hostname se encuentra el nombre del dominio que se requerirá par acceder al servicio oculto. Se puede utilizar el comando cat para averiguar el nombre del dominio:

En este caso se obtiene como resultado:

Ahora solo falta configurar los clientes. En esta guía se explicará como hacerlo desde Android y Linux. Es posible hacerlo desde Windows o Mac, pero no se ha tendido la posibilidad de probarlo.

2. Configuración de Plumble en Android

Plumble es un cliente de Mumble para Android. Para que Plumble pueda conectarse a nuestro servicio oculto se requiere que utilice la red Tor, para esto se requiere que en el celular se instale la aplicación Orbot. Tanto Plumble como Orbot se pueden instalar desde el repositorio Fdroid o desde Google Play. (En pruebas realizadas se tuvo problemas con la versión de Plumble de Google Play, por lo que se recomienda utilizar Fdroid)

Lo primero que es debe hacer es configurar Orbot para que funcione como modo VPN y que el tráfico de Plumble pase por Tor. En la figura 1 se ve una imagen de Orbot en funcionamiento. Tor debe estar funcionando y por esto el icono de la cebolla debe ser de color verde (1). Para que Plumble funcione a través de Tor debe estar activado el modo VPN (2). Por último se debe configurar el modo VPN para que Plumble funcione a través de Tor (3).

Hecho esto Plumble esta listo para conectarse al servicio oculto. Lo siguiente que se debe hacer es abrir Plumble y crear una nueva cuenta con los datos correspondientes como se ven en la figura 2.

En Etiqueta se debe poner el nombre de la cuenta que se va a utilizar, puede ser cualquier cosa. En Dirección se debe poner la dirección del servicio secreto, en este caso la del que se configuró en la sección 1. El nombre de usuario puede ser un nombre arbitrario. Por último la contraseña se utiliza la que se configuró en la instalación de Mumble.

Una vez añadida la cuenta, basta con conectarse a la misma y ya será posible empezar a hablar. La primera vez que se realice la conexión se presentará un error de certificado no valido. Hay que añadir la excepción ya que el certificado de cifrado es autofirmado.

3. Configuración de Mumble en equipos GNU/Linux

La configuración de Mumble para Linux es parecida a la de Android. Se necesita tener instalado Tor y el cliente de Mumble. Para esto ejecutamos

Para que Mumble funcione a través de Tor es necesario iniciarlo desde la línea de comando con la siguiente instrucción.

Esto abrirá una ventana donde se configurará Mumble. La aplicación ofrece conectarse a muchos servidores, pero a nosotros nos interesa conectarnos al servicio oculto creado previamente. Para esto ponemos agregar nuevo como se ve en la figura. 3.

Esto abre la ventana donde se podrá configurar los datos de conexión como se ve en la figura 4.

En Etiqueta se debe poner un nombre para la conexión, puede ser cualquier cosa. En dirección el nombre del host del servicio oculto al que se desea conectarse. En puerto se deja el puerto por defecto y en nombre de usuario se pone el nombre de usuario deseado.

La contraseña de la sala de chat de Mumble se solicitará cuando se conecte al servicio. Al igual que con Plumble, la primera vez que se conecte se mostrará un mensaje de error de certificado ya que es un certificado autofirmado.

Una vez hecho esto ya es posible conectarse al servicio oculto y empezar a conversar.

Conclusiones

Utilizar Mumble como servicio oculto de Tor brinda autonomía en las comunicaciones. Si dos personas quieren comunicarse entre sí, uno de los dos podría ejecutar el servicio Tor incluso de manera local en la máquina. Mumble escucha solo en 127.0.0.1 por lo que no genera tráfico en la red local y alguien monitoreando la conexión no podría saber que está corriendo un servidor de Mumble. Lo que sí se puede saber es que en esa computadora se está usando Tor, pero no para que.

Si bien Mumble no brinda cifrado entre extremos, si uno de los miembros de la conversación está alojando el servicio oculto, la comunicación será accesible solo para los participantes sin que un externo la pueda espiar.