¿Viber está utilizando TCP para VoIP?

0

Actualmente estoy en un WiFi invitado donde todos los puertos excepto aquellos para navegar por la web (80, 443, 8080) y correo (25, 110, 143, 465, 587, 993, 995) están bloqueados (3128 parece estar funcionando también )

Traté de hacer una llamada FaceTime en mi iPhone, pero eso no funcionó, lo que me hizo suponer que UDP también está bloqueado. Sin embargo, la aplicación Viber pudo conectarse con éxito e iniciar una videollamada con una calidad / retraso decente.

Mi pregunta ahora es: ¿Viber está utilizando TCP para VoIP o cómo es esto posible?

comfreak
fuente
Más que probable; Si; FaceTime probablemente solo lo usa también, pero en un puerto que está bloqueado. Viber probablemente solo usa 80/443. Skype también usa TCP pero su protocolo de subrayado no se publica
Ramhound
1
¿Su prueba de "puertos bloqueados" en realidad incluye UDP? Si solo probó los puertos TCP, eso no dice nada sobre la disponibilidad UDP, ya que los dos protocolos tienen sus propias asignaciones de puertos y se pueden filtrar de forma independiente. (Algunos firewalls ofrecen una macro "TCP / UDP", pero eso es todo.)
Grawity
@grawity Ese es un buen punto. No encontré un servidor de prueba para probarlo con UDP, por lo que mi prueba se limitó a TCP (a través de portquiz.net)
comfreak
@Ramhound Vea mi respuesta para los puertos que Viber realmente requiere (más que solo 80/443).
DavidPostill

Respuestas:

0

¿Viber está utilizando TCP para VoIP?

Viber está utilizando UPD y no TCP para el tráfico de VoIP. TCP se utiliza para mensajes de texto.

Viber usa RTP (y SRTP cuando está encriptado). RTP se implementa principalmente en UDP, ya que es un protocolo en tiempo real.

El flujo RTP de la llamada de audio o audio / video se convierte a SRTP y se cifra mediante el algoritmo Salsa20 utilizando la clave de sesión.

Descripción general del cifrado de Viber de origen

El uso de TCP y UDP se confirma en Viber Communication Security descifra los contenidos codificados , que solían tcpdumpgenerar .pcaparchivos para analizar el tráfico de datos de Viber:

Este parecía ser un buen punto de partida para obtener algunos resultados, por lo que filtramos los datos para obtener una transmisión de voz unidireccional con el siguiente comando:

   tshark -r long-call.pcap -w long-call-oneway.pcap udp.dstport == 5243

Aquí seleccionamos solo los paquetes UDP con el puerto de destino para el servicio de Viber, por lo que solo está originando tráfico de voz.

...

Además de las llamadas de voz que Viber le permite hacer al usuario, también le permite enviar y recibir mensajes de texto. Esta funcionalidad utiliza algún protocolo especializado basado en TCP para conectarse al servidor e intercambiar mensajes . La decodificación de esta secuencia no ha sido una prioridad dentro de este proyecto y no quedaba tiempo para investigar más.


¿Qué puertos usa Viber?

Para que Viber Desktop se ejecute en su computadora, los siguientes puertos deben estar abiertos para todas las direcciones para TCP y UDP:

  • 5242
  • 4244
  • 5243
  • 9785
  • 80
  • 443

Puertos de apertura de origen para Viber Desktop

DavidPostill
fuente
En otras palabras, si UDP está bloqueado, no debería ser posible ninguna llamada y, por lo tanto, UDP tiene que estar trabajando en la red de invitados en los puertos que utiliza Viber.
Comfreak
Creo que eso es correcto. Consulte la respuesta actualizada con una lista de los puertos requeridos (se requieren UDP y TCP en estos puertos).
DavidPostill
Pero mi llamada exitosa también significa que Viber solo requiere 80 o 443 (o ambos) para funcionar (al menos para el lado TCP). Por lo que leí en los sitios web vinculados, parece que RTP generalmente se implementa en UDP, pero eso no descarta que Viber no tenga un servicio de respaldo en TCP. Probaría los puertos UDP, pero no conozco ningún objetivo para probar con nmap.
comfreak
Pruebe una prueba de velocidad UDP , que debería decirle si UDP está bloqueado :)
DavidPostill
1
uPNP puede estar abierto permitiendo usar algunos puertos UDP.
LPChip