Βασικά Πρωτόκολλα VoIP
Reading time: 11 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Πρωτόκολλα Σηματοδότησης
SIP (Πρωτόκολλο Έναρξης Συνεδρίας)
Αυτό είναι το βιομηχανικό πρότυπο, για περισσότερες πληροφορίες ελέγξτε:
SIP (Session Initiation Protocol)
MGCP (Πρωτόκολλο Ελέγχου Πύλης Πολυμέσων)
MGCP (Πρωτόκολλο Ελέγχου Πύλης Πολυμέσων) είναι ένα πρωτόκολλο σηματοδότησης και ελέγχου κλήσεων που περιγράφεται στο RFC 3435. Λειτουργεί σε μια κεντρική αρχιτεκτονική, η οποία αποτελείται από τρία κύρια στοιχεία:
- Πράκτορας Κλήσεων ή Ελεγκτής Πύλης Πολυμέσων (MGC): Η κύρια πύλη στην αρχιτεκτονική MGCP είναι υπεύθυνη για τη διαχείριση και τον έλεγχο των πυλών πολυμέσων. Διαχειρίζεται τις διαδικασίες εγκατάστασης, τροποποίησης και τερματισμού κλήσεων. Ο MGC επικοινωνεί με τις πύλες πολυμέσων χρησιμοποιώντας το πρωτόκολλο MGCP.
- Πύλες Πολυμέσων (MGs) ή Δευτερεύουσες Πύλες: Αυτές οι συσκευές μετατρέπουν ψηφιακά ρεύματα πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα. Διαχειρίζονται από τον MGC και εκτελούν εντολές που λαμβάνουν από αυτόν. Οι πύλες πολυμέσων μπορεί να περιλαμβάνουν λειτουργίες όπως η μετατροπή, η πακετοποίηση και η ακύρωση ηχούς.
- Πύλες Σηματοδότησης (SGs): Αυτές οι πύλες είναι υπεύθυνες για τη μετατροπή μηνυμάτων σηματοδότησης μεταξύ διαφορετικών δικτύων, επιτρέποντας την απρόσκοπτη επικοινωνία μεταξύ παραδοσιακών τηλεφωνικών συστημάτων (π.χ. SS7) και δικτύων βασισμένων σε IP (π.χ. SIP ή H.323). Οι πύλες σηματοδότησης είναι κρίσιμες για την διαλειτουργικότητα και τη διασφάλιση ότι οι πληροφορίες ελέγχου κλήσεων επικοινωνούνται σωστά μεταξύ των διαφορετικών δικτύων.
Συνοπτικά, το MGCP κεντρικοποιεί τη λογική ελέγχου κλήσεων στον πράκτορα κλήσεων, απλοποιώντας τη διαχείριση των πυλών πολυμέσων και σηματοδότησης, παρέχοντας καλύτερη κλιμάκωση, αξιοπιστία και αποδοτικότητα στα τηλεπικοινωνιακά δίκτυα.
SCCP (Πρωτόκολλο Ελέγχου Πελάτη Skinny)
Το Skinny Client Control Protocol (SCCP) είναι ένα ιδιόκτητο πρωτόκολλο σηματοδότησης και ελέγχου κλήσεων που ανήκει στην Cisco Systems. Χρησιμοποιείται κυρίως για την επικοινωνία μεταξύ του Cisco Unified Communications Manager (πρώην CallManager) και των Cisco IP τηλεφώνων ή άλλων Cisco συσκευών φωνής και βίντεο.
Το SCCP είναι ένα ελαφρύ πρωτόκολλο που απλοποιεί την επικοινωνία μεταξύ του διακομιστή ελέγχου κλήσεων και των συσκευών τερματισμού. Αναφέρεται ως "Skinny" λόγω του μινιμαλιστικού σχεδιασμού του και των μειωμένων απαιτήσεων εύρους ζώνης σε σύγκριση με άλλα πρωτόκολλα VoIP όπως το H.323 ή το SIP.
Τα κύρια στοιχεία ενός συστήματος βασισμένου σε SCCP είναι:
- Διακομιστής Ελέγχου Κλήσεων: Αυτός ο διακομιστής, συνήθως ένας Cisco Unified Communications Manager, διαχειρίζεται τις διαδικασίες εγκατάστασης, τροποποίησης και τερματισμού κλήσεων, καθώς και άλλες τηλεφωνικές δυνατότητες όπως η προώθηση κλήσεων, η μεταφορά κλήσεων και η αναμονή κλήσεων.
- Τερματικά SCCP: Αυτές είναι συσκευές όπως IP τηλέφωνα, μονάδες τηλεδιάσκεψης ή άλλες Cisco συσκευές φωνής και βίντεο που χρησιμοποιούν SCCP για να επικοινωνούν με τον διακομιστή ελέγχου κλήσεων. Εγγράφονται στον διακομιστή, στέλνουν και λαμβάνουν μηνύματα σηματοδότησης και ακολουθούν τις οδηγίες που παρέχονται από τον διακομιστή ελέγχου κλήσεων για τη διαχείριση κλήσεων.
- Πύλες: Αυτές οι συσκευές, όπως οι πύλες φωνής ή οι πύλες πολυμέσων, είναι υπεύθυνες για τη μετατροπή ρευμάτων πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα. Μπορεί επίσης να περιλαμβάνουν πρόσθετη λειτουργικότητα, όπως η μετατροπή ή η ακύρωση ηχούς.
Το SCCP προσφέρει μια απλή και αποδοτική μέθοδο επικοινωνίας μεταξύ των διακομιστών ελέγχου κλήσεων της Cisco και των συσκευών τερματισμού. Ωστόσο, αξίζει να σημειωθεί ότι το SCCP είναι ένα ιδιόκτητο πρωτόκολλο, το οποίο μπορεί να περιορίσει τη διαλειτουργικότητα με μη Cisco συστήματα. Σε τέτοιες περιπτώσεις, άλλα πρότυπα VoIP όπως το SIP μπορεί να είναι πιο κατάλληλα.
H.323
Το H.323 είναι μια σουίτα πρωτοκόλλων για πολυμεσική επικοινωνία, συμπεριλαμβανομένων φωνής, βίντεο και συνεδριάσεων δεδομένων μέσω δικτύων με πακέτα, όπως τα δίκτυα βασισμένα σε IP. Αναπτύχθηκε από την Διεθνή Ένωση Τηλεπικοινωνιών (ITU-T) και παρέχει ένα ολοκληρωμένο πλαίσιο για τη διαχείριση πολυμεσικών συνεδριών επικοινωνίας.
Ορισμένα βασικά στοιχεία της σουίτας H.323 περιλαμβάνουν:
- Τερματικά: Αυτές είναι συσκευές τερματισμού, όπως IP τηλέφωνα, συστήματα τηλεδιάσκεψης ή λογισμικά εφαρμογών, που υποστηρίζουν το H.323 και μπορούν να συμμετάσχουν σε πολυμεσικές συνεδρίες επικοινωνίας.
- Πύλες: Αυτές οι συσκευές μετατρέπουν ρεύματα πολυμέσων μεταξύ διαφορετικών δικτύων, όπως η παραδοσιακή τηλεφωνία κυκλωμάτων και τα δίκτυα IP με πακέτα, επιτρέποντας τη διαλειτουργικότητα μεταξύ H.323 και άλλων συστημάτων επικοινωνίας. Μπορεί επίσης να περιλαμβάνουν πρόσθετη λειτουργικότητα, όπως η μετατροπή ή η ακύρωση ηχούς.
- Ελεγκτές Πύλης: Αυτά είναι προαιρετικά στοιχεία που παρέχουν υπηρεσίες ελέγχου και διαχείρισης κλήσεων σε ένα δίκτυο H.323. Εκτελούν λειτουργίες όπως η μετάφραση διευθύνσεων, η διαχείριση εύρους ζώνης και ο έλεγχος εισόδου, βοηθώντας στη διαχείριση και βελτιστοποίηση των πόρων του δικτύου.
- Μονάδες Ελέγχου Πολλαπλών Σημείων (MCUs): Αυτές οι συσκευές διευκολύνουν τις πολυμερείς συνεδρίες διαχειριζόμενες και αναμειγνύοντας ρεύματα πολυμέσων από πολλαπλά τερματικά. Οι MCUs επιτρέπουν δυνατότητες όπως ο έλεγχος διάταξης βίντεο, η εναλλαγή με ενεργοποίηση φωνής και η συνεχής παρουσία, καθιστώντας δυνατή τη φιλοξενία μεγάλων συνεδριών με πολλούς συμμετέχοντες.
Το H.323 υποστηρίζει μια σειρά από κωδικοποιητές ήχου και βίντεο, καθώς και άλλες συμπληρωματικές υπηρεσίες όπως η προώθηση κλήσεων, η μεταφορά κλήσεων, η αναμονή κλήσεων και η αναμονή κλήσεων. Παρά την ευρεία υιοθέτησή του στις πρώτες ημέρες του VoIP, το H.323 έχει σταδιακά αντικατασταθεί από πιο σύγχρονα και ευέλικτα πρωτόκολλα όπως το Πρωτόκολλο Έναρξης Συνεδρίας (SIP), το οποίο προσφέρει καλύτερη διαλειτουργικότητα και ευκολότερη υλοποίηση. Ωστόσο, το H.323 παραμένει σε χρήση σε πολλά κληρονομικά συστήματα και συνεχίζει να υποστηρίζεται από διάφορους προμηθευτές εξοπλισμού.
IAX (Inter Asterisk eXchange)
IAX (Inter-Asterisk eXchange) είναι ένα πρωτόκολλο σηματοδότησης και ελέγχου κλήσεων που χρησιμοποιείται κυρίως για την επικοινωνία μεταξύ διακομιστών Asterisk PBX (Ιδιωτική Κεντρική Σταθμός) και άλλων συσκευών VoIP. Αναπτύχθηκε από τον Mark Spencer, τον δημιουργό του λογισμικού Asterisk open-source PBX, ως εναλλακτική λύση σε άλλα πρωτόκολλα VoIP όπως το SIP και το H.323.
Το IAX είναι γνωστό για την απλότητά του, την αποδοτικότητα και την ευκολία υλοποίησης. Ορισμένα βασικά χαρακτηριστικά του IAX περιλαμβάνουν:
- Μοναδική Θύρα UDP: Το IAX χρησιμοποιεί μια μοναδική θύρα UDP (4569) για τη σηματοδότηση και την κυκλοφορία πολυμέσων, γεγονός που απλοποιεί την διέλευση τείχους προστασίας και NAT, διευκολύνοντας την ανάπτυξή του σε διάφορα περιβάλλοντα δικτύου.
- Δυαδικό Πρωτόκολλο: Σε αντίθεση με τα πρωτόκολλα βασισμένα σε κείμενο όπως το SIP, το IAX είναι ένα δυαδικό πρωτόκολλο, το οποίο μειώνει την κατανάλωση εύρους ζώνης και το καθιστά πιο αποδοτικό για τη μετάδοση δεδομένων σηματοδότησης και πολυμέσων.
- Trunking: Το IAX υποστηρίζει το trunking, το οποίο επιτρέπει σε πολλές κλήσεις να συνδυάζονται σε μια μοναδική σύνδεση δικτύου, μειώνοντας την υπερβολική φόρτωση και βελτιώνοντας τη χρησιμοποίηση του εύρους ζώνης.
- Εγγενής Κρυπτογράφηση: Το IAX έχει ενσωματωμένη υποστήριξη για κρυπτογράφηση, χρησιμοποιώντας μεθόδους όπως το RSA για την ανταλλαγή κλειδιών και το AES για την κρυπτογράφηση πολυμέσων, παρέχοντας ασφαλή επικοινωνία μεταξύ των τερματικών.
- Επικοινωνία Peer-to-Peer: Το IAX μπορεί να χρησιμοποιηθεί για άμεση επικοινωνία μεταξύ τερματικών χωρίς την ανάγκη κεντρικού διακομιστή, επιτρέποντας απλούστερη και πιο αποδοτική δρομολόγηση κλήσεων.
Παρά τα οφέλη του, το IAX έχει ορισμένους περιορισμούς, όπως η κύρια εστίασή του στο οικοσύστημα Asterisk και η λιγότερη ευρεία υιοθέτησή του σε σύγκριση με πιο καθ established πρωτόκολλα όπως το SIP. Ωστόσο, για εκείνους που εργάζονται στο περιβάλλον Asterisk, το IAX προσφέρει μια robust και αποδοτική λύση για την επικοινωνία VoIP.
Πρωτόκολλα Μετάδοσης & Μεταφοράς
SDP (Πρωτόκολλο Περιγραφής Συνεδρίας)
SDP (Πρωτόκολλο Περιγραφής Συνεδρίας) είναι μια μορφή βασισμένη σε κείμενο που χρησιμοποιείται για να περιγράψει τα χαρακτηριστικά πολυμεσικών συνεδριών, όπως φωνής, βίντεο ή τηλεδιάσκεψης, μέσω δικτύων IP. Αναπτύχθηκε από την Internet Engineering Task Force (IETF) και ορίζεται στο RFC 4566. Το SDP δεν χειρίζεται τη μετάδοση των πραγματικών πολυμέσων ή την εγκαθίδρυση συνεδρίας, αλλά χρησιμοποιείται σε συνδυασμό με άλλα πρωτόκολλα σηματοδότησης, όπως το SIP (Πρωτόκολλο Έναρξης Συνεδρίας), για να διαπραγματευτεί και να ανταλλάξει πληροφορίες σχετικά με τα ρεύματα πολυμέσων και τα χαρακτηριστικά τους.
Ορισμένα βασικά στοιχεία του SDP περιλαμβάνουν:
- Πληροφορίες Συνεδρίας: Το SDP περιγράφει τις λεπτομέρειες μιας πολυμεσικής συνεδρίας, συμπεριλαμβανομένου του ονόματος της συνεδρίας, της περιγραφής της συνεδρίας, της ώρας έναρξης και της ώρας λήξης.
- Ρεύματα Πολυμέσων: Το SDP ορίζει τα χαρακτηριστικά των ρευμάτων πολυμέσων, όπως ο τύπος πολυμέσων (ήχος, βίντεο ή κείμενο), το πρωτόκολλο μεταφοράς (π.χ. RTP ή SRTP) και τη μορφή πολυμέσων (π.χ. πληροφορίες κωδικοποιητή).
- Πληροφορίες Σύνδεσης: Το SDP παρέχει πληροφορίες σχετικά με τη διεύθυνση δικτύου (διεύθυνση IP) και τον αριθμό θύρας όπου πρέπει να σταλούν ή να ληφθούν τα πολυμέσα.
- Χαρακτηριστικά: Το SDP υποστηρίζει τη χρήση χαρακτηριστικών για την παροχή πρόσθετων, προαιρετικών πληροφοριών σχετικά με μια συνεδρία ή ρεύμα πολυμέσων. Τα χαρακτηριστικά μπορούν να χρησιμοποιηθούν για τον καθορισμό διαφόρων λειτουργιών όπως κλειδιά κρυπτογράφησης, απαιτήσεις εύρους ζώνης ή μηχανισμούς ελέγχου πολυμέσων.
Το SDP χρησιμοποιείται συνήθως στη διαδικασία:
- Ένα αρχικό μέρος δημιουργεί μια περιγραφή SDP της προτεινόμενης πολυμεσικής συνεδρίας, συμπεριλαμβανομένων των λεπτομερειών των ρευμάτων πολυμέσων και των χαρακτηριστικών τους.
- Η περιγραφή SDP αποστέλλεται στο παραλαμβάνον μέρος, συνήθως ενσωματωμένη σε ένα μήνυμα πρωτοκόλλου σηματοδότησης όπως το SIP ή το RTSP.
- Το παραλαμβάνον μέρος επεξεργάζεται την περιγραφή SDP και, με βάση τις δυνατότητές του, μπορεί να αποδεχθεί, να απορρίψει ή να τροποποιήσει την προτεινόμενη συνεδρία.
- Η τελική περιγραφή SDP αποστέλλεται πίσω στο αρχικό μέρος ως μέρος του μηνύματος πρωτοκόλλου σηματοδότησης, ολοκληρώνοντας τη διαδικασία διαπραγμάτευσης.
Η απλότητα και η ευελιξία του SDP το καθιστούν ένα ευρέως υιοθετημένο πρότυπο για την περιγραφή πολυμεσικών συνεδριών σε διάφορα συστήματα επικοινωνίας, παίζοντας κρίσιμο ρόλο στην εγκαθίδρυση και διαχείριση πραγματικών πολυμεσικών συνεδριών μέσω δικτύων IP.
RTP / RTCP / SRTP / ZRTP
- RTP (Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου): Το RTP είναι ένα πρωτόκολλο δικτύου σχεδιασμένο για την παράδοση ήχου και βίντεο δεδομένων, ή άλλων μέσων πραγματικού χρόνου, μέσω δικτύων IP. Αναπτύχθηκε από την IETF και ορίζεται στο RFC 3550, το RTP χρησιμοποιείται συνήθως με πρωτόκολλα σηματοδότησης όπως το SIP και το H.323 για να επιτρέψει πολυμεσική επικοινωνία. Το RTP παρέχει μηχανισμούς για συγχρονισμό, ακολουθία και χρονοσήμανση των ρευμάτων πολυμέσων, βοηθώντας να διασφαλιστεί η ομαλή και έγκαιρη αναπαραγωγή πολυμέσων.
- RTCP (Πρωτόκολλο Ελέγχου Μεταφοράς Πραγματικού Χρόνου): Το RTCP είναι ένα συνοδευτικό πρωτόκολλο του RTP, που χρησιμοποιείται για την παρακολούθηση της ποιότητας υπηρεσίας (QoS) και την παροχή ανατροφοδότησης σχετικά με τη μετάδοση των ρευμάτων πολυμέσων. Οριζόμενο στο ίδιο RFC 3550 με το RTP, το RTCP ανταλλάσσει περιοδικά πακέτα ελέγχου μεταξύ των συμμετεχόντων σε μια συνεδρία RTP. Μοιράζεται πληροφορίες όπως η απώλεια πακέτων, η τζιτζι και ο χρόνος επιστροφής, που βοηθούν στη διάγνωση και την προσαρμογή στις συνθήκες του δικτύου, βελτιώνοντας τη συνολική ποιότητα των πολυμέσων.
- SRTP (Ασφαλές Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου): Το SRTP είναι μια επέκταση του RTP που παρέχει κρυπτογράφηση, αυθεντικοποίηση μηνυμάτων και προστασία από επανάληψη για ρεύματα πολυμέσων, διασφαλίζοντας ασφαλή μετάδοση ευαίσθητων δεδομένων ήχου και βίντεο. Οριζόμενο στο RFC 3711, το SRTP χρησιμοποιεί κρυπτογραφικούς αλγόριθμους όπως το AES για κρυπτογράφηση και το HMAC-SHA1 για αυθεντικοποίηση μηνυμάτων. Το SRTP χρησιμοποιείται συχνά σε συνδυασμό με ασφαλή πρωτόκολλα σηματοδότησης όπως το SIP μέσω TLS για να παρέχει ασφάλεια από άκρο σε άκρο στην πολυμεσική επικοινωνία.
- ZRTP (Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου Zimmermann): Το ZRTP είναι ένα πρωτόκολλο κρυπτογραφικής συμφωνίας κλειδιών που παρέχει κρυπτογράφηση από άκρο σε άκρο για ρεύματα RTP. Αναπτύχθηκε από τον Phil Zimmermann, τον δημιουργό του PGP, το ZRTP περιγράφεται στο RFC 6189. Σε αντίθεση με το SRTP, το οποίο βασίζεται σε πρωτόκολλα σηματοδότησης για την ανταλλαγή κλειδιών, το ZRTP έχει σχεδιαστεί για να λειτουργεί ανεξάρτητα από το πρωτόκολλο σηματοδότησης. Χρησιμοποιεί ανταλλαγή κλειδιών Diffie-Hellman για να καθορίσει ένα κοινό μυστικό μεταξύ των επικοινωνούντων μερών, χωρίς να απαιτεί προηγούμενη εμπιστοσύνη ή υποδομή δημόσιων κλειδιών (PKI). Το ZRTP περιλαμβάνει επίσης χαρακτηριστικά όπως Σύντομες Αυθεντικές Συμβολοσειρές (SAS) για την προστασία από επιθέσεις man-in-the-middle.
Αυτά τα πρωτόκολλα παίζουν ουσιαστικούς ρόλους στην παράδοση και ασφάλιση πραγματικής πολυμεσικής επικοινωνίας μέσω δικτύων IP. Ενώ το RTP και το RTCP χειρίζονται τη μετάδοση των πραγματικών πολυμέσων και την παρακολούθηση ποιότητας, το SRTP και το ZRTP διασφαλίζουν ότι τα μεταδιδόμενα πολυμέσα προστατεύονται από υποκλοπές, αλλοιώσεις και επιθέσεις επανάληψης.
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.