mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
98 lines
13 KiB
Markdown
98 lines
13 KiB
Markdown
# Podstawowe protokoły VoIP
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
## Protokoły sygnalizacyjne
|
|
|
|
### SIP (Protokół Inicjacji Sesji)
|
|
|
|
To standard branżowy, aby uzyskać więcej informacji, sprawdź:
|
|
|
|
{{#ref}}
|
|
sip-session-initiation-protocol.md
|
|
{{#endref}}
|
|
|
|
### MGCP (Protokół Kontroli Bramy Mediów)
|
|
|
|
MGCP (Protokół Kontroli Bramy Mediów) 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 Mediów (MGC)**: Główna brama w architekturze MGCP jest odpowiedzialna za **zarządzanie i kontrolowanie bram mediów**. Obsługuje procesy nawiązywania, modyfikacji i zakończenia połączeń. MGC komunikuje się z bramami mediów za pomocą protokołu MGCP.
|
|
2. **Bramy Mediów (MG) lub Bramy Podległe**: Te urządzenia **konwertują cyfrowe strumienie mediów 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 mediów 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). Bramy 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 mediów i sygnalizacyjnymi, zapewniając lepszą skalowalność, niezawodność i wydajność w sieciach telekomunikacyjnych.
|
|
|
|
### SCCP (Protokół Kontroli Klienta Skinny)
|
|
|
|
Protokół Kontroli Klienta 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ę "Skinny" ze względu na 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 nawiązywania, 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 mediów, są odpowiedzialne za konwersję strumieni mediów 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 mediów 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 Wielopunktowej (MCU)**: Te urządzenia ułatwiają konferencje wielopunktowe, zarządzając i miksują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ść, co umożliwia organizowanie konferencji na dużą skalę 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 ze swojej **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 mediów, 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 mediów.
|
|
3. **Trunking**: IAX obsługuje trunking, co pozwala na łączenie wielu połączeń w jedno połączenie sieciowe, zmniejszając narzuty 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 nawiązywania 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. Strona inicjująca 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 strony inicjującej 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 nawiązywaniu 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 przejazdu, 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 ustalenia 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.
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|