Basic VoIP Protocols

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks

Protokoły sygnalizacyjne

SIP (Protokół inicjacji sesji)

To standard branżowy, aby uzyskać więcej informacji, sprawdź:

SIP (Session Initiation Protocol)

MGCP (Protokół kontroli bramy multimedialnej)

MGCP (Protokół kontroli bramy multimedialnej) to protokół sygnalizacyjny i kontroli połączeń opisany w RFC 3435. Działa w architekturze scentralizowanej, która składa się z trzech głównych komponentów:

  1. Agent połączeń lub Kontroler bramy multimedialnej (MGC): Główna brama w architekturze MGCP jest odpowiedzialna za zarządzanie i kontrolowanie bram multimedialnych. Obsługuje procesy zestawiania, modyfikacji i zakończenia połączeń. MGC komunikuje się z bramami multimedialnymi za pomocą protokołu MGCP.

  2. Bramy multimedialne (MG) lub bramy podrzędne: Te urządzenia konwertują cyfrowe strumienie multimedialne między różnymi sieciami, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo. Są zarządzane przez MGC i wykonują polecenia otrzymane od niego. Bramki multimedialne mogą zawierać funkcje takie jak transkodowanie, pakietowanie i eliminacja echa.

  3. Bramy sygnalizacyjne (SG): Te bramy są odpowiedzialne za konwersję wiadomości sygnalizacyjnych między różnymi sieciami, umożliwiając płynną komunikację między tradycyjnymi systemami telefonicznymi (np. SS7) a sieciami opartymi na IP (np. SIP lub H.323). Bramki sygnalizacyjne są kluczowe dla interoperacyjności i zapewnienia, że informacje o kontroli połączeń są prawidłowo komunikowane między różnymi sieciami.

Podsumowując, MGCP centralizuje logikę kontroli połączeń w agencie połączeń, co upraszcza zarządzanie bramami multimedialnymi i sygnalizacyjnymi, zapewniając lepszą skalowalność, niezawodność i wydajność w sieciach telekomunikacyjnych.

SCCP (Protokół kontroli klienta typu Skinny)

Protokół kontroli klienta typu Skinny (SCCP) to proprietarny protokół sygnalizacyjny i kontroli połączeń należący do Cisco Systems. Jest głównie używany do komunikacji między Cisco Unified Communications Manager (wcześniej znanym jako CallManager) a telefonami IP Cisco lub innymi punktami końcowymi głosowymi i wideo Cisco.

SCCP to lekki protokół, który upraszcza komunikację między serwerem kontroli połączeń a urządzeniami końcowymi. Nazywa się go "Skinny" ze względu na jego minimalistyczny design i zmniejszone wymagania dotyczące przepustowości w porównaniu do innych protokołów VoIP, takich jak H.323 czy SIP.

Główne komponenty systemu opartego na SCCP to:

  1. Serwer kontroli połączeń: Ten serwer, zazwyczaj Cisco Unified Communications Manager, zarządza procesami zestawiania, modyfikacji i zakończenia połączeń, a także innymi funkcjami telekomunikacyjnymi, takimi jak przekazywanie połączeń, transfer połączeń i wstrzymywanie połączeń.

  2. Punkty końcowe SCCP: To urządzenia takie jak telefony IP, jednostki wideokonferencyjne lub inne punkty końcowe głosowe i wideo Cisco, które używają SCCP do komunikacji z serwerem kontroli połączeń. Rejestrują się w serwerze, wysyłają i odbierają wiadomości sygnalizacyjne oraz wykonują instrukcje dostarczone przez serwer kontroli połączeń w celu obsługi połączeń.

  3. Bramy: Te urządzenia, takie jak bramy głosowe lub bramy multimedialne, są odpowiedzialne za konwersję strumieni multimedialnych między różnymi sieciami, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo. Mogą również zawierać dodatkowe funkcje, takie jak transkodowanie lub eliminacja echa.

SCCP oferuje prostą i wydajną metodę komunikacji między serwerami kontroli połączeń Cisco a urządzeniami końcowymi. Warto jednak zauważyć, że SCCP jest protokołem proprietarnym, co może ograniczać interoperacyjność z systemami nie-Cisco. W takich przypadkach inne standardowe protokoły VoIP, takie jak SIP, mogą być bardziej odpowiednie.

H.323

H.323 to zestaw protokołów do komunikacji multimedialnej, w tym głosu, wideo i konferencji danych w sieciach przełączanych pakietowo, takich jak sieci oparte na IP. Został opracowany przez Międzynarodową Unię Telekomunikacyjną (ITU-T) i zapewnia kompleksowy framework do zarządzania sesjami komunikacji multimedialnej.

