Herramienta para realizar llamadas VoIP a través de la red Tor.

Share this…

OnionPhone es una herramienta para realizar llamadas VoIP, a través de la red Tor que se puede utilizar como un plugin VoIP para TorChat, mejorando la privacidad y seguridad de la comunicación VoIP. La llamada se dirige a la dirección HS (servicio oculto) de Tor del destinatario. El destinatario puede instalar una conexión Tor inversa a la HS de origen y utilizar un canal más rápido que reajusta periódicamente el canal más lento para reducir la latencia total. También se proporciona la posibilidad de cambiar a una conexión UDP directa (a través de NAT) después de que la conexión se establezca sobre Tor (la red Tor es opuesta a un servidor SIP que requiere registro y recopilación de metadatos). Y también puede establecer una conexión UDP o TCP directa al puerto especificado en la dirección IP o al host. OnionPhone utiliza un protocolo personalizado (no RTP) con un solo byte encabezado sin cifrar que puede proporcionar alguna ofuscación contra un DPI (Deep Packet Inspection, inspección a fondo de los paquetes).

OnionPhone proporciona un nivel independiente de encriptación y autenticación p2p que emplea las técnicas criptográficas: intercambio de claves Diffe-Hellmann en la curva elíptica 25519 y encriptación Keccak Sponge Duplexing. En el caso de una llamada, la red Tor protege contra ataques MitM. Asimismo, el destinatario puede verificar la identidad de la dirección de la red Tor del autor (sólo con el permiso del remitente) de manera similar a la autenticación de TorChat. De lo contrario, los posibles mecanismos de autenticación son:

  • Voz(biometría).
  • Uso de la contraseña previamente compartida (con la posibilidad de notificación oculta de la ejecución).
  • El uso de claves públicas a largo plazo firmadas con PGP.

OnionPhone proporciona Perfect Forward Secrecy (utiliza una clave nueva para cada llamada) y denegación completa para el uso de claves públicas de los participantes a largo plazo (como hecho y contenido de la conversación), como un protocolo SKEME, que se puede usar para el intercambio inicial de claves.

OnionPhone puede utilizar una amplia gama de codec de voz incorporados (se incluye fuente C) desde velocidades ultra bajas hasta alta calidad. La lista completa de codecs es: MELPE-1200, MELP-2400, CODEC2-1300, CODEC2-3200, LPC10-2400, CELP4800, AMR-4750/12200 + DTX, LPC-5600 + VOCODER, G723-6400, G729-8000, GSM -HR-5600, GSM-FR-13200, GSM-EFR-12400, ILBC-13333, BV16-16000, OPUS-6000VBR, SILK-10000VBR, SPEEX-15200VBR + R. Algunos de ellos son gratuitos, otros requieren una licencia. Contiene supresores de ruido (NPP7 y SPEEX) de sonidos ambientales y control automático de ganancia de micrófono. Con Vocoder LPC, con capacidad de cambio irreversible de voz (robot, susurro, etc.). Especialmente diseñado con un buffer dinámico adaptativo útil para la compensación inteligente de la fluctuación de fase en el entorno de alta latencia como es el caso de la red Tor. Dispone de modo de radio (Push-to-Talk) y el modo de control de voz (Voice Active Detector) con generación de una señal corta cuando se completan las transmisiones.

Entre las características principales de OnionPhone destaca:

  • Es una aplicación de línea de comandos que no requiere instalación y se puede ejecutar desde un disco extraíble o un contenedor True-Crypt.
  • Es de código abierto, desarrollado en C puro, al más bajo nivel posible y cuidadosamente comentado;
  • Enlazado estáticamente, no requiere bibliotecas adicionales de terceros y utiliza un mínimo de funciones del sistema.
  • Puede ser compilado bajo Linux OS (Debian, Ubuntu etc.) usando GCC o bajo Win32 OS (desde Windows 98 hasta 8) usando MinGW.

Su código fuente esta diseñado para la compilación en modo de 32 bits. En Linux se necesitan encabezados ALSA para que funcione; en Ubuntu se puede instalar con el siguiente comando: ‘sudo apt-get install libasound2-dev’. Para compilar el código fuente se debe usar ‘make’. Los binarios ejecutables son en Linux: ‘oph’ y ‘addkey’ o con la extensión ‘.exe’ para Win32 que se creará usando MinGW. Se puede comprobar la integridad de la biblioteca de criptografía ejecutando ‘test’ (o ‘test.exe’) en la subcarpeta ‘/cr’. Para borrar el uso de la fuente hay que utilizar ‘make clean’. Para una funcionalidad normal, la carpeta OnionPhone debe contener binarios creados, archivos de configuración predeterminados (‘conf.txt’, ‘menu.tx’ y ‘audiocfg’) y subcarpeta ‘/key’ con archivos predeterminados (‘contacts.txt’, ‘guest.sec’ y ‘guest’).