Estas aquiContenido / Telefonía por Internet cifrada con Zfone (I): Linux
Telefonía por Internet cifrada con Zfone (I): Linux
Por José Manuel Gómez
Hace unos días recogíamos en Kriptópolis la llegada de Zfone, novedoso sistema de cifrado de VoIP, avalado por el creador de PGP. Superados los primeros obstáculos, ha llegado el momento de darle un tiento, para ver cómo se comporta en la práctica.
Como ya comentamos no existe aún versión de Zfone para Windows, por lo que nos centraremos en el caso de un usuario de Linux que quiera disfrutar de telefonía IP cifrada.
Obviamente, existe una condición previa: disponer de un sistema de telefonía IP funcionando a pleno rendimiento. Sin alcanzar este requisito difícilmente podremos cifrar nada...
Lo primero es lo primero: teléfono por Internet
Aunque hay otras alternativas, en mi caso opté por Gizmo, que si bien no es código libre, al menos implementa protocolos abiertos (a diferencia de lo que hace Skype, como ya hemos comentado aquí otras veces).
Empezaremos por descargar Gizmo para Linux, algo que no presenta ningún problema si somos usuarios de Debian, SUSE, Fedora o Linspire. Eso sí: hay que fijarse en que los ficheros a descargar suelen ser varios. En mi caso (OpenSUSE) sólo necesité libsipphoneapi (para ALSA) y el propio fichero de Gizmo Project.
Una vez instalados los ficheros necesarios (según el sistema), Gizmo debe arrancar sin problemas y te pedirá crear una cuenta en el sistema, pero ¿funciona? Quizás no del todo. Suponiendo que tus auriculares y micrófono estén bien configurados y funcionen correctamente (ojo, que no siempre es así), el siguiente problema puede hallarse en el cortafuegos. Es posible que tengas que dar paso a Gizmo abriendo los siguientes puertos:
- TCP: 7070 (Relay SRS y protocolo Jabber)
- UDP: 5005 (RTCP), 5060 (SIP+Zfone), 64064 (Mensajería SIP) y 5004 (tráfico RTP)
[NOTA: Si utilizas nuestro cortafuegos favorito (Smoothwall) abrir estos puertos es tan sencillo como escribirlos bajo la pestaña Networking.]
¿Cómo podemos comprobar que todo ha ido bien y Gizmo funciona? Sencillo; hagamos una llamada de prueba al 613@fwd.pulver.com. Se trata de un servicio de eco, que lo único que hace es devolverte tus propias palabras tras el retraso que impone la red. Si puedes oirte a ti mismo, enhorabuena: ya dispones de todo un teléfono por Internet.
Cifrando tus conversaciones
Llegamos al nudo de la cuestión. Si al ahorro y comodidad de la telefonía IP le añadimos una capa adicional de privacidad, el resultado puede ser muy atractivo.
Descarguemos Zfone. Se necesita registro previo con una dirección e-mail válida, ya que a ella se enviará el enlace de descarga que has de usar. Recibido éste se te pide conformidad con la licencia antes de proceder a la descarga. Como resultado de estos trámites tendrás en tu poder el fichero zfone-linux.tar.gz (2.1 MB). Ahora hay que proceder a compilarlo:
Importante: Con gcc-3.3.x y gcc-3.4.x he comprobado que la compilación funciona. No así con gcc-4.0. Muchos sistemas Linux vienen ya con gcc-4.0, pero no hay ningun inconveniente en realizar una instalación de gcc-3.x en un directorio distinto (por ejemplo /opt/gcc-3.x). Luego puedes necesitar modificar -o crear- un enlace simbólico para gcc en /usr/bin, apuntando al directorio de esa nueva instalación. Por mi parte he podido compilar Zfone de esta forma tanto en Ubuntu 5.10 como en OpenSUSE 10.0.
tar xzvf zfone-linux.tar.gz cd zfone-linux cd srtp-ctr ./configure --enable-aes-256 make make install cd ../libzfone cd bnlib vi Makefile (para cambiar /bin/install por /usr/bin/install) ./configure make make install cd .. ./configure CFLAGS="-O0 -g3 -W -Wall -fpack-struct" make make install cd ../voipd ./configure make make install
Si todo ha ido bien, ya dispones del ejecutable de Zfone en /usr/local/bin/voipdctrl (Puedes crear un enlace al mismo en tu escritorio para mayor comodidad).
Funcionamiento
Para que pueda funcionar con Zfone es preciso configurar antes tu programa de telefonía IP para que utilice el puerto 5060 para SIP y activar el cifrado RTP (En Gizmo: Gizmo Project -> preferences -> Advanced -> Custom).
Debes poner en marcha Zfone antes que tu programa cliente de telefonía IP. Por tanto, arranca Zfone y después Gizmo (o el cliente de VoIP que utilices). Es preciso hacer notar que Zfone no funciona con Skype, dado que éste utiliza protocolos cerrados que limitan su interoperabilidad.
Cuando llames a otro usuario que también disponga de Zfone la conversación será automáticamente cifrada, como podrás apreciar por el correspondiente mensaje en el interfaz de Zfone.
NOTA: Para facilitar tu comunicación y no tener que limitarte a una red concreta en la que dispongas de nombre de usuario, puedes considerar hacerte con un número IP en un servicio gratuito como Free World Dialup.
Se buscan voluntarios
Aprovecho para decir que espero que gente con más conocimientos que yo de telefonía IP pueda hacer aportaciones que complementen y mejoren este artículo, que, por otra parte, creo que es el primero que a día de hoy detalla cómo instalar y utilizar Zfone, con el consiguiente riesgo de omisiones y/o imprecisiones.
Igualmente me gustaría que las personas interesadas en probar Zfone contactaran a través de Kriptópolis para acordar conversaciones de prueba. De hecho, yo mismo tengo Gizmo y Zfone funcionando a partir de las explicaciones que doy en este artículo, pero aún no he podido darle suficiente cancha por falta de interlocutores.