Niektóre kluczowe komponenty zestawu H.323 obejmują:

  1. Terminale: To urządzenia końcowe, takie jak telefony IP, systemy wideokonferencyjne lub aplikacje programowe, które obsługują H.323 i mogą uczestniczyć w sesjach komunikacji multimedialnej.

  2. Bramy: Te urządzenia konwertują strumienie multimedialne między różnymi sieciami, takimi jak tradycyjna telefonia przełączana obwodowo i sieci IP przełączane pakietowo, umożliwiając interoperacyjność między H.323 a innymi systemami komunikacyjnymi. Mogą również zawierać dodatkowe funkcje, takie jak transkodowanie lub eliminacja echa.

  3. Zarządcy bram (Gatekeepers): To opcjonalne komponenty, które zapewniają usługi kontroli i zarządzania połączeniami w sieci H.323. Wykonują funkcje takie jak tłumaczenie adresów, zarządzanie przepustowością i kontrola dostępu, pomagając w zarządzaniu i optymalizacji zasobów sieciowych.

  4. Jednostki kontroli multipoint (MCU): Te urządzenia ułatwiają konferencje multipoint, zarządzając i miksując strumienie multimedialne z wielu punktów końcowych. MCU umożliwiają funkcje takie jak kontrola układu wideo, przełączanie aktywowane głosem i ciągła obecność, co umożliwia organizowanie dużych konferencji z wieloma uczestnikami.

H.323 obsługuje szereg kodeków audio i wideo, a także inne usługi dodatkowe, takie jak przekazywanie połączeń, transfer połączeń, wstrzymywanie połączeń i oczekiwanie na połączenie. Pomimo szerokiego zastosowania w początkowych dniach VoIP, H.323 stopniowo został zastąpiony przez nowocześniejsze i bardziej elastyczne protokoły, takie jak Protokół inicjacji sesji (SIP), który oferuje lepszą interoperacyjność i łatwiejszą implementację. Niemniej jednak H.323 pozostaje w użyciu w wielu systemach dziedzictwa i nadal jest wspierany przez różnych dostawców sprzętu.

IAX (Inter Asterisk eXchange)

IAX (Inter-Asterisk eXchange) to protokół sygnalizacyjny i kontroli połączeń głównie używany do komunikacji między serwerami Asterisk PBX (Prywatna Centrala Telefoniczna) a innymi urządzeniami VoIP. Został opracowany przez Marka Spencera, twórcę oprogramowania Asterisk open-source PBX, jako alternatywa dla innych protokołów VoIP, takich jak SIP i H.323.

IAX jest znany z prostoty, wydajności i łatwości implementacji. Niektóre kluczowe cechy IAX obejmują:

  1. Pojedynczy port UDP: IAX używa jednego portu UDP (4569) zarówno do sygnalizacji, jak i ruchu multimedialnego, co upraszcza przechodzenie przez zapory i NAT, ułatwiając wdrażanie w różnych środowiskach sieciowych.

  2. Protokół binarny: W przeciwieństwie do protokołów opartych na tekście, takich jak SIP, IAX jest protokołem binarnym, co zmniejsza jego zużycie pasma i czyni go bardziej wydajnym w przesyłaniu danych sygnalizacyjnych i multimedialnych.

  3. Trunking: IAX obsługuje trunking, co pozwala na łączenie wielu połączeń w jedno połączenie sieciowe, zmniejszając narzut i poprawiając wykorzystanie pasma.

  4. Natywne szyfrowanie: IAX ma wbudowane wsparcie dla szyfrowania, używając metod takich jak RSA do wymiany kluczy i AES do szyfrowania mediów, zapewniając bezpieczną komunikację między punktami końcowymi.

  5. Komunikacja peer-to-peer: IAX może być używany do bezpośredniej komunikacji między punktami końcowymi bez potrzeby centralnego serwera, co umożliwia prostsze i bardziej wydajne routowanie połączeń.

Pomimo swoich zalet, IAX ma pewne ograniczenia, takie jak główny nacisk na ekosystem Asterisk i mniejsze rozpowszechnienie w porównaniu do bardziej ustalonych protokołów, takich jak SIP. W związku z tym IAX może nie być najlepszym wyborem do interoperacyjności z systemami lub urządzeniami nie-Asterisk. Jednak dla tych, którzy pracują w środowisku Asterisk, IAX oferuje solidne i wydajne rozwiązanie do komunikacji VoIP.

Protokoły transmisji i transportu

SDP (Protokół opisu sesji)

SDP (Protokół opisu sesji) to format oparty na tekście używany do opisywania cech sesji multimedialnych, takich jak głos, wideo lub konferencje danych, w sieciach IP. Został opracowany przez Internet Engineering Task Force (IETF) i jest zdefiniowany w RFC 4566. SDP nie obsługuje rzeczywistej transmisji mediów ani ustanawiania sesji, ale jest używany w połączeniu z innymi protokołami sygnalizacyjnymi, takimi jak SIP (Protokół inicjacji sesji), do negocjowania i wymiany informacji o strumieniach mediów i ich atrybutach.

