Basic VoIP Protocols

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

WhiteIntel to dark-web-owy silnik wyszukiwania, który oferuje darmowe funkcje sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z oprogramowania kradnącego informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:


Protokoły sygnalizacyjne

SIP (Protokół inicjacji sesji)

Jest to standard przemysłowy, aby uzyskać więcej informacji, sprawdź:

pageSIP (Session Initiation Protocol)

MGCP (Protokół kontroli bramy multimedialnej)

MGCP (Media Gateway Control Protocol) 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 kontrolę bram multimedialnych. Obsługuje procesy konfiguracji, modyfikacji i zakończenia połączeń. MGC komunikuje się z bramami multimedialnymi za pomocą protokołu MGCP.

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

  3. Bramy sygnalizacyjne (SG): Te bramy są odpowiedzialne za konwertowanie komunikatów 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). Bramy sygnalizacyjne są kluczowe dla interoperacyjności i zapewnienia prawidłowej komunikacji informacji o kontroli połączeń między różnymi sieciami.

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

SCCP (Protokół kontroli klienta Skinny)

Skinny Client Control Protocol (SCCP) to własny protokół sygnalizacyjny i kontroli połączeń należący do Cisco Systems. Jest on głównie używany do komunikacji między Cisco Unified Communications Manager (dawniej znany jako CallManager) a telefonami IP Cisco lub innymi punktami końcowymi głosu i wideo Cisco.

SCCP to lekki protokół, który upraszcza komunikację między serwerem kontroli połączeń a urządzeniami końcowymi. Jest nazywany "Skinny" ze względu na swoje minimalistyczne projekty i mniejsze wymagania dotyczące przepustowości w porównaniu z innymi protokołami VoIP, takimi jak H.323 lub SIP.

Główne składniki systemu opartego na SCCP to:

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

  2. Punkty końcowe SCCP: Są to urządzenia, takie jak telefony IP, jednostki wideokonferencyjne lub inne punkty końcowe głosu i wideo Cisco, które używają SCCP do komunikacji z serwerem kontroli połączeń. Rejestrują się one w serwerze, wysyłają i odbierają komunikaty sygnalizacyjne oraz wykonują instrukcje podane przez serwer kontroli połączeń w zakresie obsługi połączeń.

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

SCCP oferuje prosty i efektywny sposób komunikacji między serwerami kontroli połączeń Cisco a urządzeniami końcowymi. Warto jednak zauważyć, że SCCP to protokół własnościowy, 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łosowej, wideo i konferencji danych w sieciach przełączanych pakietowo, takich jak sieci oparte na IP. Został opracowany przez Międzynarodowy Związek Telekomunikacyjny (ITU-T) i zapewnia kompleksową strukturę do zarządzania sesjami komunikacji multimedialnej.

Niektóre kluczowe składniki zestawu H.323 to:

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

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

  3. Bramy kontrolne: Są to opcjonalne komponenty, które zapewniają usługi kontroli połączeń i zarządzania w sieci H.323. Wykonują funkcje takie jak tłumaczenie adresów, zarządzanie przepustowością i kontrola dostępu, pomagając zarządzać i optymalizować zasoby sieci.

  4. Jednostki kontroli wielopunktowej (MCU): Te urządzenia ułatwiają konferencje wielopunktowe, zarządzając i mieszając strumienie mediów 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ść, umożliwiając organizowanie konferencji o dużym zasięgu z udziałem wielu uczestników.

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ń, utrzymanie połączenia i oczekiwanie na połączenie. Pomimo swojego szerokiego zastosowania we wczesnych dniach VoIP, H.323 stopniowo został zastąpiony przez bardziej nowoczesne i elastyczne protokoły, takie jak Protokół inicjacji sesji (SIP), który oferuje lepszą interoperacyjność i łatwiejszą implementację. Niemniej jednak H.323 nadal jest używany w wielu systemach dziedzicznych i nadal jest obsługiwany 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 (Private Branch Exchange) a innymi urządzeniami VoIP. Został opracowany przez Marka Spencera, twórcę oprogramowania Asterisk PBX typu open-source, jako alternatywę dla innych protokołów VoIP, takich jak SIP i H.323.

