Basic VoIP Protocols
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Este es el estándar de la industria, para más información consulta:
SIP (Session Initiation Protocol)MGCP (Protocolo de Control de Puerta de Medios) es un protocolo de señalización y control de llamadas descrito en el RFC 3435. Opera en una arquitectura centralizada, que consta de tres componentes principales:
Agente de Llamadas o Controlador de Puerta de Medios (MGC): La puerta maestra en la arquitectura MGCP es responsable de gestionar y controlar las puertas de medios. Maneja los procesos de configuración, modificación y terminación de llamadas. El MGC se comunica con las puertas de medios utilizando el protocolo MGCP.
Puertas de Medios (MGs) o Puertas Esclavas: Estos dispositivos convierte flujos de medios digitales entre diferentes redes, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes. Son gestionados por el MGC y ejecutan comandos recibidos de él. Las puertas de medios pueden incluir funciones como transcodificación, empaquetado y cancelación de eco.
Puertas de Señalización (SGs): Estas puertas son responsables de convertir mensajes de señalización entre diferentes redes, permitiendo una comunicación fluida entre sistemas de telefonía tradicionales (por ejemplo, SS7) y redes basadas en IP (por ejemplo, SIP o H.323). Las puertas de señalización son cruciales para la interoperabilidad y para asegurar que la información de control de llamadas se comunique adecuadamente entre las diferentes redes.
En resumen, MGCP centraliza la lógica de control de llamadas en el agente de llamadas, lo que simplifica la gestión de las puertas de medios y de señalización, proporcionando mejor escalabilidad, fiabilidad y eficiencia en las redes de telecomunicaciones.
El Protocolo de Control de Cliente Delgado (SCCP) es un protocolo de señalización y control de llamadas propietario de Cisco Systems. Se utiliza principalmente para la comunicación entre Cisco Unified Communications Manager (anteriormente conocido como CallManager) y teléfonos IP de Cisco u otros puntos finales de voz y video de Cisco.
SCCP es un protocolo ligero que simplifica la comunicación entre el servidor de control de llamadas y los dispositivos finales. Se le llama "Delgado" debido a su diseño minimalista y a los requisitos de ancho de banda reducidos en comparación con otros protocolos de VoIP como H.323 o SIP.
Los principales componentes de un sistema basado en SCCP son:
Servidor de Control de Llamadas: Este servidor, típicamente un Cisco Unified Communications Manager, gestiona los procesos de configuración, modificación y terminación de llamadas, así como otras características de telefonía como desvío de llamadas, transferencia de llamadas y retención de llamadas.
Puntos Finales SCCP: Estos son dispositivos como teléfonos IP, unidades de videoconferencia u otros puntos finales de voz y video de Cisco que utilizan SCCP para comunicarse con el servidor de control de llamadas. Se registran con el servidor, envían y reciben mensajes de señalización, y siguen las instrucciones proporcionadas por el servidor de control de llamadas para el manejo de llamadas.
Puertas: Estos dispositivos, como puertas de voz o puertas de medios, son responsables de convertir flujos de medios entre diferentes redes, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes. También pueden incluir funcionalidad adicional, como transcodificación o cancelación de eco.
SCCP ofrece un método de comunicación simple y eficiente entre los servidores de control de llamadas de Cisco y los dispositivos finales. Sin embargo, vale la pena señalar que SCCP es un protocolo propietario, lo que puede limitar la interoperabilidad con sistemas no Cisco. En tales casos, otros protocolos de VoIP estándar como SIP pueden ser más adecuados.
H.323 es un conjunto de protocolos para comunicación multimedia, incluyendo voz, video y conferencias de datos sobre redes conmutadas por paquetes, como redes basadas en IP. Fue desarrollado por la Unión Internacional de Telecomunicaciones (UIT-T) y proporciona un marco integral para gestionar sesiones de comunicación multimedia.
Algunos componentes clave del conjunto H.323 incluyen:
Terminales: Estos son dispositivos finales, como teléfonos IP, sistemas de videoconferencia o aplicaciones de software, que soportan H.323 y pueden participar en sesiones de comunicación multimedia.
Puertas: Estos dispositivos convierten flujos de medios entre diferentes redes, como la telefonía tradicional conmutada por circuitos y redes IP conmutadas por paquetes, permitiendo la interoperabilidad entre H.323 y otros sistemas de comunicación. También pueden incluir funcionalidad adicional, como transcodificación o cancelación de eco.
Controladores de Llamadas: Estos son componentes opcionales que proporcionan servicios de control y gestión de llamadas en una red H.323. Realizan funciones como traducción de direcciones, gestión de ancho de banda y control de admisión, ayudando a gestionar y optimizar los recursos de la red.
Unidades de Control Multipunto (MCUs): Estos dispositivos facilitan conferencias multipunto gestionando y mezclando flujos de medios de múltiples terminales. Las MCUs permiten características como control de diseño de video, conmutación activada por voz y presencia continua, haciendo posible albergar conferencias a gran escala con múltiples participantes.
H.323 soporta una variedad de códecs de audio y video, así como otros servicios suplementarios como desvío de llamadas, transferencia de llamadas, retención de llamadas y espera de llamadas. A pesar de su amplia adopción en los primeros días de VoIP, H.323 ha sido gradualmente reemplazado por protocolos más modernos y flexibles como el Protocolo de Inicio de Sesión (SIP), que ofrece mejor interoperabilidad y una implementación más sencilla. Sin embargo, H.323 sigue en uso en muchos sistemas heredados y continúa siendo soportado por varios proveedores de equipos.
IAX (Inter-Asterisk eXchange) es un protocolo de señalización y control de llamadas utilizado principalmente para la comunicación entre servidores PBX (Central Telefónica Privada) Asterisk y otros dispositivos VoIP. Fue desarrollado por Mark Spencer, el creador del software PBX de código abierto Asterisk, como una alternativa a otros protocolos de VoIP como SIP y H.323.
IAX es conocido por su simplicidad, eficiencia y facilidad de implementación. Algunas características clave de IAX incluyen:
Puerto UDP Único: IAX utiliza un único puerto UDP (4569) tanto para señalización como para tráfico de medios, lo que simplifica el paso a través de firewalls y NAT, facilitando su implementación en diversos entornos de red.
Protocolo Binario: A diferencia de los protocolos basados en texto como SIP, IAX es un protocolo binario, lo que reduce su consumo de ancho de banda y lo hace más eficiente para transmitir datos de señalización y medios.
Trunking: IAX soporta trunking, lo que permite combinar múltiples llamadas en una única conexión de red, reduciendo la sobrecarga y mejorando la utilización del ancho de banda.
Cifrado Nativo: IAX tiene soporte incorporado para cifrado, utilizando métodos como RSA para el intercambio de claves y AES para el cifrado de medios, proporcionando comunicación segura entre los puntos finales.
Comunicación Peer-to-Peer: IAX puede ser utilizado para comunicación directa entre puntos finales sin la necesidad de un servidor central, permitiendo un enrutamiento de llamadas más simple y eficiente.
A pesar de sus beneficios, IAX tiene algunas limitaciones, como su enfoque principal en el ecosistema Asterisk y una adopción menos generalizada en comparación con protocolos más establecidos como SIP. Como resultado, IAX podría no ser la mejor opción para la interoperabilidad con sistemas o dispositivos no Asterisk. Sin embargo, para aquellos que trabajan dentro del entorno Asterisk, IAX ofrece una solución robusta y eficiente para la comunicación VoIP.
SDP (Protocolo de Descripción de Sesión) es un formato basado en texto utilizado para describir las características de sesiones multimedia, como voz, video o conferencias de datos, sobre redes IP. Fue desarrollado por la Fuerza de Tarea de Ingeniería de Internet (IETF) y está definido en RFC 4566. SDP no maneja la transmisión real de medios ni el establecimiento de sesiones, sino que se utiliza junto con otros protocolos de señalización, como SIP (Protocolo de Inicio de Sesión), para negociar e intercambiar información sobre los flujos de medios y sus atributos.
Algunos elementos clave de SDP incluyen:
Información de la Sesión: SDP describe los detalles de una sesión multimedia, incluyendo el nombre de la sesión, la descripción de la sesión, la hora de inicio y la hora de finalización.
Flujos de Medios: SDP define las características de los flujos de medios, como el tipo de medio (audio, video o texto), el protocolo de transporte (por ejemplo, RTP o SRTP) y el formato de medio (por ejemplo, información del códec).
Información de Conexión: SDP proporciona información sobre la dirección de red (dirección IP) y el número de puerto donde los medios deben ser enviados o recibidos.
Atributos: SDP soporta el uso de atributos para proporcionar información adicional y opcional sobre una sesión o flujo de medios. Los atributos pueden ser utilizados para especificar diversas características como claves de cifrado, requisitos de ancho de banda o mecanismos de control de medios.
SDP se utiliza típicamente en el siguiente proceso:
Una parte iniciadora crea una descripción SDP de la sesión multimedia propuesta, incluyendo los detalles de los flujos de medios y sus atributos.
La descripción SDP se envía a la parte receptora, generalmente incrustada dentro de un mensaje de protocolo de señalización como SIP o RTSP.
La parte receptora procesa la descripción SDP, y según sus capacidades, puede aceptar, rechazar o modificar la sesión propuesta.
La descripción SDP final se envía de vuelta a la parte iniciadora como parte del mensaje del protocolo de señalización, completando el proceso de negociación.
La simplicidad y flexibilidad de SDP lo convierten en un estándar ampliamente adoptado para describir sesiones multimedia en varios sistemas de comunicación, desempeñando un papel crucial en el establecimiento y gestión de sesiones multimedia en tiempo real sobre redes IP.
RTP (Protocolo de Transporte en Tiempo Real): RTP es un protocolo de red diseñado para la entrega de datos de audio y video, o de otros medios en tiempo real, sobre redes IP. Desarrollado por la IETF y definido en RFC 3550, RTP se utiliza comúnmente con protocolos de señalización como SIP y H.323 para habilitar la comunicación multimedia. RTP proporciona mecanismos para sincronización, secuenciación y marcación de tiempo de los flujos de medios, ayudando a asegurar una reproducción de medios fluida y oportuna.
RTCP (Protocolo de Control de Transporte en Tiempo Real): RTCP es un protocolo complementario a RTP, utilizado para monitorear la calidad del servicio (QoS) y proporcionar retroalimentación sobre la transmisión de flujos de medios. Definido en el mismo RFC 3550 que RTP, RTCP intercambia periódicamente paquetes de control entre los participantes en una sesión RTP. Comparte información como pérdida de paquetes, jitter y tiempo de ida y vuelta, lo que ayuda a diagnosticar y adaptarse a las condiciones de la red, mejorando la calidad general de los medios.
SRTP (Protocolo de Transporte en Tiempo Real Seguro): SRTP es una extensión de RTP que proporciona cifrado, autenticación de mensajes y protección contra repetición para los flujos de medios, asegurando la transmisión segura de datos de audio y video sensibles. Definido en RFC 3711, SRTP utiliza algoritmos criptográficos como AES para el cifrado y HMAC-SHA1 para la autenticación de mensajes. SRTP se utiliza a menudo en combinación con protocolos de señalización seguros como SIP sobre TLS para proporcionar seguridad de extremo a extremo en la comunicación multimedia.
ZRTP (Protocolo de Transporte en Tiempo Real de Zimmermann): ZRTP es un protocolo de acuerdo de claves criptográficas que proporciona cifrado de extremo a extremo para los flujos de medios RTP. Desarrollado por Phil Zimmermann, el creador de PGP, ZRTP está descrito en RFC 6189. A diferencia de SRTP, que depende de protocolos de señalización para el intercambio de claves, ZRTP está diseñado para funcionar independientemente del protocolo de señalización. Utiliza intercambio de claves Diffie-Hellman para establecer un secreto compartido entre las partes comunicantes, sin requerir confianza previa o una infraestructura de clave pública (PKI). ZRTP también incluye características como Cadenas de Autenticación Cortas (SAS) para proteger contra ataques de intermediarios.
Estos protocolos desempeñan roles esenciales en la entrega y seguridad de la comunicación multimedia en tiempo real sobre redes IP. Mientras que RTP y RTCP manejan la transmisión real de medios y el monitoreo de calidad, SRTP y ZRTP aseguran que los medios transmitidos estén protegidos contra la interceptación, manipulación y ataques de repetición.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)