Niektóre kluczowe elementy SDP obejmują:

  1. Informacje o sesji: SDP opisuje szczegóły sesji multimedialnej, w tym nazwę sesji, opis sesji, czas rozpoczęcia i czas zakończenia.

  2. Strumienie mediów: SDP definiuje cechy strumieni mediów, takie jak typ mediów (audio, wideo lub tekst), protokół transportowy (np. RTP lub SRTP) oraz format mediów (np. informacje o kodeku).

  3. Informacje o połączeniu: SDP dostarcza informacji o adresie sieciowym (adres IP) i numerze portu, na który media powinny być wysyłane lub odbierane.

  4. Atrybuty: SDP wspiera użycie atrybutów do dostarczania dodatkowych, opcjonalnych informacji o sesji lub strumieniu mediów. Atrybuty mogą być używane do określania różnych funkcji, takich jak klucze szyfrowania, wymagania dotyczące przepustowości lub mechanizmy kontroli mediów.

SDP jest zazwyczaj używany w następującym procesie:

  1. Inicjująca strona tworzy opis SDP proponowanej sesji multimedialnej, w tym szczegóły strumieni mediów i ich atrybuty.

  2. Opis SDP jest wysyłany do strony odbierającej, zazwyczaj osadzony w wiadomości protokołu sygnalizacyjnego, takiej jak SIP lub RTSP.

  3. Strona odbierająca przetwarza opis SDP, a w zależności od swoich możliwości, może zaakceptować, odrzucić lub zmodyfikować proponowaną sesję.

  4. Ostateczny opis SDP jest wysyłany z powrotem do inicjującej strony jako część wiadomości protokołu sygnalizacyjnego, kończąc proces negocjacji.

Prostota i elastyczność SDP sprawiają, że jest to szeroko przyjęty standard do opisywania sesji multimedialnych w różnych systemach komunikacyjnych, odgrywając kluczową rolę w ustanawianiu i zarządzaniu sesjami multimedialnymi w czasie rzeczywistym w sieciach IP.

RTP / RTCP / SRTP / ZRTP

  1. RTP (Protokół transportu w czasie rzeczywistym): RTP to protokół sieciowy zaprojektowany do dostarczania danych audio i wideo lub innych mediów w czasie rzeczywistym przez sieci IP. Opracowany przez IETF i zdefiniowany w RFC 3550, RTP jest powszechnie używany z protokołami sygnalizacyjnymi, takimi jak SIP i H.323, aby umożliwić komunikację multimedialną. RTP zapewnia mechanizmy do synchronizacji, sekwencjonowania i znacznikowania czasowego strumieni mediów, pomagając zapewnić płynne i terminowe odtwarzanie mediów.

  2. RTCP (Protokół kontroli transportu w czasie rzeczywistym): RTCP to protokół towarzyszący RTP, używany do monitorowania jakości usług (QoS) i dostarczania informacji zwrotnej na temat transmisji strumieni mediów. Zdefiniowany w tym samym RFC 3550 co RTP, RTCP okresowo wymienia pakiety kontrolne między uczestnikami sesji RTP. Dzieli się informacjami takimi jak utrata pakietów, jitter i czas okrążenia, co pomaga w diagnozowaniu i dostosowywaniu się do warunków sieciowych, poprawiając ogólną jakość mediów.

  3. SRTP (Bezpieczny protokół transportu w czasie rzeczywistym): SRTP to rozszerzenie RTP, które zapewnia szyfrowanie, uwierzytelnianie wiadomości i ochronę przed powtórkami dla strumieni mediów, zapewniając bezpieczną transmisję wrażliwych danych audio i wideo. Zdefiniowany w RFC 3711, SRTP używa algorytmów kryptograficznych, takich jak AES do szyfrowania i HMAC-SHA1 do uwierzytelniania wiadomości. SRTP jest często używany w połączeniu z bezpiecznymi protokołami sygnalizacyjnymi, takimi jak SIP przez TLS, aby zapewnić bezpieczeństwo end-to-end w komunikacji multimedialnej.

  4. ZRTP (Protokół transportu w czasie rzeczywistym Zimmermanna): ZRTP to protokół uzgadniania kluczy kryptograficznych, który zapewnia szyfrowanie end-to-end dla strumieni mediów RTP. Opracowany przez Phila Zimmermanna, twórcę PGP, ZRTP jest opisany w RFC 6189. W przeciwieństwie do SRTP, który polega na protokołach sygnalizacyjnych do wymiany kluczy, ZRTP jest zaprojektowany do pracy niezależnie od protokołu sygnalizacyjnego. Używa wymiany kluczy Diffiego-Hellmana do ustanowienia wspólnego sekretu między komunikującymi się stronami, bez potrzeby wcześniejszego zaufania lub infrastruktury kluczy publicznych (PKI). ZRTP zawiera również funkcje takie jak Krótkie Ciągi Uwierzytelniające (SAS), aby chronić przed atakami typu man-in-the-middle.

Te protokoły odgrywają istotną rolę w dostarczaniu i zabezpieczaniu komunikacji multimedialnej w czasie rzeczywistym przez sieci IP. Podczas gdy RTP i RTCP obsługują rzeczywistą transmisję mediów i monitorowanie jakości, SRTP i ZRTP zapewniają, że przesyłane media są chronione przed podsłuchiwaniem, manipulacją i atakami powtórkowymi.

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks

Last updated