Οι δύο τεχνικές αρχειοθετούνται μαζί επειδή και οι δύο περιλαμβάνουν έναν μεσάζοντα και οι δύο ακούγονται σαν απόκρυψη. Λειτουργούν σε διαφορετικά αντικείμενα. Το domain fronting αφορά το ποιο όνομα εμφανίζεται σε ποιο επίπεδο ενός αιτήματος HTTPS. Ένα VPN αφορά το ποια πακέτα ακολουθούν μια συγκεκριμένη διαδρομή προς έναν peer. Το να αποκαλείς το fronting ένα είδος VPN οδηγεί σε σχέδια που δεν μπορούν να λειτουργήσουν και σε αξιολογήσεις που κάνουν τη λάθος ερώτηση.

Δύο ονόματα, δύο επίπεδα

Μια σύνδεση TLS μπορεί να μεταφέρει ένα όνομα διακομιστή στη χειραψία της. Μόλις υπάρξει η σύνδεση, το αίτημα HTTP προσδιορίζει την αρχή που θέλει, συνήθως στην κεφαλίδα Host. Αυτά είναι δύο πεδία που διαβάζονται σε δύο διαφορετικές στιγμές από δύο διαφορετικά κομμάτια λογισμικού.

LayerWhat carries the nameWho reads it
TLS handshakeServer name indicationThe TLS terminator in front of the service
HTTP requestAuthority or Host headerThe routing layer that picks a backend
Network pathDestination address and portRouters, and the VPN peer if one is in use

Το domain fronting εκμεταλλεύεται μια διαφορά μεταξύ των δύο πρώτων, ώστε μια υπηρεσία fronting να δεχτεί τη σύνδεση και μετά να δρομολογήσει το αίτημα αλλού. Λειτουργεί μόνο όπου η υπηρεσία είναι πρόθυμη να το δρομολογήσει, που είναι ζήτημα πολιτικής παρόχου και όχι τέχνασμα πρωτοκόλλου.

Το fronting εξαρτάται από τον πάροχο, όχι από την τεχνική

Ως περιορισμένο παράδειγμα, ο οδηγός Front Door FAQ της Azure τεκμηριώνει προστασίες κατά του domain fronting. Περιγράφει μια επιτρεπόμενη αναντιστοιχία για τομείς εντός της ίδιας συνδρομής και διαμορφωμένων διαδρομών, και μια απόκριση 421 Misdirected Request όταν η προστασία αναντιστοιχίας μπλοκάρει ένα αίτημα.

Αυτή η μία τεκμηριωμένη πολιτική ακυρώνει και τα δύο συνθήματα ταυτόχρονα. Δεν λειτουργεί κάθε ζεύγος διαφορετικών ονομάτων, και δεν απαγορεύεται κάθε αναντιστοιχία. Άλλες υπηρεσίες έχουν τους δικούς τους ελέγχους, τις δικές τους απαιτήσεις ανάπτυξης και τους δικούς τους κωδικούς σφάλματος.

Δεν είναι επίσης οδηγία για παράκαμψη των περιορισμών άλλου δικτύου. Το να διαβάζεις τους κανόνες δρομολόγησης ενός παρόχου για να καταλάβεις τι επιτρέπει είναι αρχιτεκτονική εργασία· το να αντιμετωπίζεις αυτούς τους κανόνες ως συνταγή παράκαμψης είναι διαφορετική δραστηριότητα με διαφορετικές συνέπειες. Κρατήστε τις δύο δραστηριότητες χωριστά στο έγγραφο που γράφετε. Η δεύτερη είναι αυτή που κάνει ένα σχέδιο να απορριφθεί σε αξιολόγηση.

Τι επιλέγει στην πραγματικότητα ένα VPN

Σε ένα VPN δικτύου, η δρομολόγηση και η πολιτική πλατφόρμας επιλέγουν την εσωτερική κίνηση για μια σήραγγα προς έναν peer. Ανάλογα με τη διάταξη αυτό μπορεί να καλύπτει πολλές εφαρμογές ή ένα καθορισμένο υποσύνολο, και μπορεί να μεταφέρει πρωτόκολλα που δεν έχουν καθόλου αίτημα HTTP.

Το fronting δεν κάνει τίποτα από αυτά. Η οργάνωση ενός αιτήματος HTTPS μέσω μιας υπηρεσίας fronting δεν εγκαθιστά διαδρομή ιδιωτικού δικτύου, δεν μεταφέρει αυθαίρετες εφαρμογές UDP και δεν κάνει κάθε πρόγραμμα στη συσκευή να χρησιμοποιεί την υπηρεσία. Αν χρειάζεστε αυτή την κάλυψη, χρειάζεστε διακομιστή μεσολάβησης ή σήραγγα, όχι τέχνασμα ονομάτων.

Γι αυτό οι δύο μπερδεύονται στην αξιολόγηση: και οι δύο περιγράφονται ως μεσάζοντες και οι δύο εμφανίζονται σε έγγραφα για την πρόσβαση. Η διεπαφή που προσφέρει η καθεμία είναι εντελώς διαφορετική, και μόνο η μία από αυτές είναι διαδρομή δικτύου.

Η ορατότητα δεν είναι δυαδική

Ούτε η σύγκριση είναι απλώς κρυφό έναντι ορατού. Τα ερωτήματα DNS, οι διευθύνσεις προορισμού, τα χαρακτηριστικά της χειραψίας, τα μεγέθη πακέτων και ο χρονισμός παραμένουν όλα παρατηρήσιμα σε όποιον βρίσκεται σε θέση να τα δει, και το τι μαθαίνει αυτός ο παρατηρητής εξαρτάται από το πού βρίσκεται.

Τα δεδομένα εφαρμογής είναι επίσης ορατά στα άκρα που τα τερματίζουν. Μια υπηρεσία fronting που δρομολογεί το αίτημά σας είναι ένα από αυτά τα άκρα, και ένας peer VPN είναι ένα άλλο. Καμία από τις δύο διατάξεις δεν κάνει το περιεχόμενο αδιαφανές για το μέρος που πρέπει να το διαβάσει για να σας εξυπηρετήσει.

Σχεδιάστε τα τρία κουτιά

Για μια αρχιτεκτονική αξιολόγηση, σχεδιάστε το άκρο TLS, την υπηρεσία δρομολόγησης HTTP και την τελική εφαρμογή ως τρία ξεχωριστά κουτιά, και μετά σχεδιάστε οποιονδήποτε peer VPN κάπου αλλού ξανά. Το σημείο που επιλέγει έναν προορισμό ιστού και το σημείο που μεταφέρει πακέτα ιδιωτικού δικτύου δεν χρειάζεται να είναι το ίδιο σύστημα, και συνήθως δεν είναι.

Μόλις τα κουτιά είναι ξεχωριστά, οι ερωτήσεις γίνονται απαντήσιμες: ποια ονόματα δέχεται αυτός ο πάροχος, ποια πρωτόκολλα χρειάζονται μεταφορά και ποιο μέρος μπορεί να δει τι. Ένα διάγραμμα που τα συγχωνεύει παράγει ένα σχέδιο που κανείς δεν μπορεί να υλοποιήσει και μια αξιολόγηση που διαφωνεί για λεξιλόγιο.

Σχετικά άρθρα