IAX jest znany ze swojej prostoty, efektywności i łatwości implementacji. Niektóre kluczowe cechy IAX to:

  1. Jeden port UDP: IAX używa jednego portu UDP (4569) zarówno do sygnalizacji, jak i ruchu multimedialnego, co upraszcza przekraczanie zapór ogniowych i NAT, ułatwiając wdrożenie 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 przepustowości i sprawia, że jest bardziej efektywny 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 nadmiar i poprawiając wykorzystanie przepustowości.

  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 punkt-punkt: IAX może być używany do bezpośredniej komunikacji między punktami końcowymi bez konieczności centralnego serwera, umożliwiając prostsze i bardziej efektywne kierowanie połączeniami.

Mimo swoich zalet IAX ma pewne ograniczenia, takie jak główne skupienie na ekosystemie Asterisk i mniejsze rozpowszechnienie w porównaniu z bardziej ugruntowanymi protokołami, takimi jak SIP. W rezultacie IAX może nie być najlepszym wyborem dla interoperacyjności z systemami lub urządzeniami spoza środowiska Asterisk. Niemniej jednak dla osób pracujących w środowisku Asterisk, IAX oferuje solidne i efektywne rozwiązanie do komunikacji VoIP.

Protokoły transmisji i transportu

SDP (Session Description Protocol)

SDP (Session Description Protocol) 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 zajmuje się faktyczną transmisją mediów ani ustanawianiem sesji, ale jest używany w połączeniu z innymi protokołami sygnalizacyjnymi, takimi jak SIP (Session Initiation Protocol), do negocjacji i wymiany informacji na temat strumieni mediów i ich cech.

Niektóre kluczowe elementy SDP to:

  1. Informacje o sesji: SDP opisuje szczegóły sesji multimedialnej, w tym nazwę sesji, opis sesji, czas rozpoczęcia i 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) i format mediów (np. informacje o kodeku).

  3. Informacje o połączeniu: SDP dostarcza informacje o adresie sieciowym (adres IP) i numerze portu, na który należy wysłać lub odebrać media.

  4. Atrybuty: SDP obsługuje 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 cechy.

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

  3. Strona odbierająca przetwarza opis SDP i na podstawie 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, finalizując proces negocjacji.

Prostota i elastyczność SDP sprawiają, że jest powszechnie przyjętym standardem 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 (Real-time Transport Protocol): RTP to protokół sieciowy zaprojektowany do dostarczania danych audio i wideo lub innych mediów w czasie rzeczywistym w sieciach IP. Opracowany przez IETF i zdefiniowany w RFC 3550, RTP jest często używany z protokołami sygnalizacyjnymi, takimi jak SIP i H.323, do umożliwienia komunikacji multimedialnej. RTP zapewnia mechanizmy synchronizacji, sekwencjonowania i znakowania czasowego strumieni mediów, pomagając zapewnić płynne i terminowe odtwarzanie mediów.

  2. RTCP (Real-time Transport Control Protocol): RTCP to protokół towarzyszący RTP, używany do monitorowania jakości usługi (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. Udostępnia informacje takie jak utrata pakietów, dżiter, czas podróży w obie strony, co pomaga w diagnozowaniu i dostosowywaniu się do warunków sieciowych, poprawiając ogólną jakość mediów.

  3. SRTP (Secure Real-time Transport Protocol): SRTP to rozszerzenie RTP zapewniające szyfrowanie, uwierzytelnianie wiadomości i ochronę przed odtworzeniem 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 (Zimmermann Real-time Transport Protocol): ZRTP to protokół uzgadniania klucza kryptograficznego zapewniający 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. Wykorzystuje wymianę kluczy Diffie-Hellmana do ustanowienia wspólnego sekretu między komunikującymi się stronami, nie wymagając wcześniejszego zaufania ani infrastruktury klucza publicznego (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ą istotne role w dostarczaniu i zabezpieczaniu komunikacji multimedialnej w czasie rzeczywistym w sieciach IP. Podczas gdy RTP i RTCP zajmują się faktyczną transmisją mediów i monitorowaniem jakości, SRTP i ZRTP zapewniają, że przesyłane media są chronione przed podsłuchiwaniem, manipulacją i atakami typu odtworzenie.

Last updated