¿nadie se anima?
pero eso de registrar números e historias aún me da respeto ;-)
A ver si cuando tenga más tiempo lo hago, palabra que explico en este hilo como ha ido :D
Saludos.
Lo siento. Yo me quedé en Gizmo. La instalación fue un poco problemática porque el paquete "bonjour" (obligatorio en Debian) tenía conflicto con una librería (una tal "avahi"-algo) porque se intentaba sobreescribir un mismo archivo. Cuando ejecutaba 'gizmo' me decía que faltaba un archivo.
Al final tuve que desinstalar la tal "avahi", no sin problemas (aunque no fueron muy graves) y puede ejecutar cómodamente 'gizmo'. Me di de alta sin problemas y llamé al número de eco. Pude oir perfectamente la locución de bienvenida pero no me respondía el eco (excepto el propio sonido de mi voz por los altavoces, pero era inmediato, tal y como suena sin gizmo de por medio).
Cacharreé en mi router para desviar los puertos pero el resultado fue igual que antes. ¿Tendré que tocar 'iptables'? (Si JMG no lo ha tenido que hacer, ¿por qué yo sí?) En cualquier caso, la locución de entrada la oía perfectamente.
Cuando uso skype me funciona todo de maravilla, sin necesidad de tocar el router, iptables o cualquier otra cosa.
SKS, criptografía de curva elíptica de bolsillo
http://sks.merseine.nu
SKS, criptografía de curva elíptica de bolsillo
http://sks.merseine.nu
Que se trata de un problema de puertos en tu router.
Prueba con la configuración por defecto del programa, a ver qué pasa. Incluso creo haber leído que a veces Gizmo se abre paso sin necesidad de tocar nada.
En todo caso si tienes interés no desistas y mira en sus foros.
Sí, claro: Skype es coser y cantar, pero no puedes cifrar las llamadas con Zfone, porque Skype utiliza protocolos propietarios no interoperables.
Hola a todos
Estoy tratando de instalar zfone, y tengo este error cuando hago "make" para libzfone. No se como solucionarlo. Gracias por vuestra ayuda !!!
./protocol/zfone_crypto_vad.c: At top level:
./protocol/zfone_crypto_vad.c:72: error: static declaration of 'b2a_l' follows non-static declaration
../include/zfone_utils.h:45: error: previous declaration of 'b2a_l' was here
./protocol/zfone_crypto_vad.c: In function 'VADHex_compute':
./protocol/zfone_crypto_vad.c:97: warning: pointer targets in passing argument 2 of 'bnExtractBigBytes' differ in signedness
./protocol/zfone_crypto_vad.c:101: warning: pointer targets in passing argument 2 of 'bnExtractBigBytes' differ in signedness
./protocol/zfone_crypto_vad.c:76: warning: unused variable 'vad_str'
./protocol/zfone_crypto_vad.c: In function 'b2a_l':
./protocol/zfone_crypto_vad.c:160: warning: pointer targets in initialization differ in signedness
./protocol/zfone_crypto_vad.c: In function 'SAS_compute':
./protocol/zfone_crypto_vad.c:317: warning: pointer targets in passing argument 2 of 'bnExtractBigBytes' differ in signedness
./protocol/zfone_crypto_vad.c:321: warning: pointer targets in passing argument 2 of 'bnExtractBigBytes' differ in signedness
./protocol/zfone_crypto_vad.c:296: warning: unused variable 'sas_str'
make[1]: *** [zfone_crypto_vad.o] Error 1
make[1]: se sale del directorio `/usr/share/zfone-linux/libzfone/src'
make: *** [all-recursive] Error 1
root@xyz:/usr/share/zfone-linux/libzfone#
Yo ya lo tengo instalado, pero no puedo probarlo con nadie, no se de nadie que lo tenga así que si les interesa yo lo pruebo.
bueno estoy bajando la new version, voy a probarla.. veo que los post son viejos si alguien me lee del otro lado responda!!!!