.. | ||
README.md | ||
sip-session-initiation-protocol.md |
Basic VoIP Protocols
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Signaling Protocols
SIP (Session Initiation Protocol)
Αυτό είναι το βιομηχανικό πρότυπο, για περισσότερες πληροφορίες δείτε:
{% content-ref url="sip-session-initiation-protocol.md" %} sip-session-initiation-protocol.md {% endcontent-ref %}
MGCP (Media Gateway Control Protocol)
MGCP (Media Gateway Control Protocol) είναι ένα πρωτόκολλο σήμανσης και ελέγχου κλήσεων που περιγράφεται στο RFC 3435. Λειτουργεί σε μια κεντρική αρχιτεκτονική, η οποία αποτελείται από τρία κύρια στοιχεία:
- Call Agent ή Media Gateway Controller (MGC): Η κύρια πύλη στην αρχιτεκτονική MGCP είναι υπεύθυνη για τη διαχείριση και τον έλεγχο των πύλων πολυμέσων. Διαχειρίζεται τις διαδικασίες εγκατάστασης, τροποποίησης και τερματισμού κλήσεων. Ο MGC επικοινωνεί με τις πύλες πολυμέσων χρησιμοποιώντας το πρωτόκολλο MGCP.
- Media Gateways (MGs) ή Slave Gateways: Αυτές οι συσκευές μετατρέπουν ψηφιακά ρεύματα πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα. Διαχειρίζονται από τον MGC και εκτελούν εντολές που λαμβάνουν από αυτόν. Οι πύλες πολυμέσων μπορεί να περιλαμβάνουν λειτουργίες όπως η μετατροπή, η πακετοποίηση και η ακύρωση ηχούς.
- Signaling Gateways (SGs): Αυτές οι πύλες είναι υπεύθυνες για τη μετατροπή μηνυμάτων σήμανσης μεταξύ διαφορετικών δικτύων, επιτρέποντας την απρόσκοπτη επικοινωνία μεταξύ παραδοσιακών τηλεφωνικών συστημάτων (π.χ. SS7) και δικτύων IP (π.χ. SIP ή H.323). Οι πύλες σήμανσης είναι κρίσιμες για την αλληλεπίδραση και τη διασφάλιση ότι οι πληροφορίες ελέγχου κλήσεων επικοινωνούνται σωστά μεταξύ των διαφορετικών δικτύων.
Συνοπτικά, το MGCP κεντρικοποιεί τη λογική ελέγχου κλήσεων στον πράκτορα κλήσεων, απλοποιώντας τη διαχείριση των πύλων πολυμέσων και σήμανσης, παρέχοντας καλύτερη κλιμάκωση, αξιοπιστία και αποδοτικότητα στα τηλεπικοινωνιακά δίκτυα.
SCCP (Skinny Client Control Protocol)
Το Skinny Client Control Protocol (SCCP) είναι ένα ιδιόκτητο πρωτόκολλο σήμανσης και ελέγχου κλήσεων που ανήκει στην Cisco Systems. Χρησιμοποιείται κυρίως για την επικοινωνία μεταξύ του Cisco Unified Communications Manager (πρώην CallManager) και των IP τηλεφώνων της Cisco ή άλλων τερματικών φωνής και βίντεο της Cisco.
Το SCCP είναι ένα ελαφρύ πρωτόκολλο που απλοποιεί την επικοινωνία μεταξύ του διακομιστή ελέγχου κλήσεων και των τερματικών συσκευών. Αναφέρεται ως "Skinny" λόγω του μινιμαλιστικού σχεδιασμού του και των μειωμένων απαιτήσεων εύρους ζώνης σε σύγκριση με άλλα πρωτόκολλα VoIP όπως το H.323 ή το SIP.
Τα κύρια στοιχεία ενός συστήματος βασισμένου σε SCCP είναι:
- Call Control Server: Αυτός ο διακομιστής, συνήθως ένας Cisco Unified Communications Manager, διαχειρίζεται τις διαδικασίες εγκατάστασης, τροποποίησης και τερματισμού κλήσεων, καθώς και άλλες τηλεφωνικές δυνατότητες όπως η προώθηση κλήσεων, η μεταφορά κλήσεων και η αναμονή κλήσεων.
- SCCP Endpoints: Αυτές είναι συσκευές όπως IP τηλέφωνα, μονάδες τηλεδιάσκεψης ή άλλες τερματικές συσκευές φωνής και βίντεο της Cisco που χρησιμοποιούν το SCCP για να επικοινωνούν με τον διακομιστή ελέγχου κλήσεων. Εγγράφονται στον διακομιστή, στέλνουν και λαμβάνουν μηνύματα σήμανσης και ακολουθούν τις οδηγίες που παρέχονται από τον διακομιστή ελέγχου κλήσεων για τη διαχείριση κλήσεων.
- Gateways: Αυτές οι συσκευές, όπως οι πύλες φωνής ή οι πύλες πολυμέσων, είναι υπεύθυνες για τη μετατροπή ρευμάτων πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα. Μπορεί επίσης να περιλαμβάνουν πρόσθετη λειτουργικότητα, όπως η μετατροπή ή η ακύρωση ηχούς.
Το SCCP προσφέρει μια απλή και αποδοτική μέθοδο επικοινωνίας μεταξύ των διακομιστών ελέγχου κλήσεων της Cisco και των τερματικών συσκευών. Ωστόσο, αξίζει να σημειωθεί ότι το SCCP είναι ένα ιδιόκτητο πρωτόκολλο, το οποίο μπορεί να περιορίσει την αλληλεπίδραση με μη συστήματα της Cisco. Σε τέτοιες περιπτώσεις, άλλα πρότυπα VoIP όπως το SIP μπορεί να είναι πιο κατάλληλα.
H.323
Το H.323 είναι μια σουίτα πρωτοκόλλων για πολυμεσική επικοινωνία, συμπεριλαμβανομένων φωνής, βίντεο και συνεδριών δεδομένων μέσω δικτύων με πακέτα, όπως τα δίκτυα IP. Αναπτύχθηκε από την Διεθνή Ένωση Τηλεπικοινωνιών (ITU-T) και παρέχει ένα ολοκληρωμένο πλαίσιο για τη διαχείριση συνεδριών πολυμεσικής επικοινωνίας.
Ορισμένα βασικά στοιχεία της σουίτας H.323 περιλαμβάνουν:
- Terminals: Αυτές είναι τερματικές συσκευές, όπως IP τηλέφωνα, συστήματα τηλεδιάσκεψης ή λογισμικά εφαρμογών, που υποστηρίζουν το H.323 και μπορούν να συμμετάσχουν σε συνεδρίες πολυμεσικής επικοινωνίας.
- Gateways: Αυτές οι συσκευές μετατρέπουν ρεύματα πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα, επιτρέποντας την αλληλεπίδραση μεταξύ του H.323 και άλλων συστημάτων επικοινωνίας. Μπορεί επίσης να περιλαμβάνουν πρόσθετη λειτουργικότητα, όπως η μετατροπή ή η ακύρωση ηχούς.
- Gatekeepers: Αυτά είναι προαιρετικά στοιχεία που παρέχουν υπηρεσίες ελέγχου και διαχείρισης κλήσεων σε ένα δίκτυο H.323. Εκτελούν λειτουργίες όπως η μετάφραση διευθύνσεων, η διαχείριση εύρους ζώνης και ο έλεγχος εισόδου, βοηθώντας στη διαχείριση και βελτιστοποίηση των πόρων του δικτύου.
- Multipoint Control Units (MCUs): Αυτές οι συσκευές διευκολύνουν τις πολυδιάστατες συνεδρίες διαχειριζόμενες και αναμειγνύοντας ρεύματα πολυμέσων από πολλαπλές τερματικές συσκευές. Οι MCUs επιτρέπουν δυνατότητες όπως ο έλεγχος διάταξης βίντεο, η εναλλαγή με βάση τη φωνή και η συνεχής παρουσία, καθιστώντας δυνατή τη φιλοξενία μεγάλων συνεδριών με πολλούς συμμετέχοντες.
Το H.323 υποστηρίζει μια σειρά από κωδικοποιητές ήχου και βίντεο, καθώς και άλλες συμπληρωματικές υπηρεσίες όπως η προώθηση κλήσεων, η μεταφορά κλήσεων, η αναμονή κλήσεων και η αναμονή κλήσεων. Παρά την ευρεία υιοθέτησή του στις πρώτες ημέρες του VoIP, το H.323 έχει σταδιακά αντικατασταθεί από πιο σύγχρονα και ευέλικτα πρωτόκολλα όπως το Session Initiation Protocol (SIP), το οποίο προσφέρει καλύτερη αλληλεπίδραση και ευκολότερη εφαρμογή. Ωστόσο, το H.323 παραμένει σε χρήση σε πολλά κληρονομικά συστήματα και συνεχίζει να υποστηρίζεται από διάφορους προμηθευτές εξοπλισμού.
IAX (Inter Asterisk eXchange)
IAX (Inter-Asterisk eXchange) είναι ένα πρωτόκολλο σήμανσης και ελέγχου κλήσεων που χρησιμοποιείται κυρίως για την επικοινωνία μεταξύ των διακομιστών Asterisk PBX (Private Branch Exchange) και άλλων συσκευών VoIP. Αναπτύχθηκε από τον Mark Spencer, τον δημιουργό του λογισμικού Asterisk open-source PBX, ως εναλλακτική λύση σε άλλα πρωτόκολλα VoIP όπως το SIP και το H.323.
Το IAX είναι γνωστό για την απλότητά του, την αποδοτικότητα και την ευκολία εφαρμογής. Ορισμένα βασικά χαρακτηριστικά του IAX περιλαμβάνουν:
- Single UDP Port: Το IAX χρησιμοποιεί μια μόνο θύρα UDP (4569) για τη σήμανση και την κυκλοφορία πολυμέσων, γεγονός που απλοποιεί την παρακολούθηση τείχους προστασίας και NAT, διευκολύνοντας την ανάπτυξή του σε διάφορα περιβάλλοντα δικτύου.
- Binary Protocol: Σε αντίθεση με τα πρωτόκολλα κειμένου όπως το SIP, το IAX είναι ένα δυαδικό πρωτόκολλο, το οποίο μειώνει την κατανάλωση εύρους ζώνης και το καθιστά πιο αποδοτικό για τη μετάδοση δεδομένων σήμανσης και πολυμέσων.
- Trunking: Το IAX υποστηρίζει το trunking, το οποίο επιτρέπει σε πολλές κλήσεις να συνδυάζονται σε μια μόνο σύνδεση δικτύου, μειώνοντας την υπερβολική φόρτωση και βελτιώνοντας τη χρησιμοποίηση του εύρους ζώνης.
- Native Encryption: Το IAX έχει ενσωματωμένη υποστήριξη για κρυπτογράφηση, χρησιμοποιώντας μεθόδους όπως το RSA για την ανταλλαγή κλειδιών και το AES για την κρυπτογράφηση πολυμέσων, παρέχοντας ασφαλή επικοινωνία μεταξύ των τερματικών.
- Peer-to-Peer Communication: Το IAX μπορεί να χρησιμοποιηθεί για άμεση επικοινωνία μεταξύ τερματικών χωρίς την ανάγκη κεντρικού διακομιστή, επιτρέποντας απλούστερη και πιο αποδοτική δρομολόγηση κλήσεων.
Παρά τα οφέλη του, το IAX έχει ορισμένους περιορισμούς, όπως η κύρια εστίασή του στο οικοσύστημα Asterisk και η λιγότερη ευρεία υιοθέτησή του σε σύγκριση με πιο καθιερωμένα πρωτόκολλα όπως το SIP. Ωστόσο, για όσους εργάζονται στο περιβάλλον Asterisk, το IAX προσφέρει μια robust και αποδοτική λύση για την επικοινωνία VoIP.
Transmission & Transport Protocols
SDP (Session Description Protocol)
Το SDP (Session Description Protocol) είναι μια μορφή κειμένου που χρησιμοποιείται για να περιγράψει τα χαρακτηριστικά των πολυμεσικών συνεδριών, όπως η φωνή, το βίντεο ή η τηλεδιάσκεψη, μέσω δικτύων IP. Αναπτύχθηκε από την Internet Engineering Task Force (IETF) και ορίζεται στο RFC 4566. Το SDP δεν χειρίζεται τη μετάδοση των πραγματικών πολυμέσων ή την εγκατάσταση συνεδριών, αλλά χρησιμοποιείται σε συνδυασμό με άλλα πρωτόκολλα σήμανσης, όπως το SIP (Session Initiation Protocol), για να διαπραγματευτεί και να ανταλλάξει πληροφορίες σχετικά με τα ρεύματα πολυμέσων και τα χαρακτηριστικά τους.
Ορισμένα βασικά στοιχεία του SDP περιλαμβάνουν:
- Session Information: Το SDP περιγράφει τις λεπτομέρειες μιας πολυμεσικής συνεδρίας, συμπεριλαμβανομένου του ονόματος της συνεδρίας, της περιγραφής της συνεδρίας, της ώρας έναρξης και της ώρας λήξης.
- Media Streams: Το SDP ορίζει τα χαρακτηριστικά των ρευμάτων πολυμέσων, όπως ο τύπος πολυμέσων (ήχος, βίντεο ή κείμενο), το πρωτόκολλο μεταφοράς (π.χ. RTP ή SRTP) και τη μορφή πολυμέσων (π.χ. πληροφορίες κωδικοποιητή).
- Connection Information: Το SDP παρέχει πληροφορίες σχετικά με τη διεύθυνση δικτύου (διεύθυνση IP) και τον αριθμό θύρας όπου πρέπει να σταλούν ή να ληφθούν τα πολυμέσα.
- Attributes: Το SDP υποστηρίζει τη χρήση χαρακτηριστικών για την παροχή πρόσθετων, προαιρετικών πληροφοριών σχετικά με μια συνεδρία ή ένα ρεύμα πολυμέσων. Τα χαρακτηριστικά μπορούν να χρησιμοποιηθούν για τον καθορισμό διαφόρων λειτουργιών όπως τα κλειδιά κρυπτογράφησης, οι απαιτήσεις εύρους ζώνης ή οι μηχανισμοί ελέγχου πολυμέσων.
Το SDP χρησιμοποιείται συνήθως στη διαδικασία:
- Ένα αρχικό μέρος δημιουργεί μια περιγραφή SDP της προτεινόμενης πολυμεσικής συνεδρίας, συμπεριλαμβανομένων των λεπτομερειών των ρευμάτων πολυμέσων και των χαρακτηριστικών τους.
- Η περιγραφή SDP αποστέλλεται στο παραλαμβάνον μέρος, συνήθως ενσωματωμένη σε ένα μήνυμα πρωτοκόλλου σήμανσης όπως το SIP ή το RTSP.
- Το παραλαμβάνον μέρος επεξεργάζεται την περιγραφή SDP και, με βάση τις δυνατότητές του, μπορεί να αποδεχθεί, να απορρίψει ή να τροποποιήσει την προτεινόμενη συνεδρία.
- Η τελική περιγραφή SDP αποστέλλεται πίσω στο αρχικό μέρος ως μέρος του μηνύματος πρωτοκόλλου σήμανσης, ολοκληρώνοντας τη διαδικασία διαπραγμάτευσης.
Η απλότητα και η ευελιξία του SDP το καθιστούν ένα ευρέως υιοθετημένο πρότυπο για την περιγραφή πολυμεσικών συνεδριών σε διάφορα συστήματα επικοινωνίας, παίζοντας κρίσιμο ρόλο στην εγκατάσταση και τη διαχείριση πραγματικών πολυμεσικών συνεδριών μέσω δικτύων IP.
RTP / RTCP / SRTP / ZRTP
- RTP (Real-time Transport Protocol): Το RTP είναι ένα πρωτόκολλο δικτύου σχεδιασμένο για την παράδοση ήχου και βίντεο δεδομένων, ή άλλων πραγματικών πολυμέσων, μέσω δικτύων IP. Αναπτύχθηκε από την IETF και ορίζεται στο RFC 3550, το RTP χρησιμοποιείται συνήθως με πρωτόκολλα σήμανσης όπως το SIP και το H.323 για να επιτρέψει την πολυμεσική επικοινωνία. Το RTP παρέχει μηχανισμούς για συγχρονισμό, αλληλουχία και χρονοσήμανση των ρευμάτων πολυμέσων, βοηθώντας να διασφαλιστεί η ομαλή και έγκαιρη αναπαραγωγή πολυμέσων.
- RTCP (Real-time Transport Control Protocol): Το RTCP είναι ένα συνοδευτικό πρωτόκολλο του RTP, που χρησιμοποιείται για την παρακολούθηση της ποιότητας υπηρεσίας (QoS) και την παροχή ανατροφοδότησης σχετικά με τη μετάδοση των ρευμάτων πολυμέσων. Οριζόμενο στο ίδιο RFC 3550 με το RTP, το RTCP ανταλλάσσει περιοδικά πακέτα ελέγχου μεταξύ των συμμετεχόντων σε μια συνεδρία RTP. Μοιράζεται πληροφορίες όπως η απώλεια πακέτων, η τζιτζι και ο χρόνος επιστροφής, που βοηθούν στη διάγνωση και την προσαρμογή στις συνθήκες του δικτύου, βελτιώνοντας τη συνολική ποιότητα των πολυμέσων.
- SRTP (Secure Real-time Transport Protocol): Το SRTP είναι μια επέκταση του RTP που παρέχει κρυπτογράφηση, αυθεντικοποίηση μηνυμάτων και προστασία από επανάληψη για ρεύματα πολυμέσων, διασφαλίζοντας ασφαλή μετάδοση ευαίσθητων δεδομένων ήχου και βίντεο. Οριζόμενο στο RFC 3711, το SRTP χρησιμοποιεί κρυπτογραφικούς αλγόριθμους όπως το AES για κρυπτογράφηση και το HMAC-SHA1 για αυθεντικοποίηση μηνυμάτων. Το SRTP χρησιμοποιείται συχνά σε συνδυασμό με ασφαλή πρωτόκολλα σήμανσης όπως το SIP μέσω TLS για να παρέχει ασφάλεια από άκρο σε άκρο στην πολυμεσική επικοινωνία.
- ZRTP (Zimmermann Real-time Transport Protocol): Το ZRTP είναι ένα πρωτόκολλο συμφωνίας κλειδιών κρυπτογράφησης που παρέχει κρυπτογράφηση από άκρο σε άκρο για ρεύματα πολυμέσων RTP. Αναπτύχθηκε από τον Phil Zimmermann, τον δημιουργό του PGP, το ZRTP περιγράφεται στο RFC 6189. Σε αντίθεση με το SRTP, το οποίο βασίζεται σε πρωτόκολλα σήμανσης για την ανταλλαγή κλειδιών, το ZRTP έχει σχεδιαστεί για να λειτουργεί ανεξάρτητα από το πρωτόκολλο σήμανσης. Χρησιμοποιεί την ανταλλαγή κλειδιών Diffie-Hellman για να καθορίσει ένα κοινό μυστικό μεταξύ των επικοινωνούντων μερών, χωρίς να απαιτεί προηγούμενη εμπιστοσύνη ή υποδομή δημόσιου κλειδιού (PKI). Το ZRTP περιλαμβάνει επίσης χαρακτηριστικά όπως Short Authentication Strings (SAS) για την προστασία από επιθέσεις man-in-the-middle.
Αυτά τα πρωτόκολλα παίζουν ουσιαστικούς ρόλους στην παράδοση και την ασφάλεια της πραγματικής πολυμεσικής επικοινωνίας μέσω δικτύων IP. Ενώ το RTP και το RTCP χειρίζονται τη μετάδοση των πραγματικών πολυμέσων και την παρακολούθηση ποιότητας, το SRTP και το ZRTP διασφαλίζουν ότι τα μεταδιδόμενα πολυμέσα προστατεύονται από υποκλοπές, αλλοιώσεις και επιθέσεις επανάληψης.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.