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

Δύο συζητήσεις σε έναν φάκελο

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

Ο φάκελος είναι το πρωτόκολλο. Κάθε πακέτο ξεκινά με μια μικρή κεφαλίδα που ονομάζει τον τύπο του, και αυτή η κεφαλίδα φτάνει πριν από οτιδήποτε άλλο.

Τι φτάνει πραγματικά πρώτο

Εξαιτίας αυτής της σειράς, το πρώτο πράγμα στο σύρμα δεν είναι εγγραφή TLS. Είναι η κεφαλίδα του OpenVPN, ακολουθούμενη από το περιεχόμενο του καναλιού που αναγγέλλει η κεφαλίδα. Ένα ClientHello υπάρχει εκεί, απλώς όχι στο byte μηδέν. Δεν χρειάζεται αποκρυπτογράφηση για να παρατηρήσει κανείς τη διαφορά, γιατί το ίδιο το σχήμα την προδίδει.

Οι προεπιλογές μετρούν κι εδώ. Η ροή είναι UDP στη θύρα 1194 εκτός αν το προφίλ επιλέξει TCP. Και στις δύο περιπτώσεις η εξωτερική εμφάνιση είναι σήραγγα και όχι αίτημα ιστού.

Τρεις έντιμοι τρόποι να αλλάξετε το σχήμα

Ένας τερματιστής TLS όπως το stunnel δέχεται TLS σε μια θύρα σε κάθε άκρο και παραδίδει την αποκρυπτογραφημένη ροή στο OpenVPN τοπικά, ώστε το δίκτυο να βλέπει TLS προς αυτή τη θύρα. Ένα πρωτόκολλο που είναι TLS από το πρώτο byte συμπεριφέρεται αλλιώς: η ανταλλαγή συμβατή με AnyConnect που υλοποιεί το ocserv μοιάζει με την εταιρική απομακρυσμένη πρόσβαση που πολλά δίκτυα περιμένουν ήδη. Το SSTP, που έρχεται με τα Windows, έχει την ίδια ιδιότητα σε άλλο προϊόν.

Στο Linux, η επιλογή -w του SSH μεταφέρει ζεύξη σημείου-προς-σημείο μέσα σε σύνοδο SSH, κάτι χρήσιμο όταν το SSH είναι το μόνο επιτρεπόμενο πρωτόκολλο. Είναι η φθηνότερη από τις τέσσερις αν το SSH λειτουργεί ήδη από αυτό το δίκτυο, και η λιγότερο χρήσιμη αν δεν λειτουργεί.

Τι δεν αλλάζει κανένα από αυτά

Κανένα από αυτά δεν αλλάζει τι μπορεί να προσεγγίσει η σήραγγα. Δεν κάνουν μια φραγμένη διεύθυνση προσβάσιμη, δεν επαληθεύουν την ταυτότητα κανενός και δεν αποφασίζουν διαδρομές.

Ένα περιτύλιγμα σας κοστίζει επίσης ένα συστατικό. Δύο ακροατές και δύο αρχεία ρυθμίσεων σημαίνουν δύο σημεία αποτυχίας, και τα δύο φαίνονται ίδια από τη θέση του χρήστη. Υπολογίστε το πριν υιοθετήσετε ένα. Η σύνοδος παραμένει μία μακρόβια κρυπτογραφημένη ροή προς έναν προορισμό, και ο όγκος και ο χρονισμός της παραμένουν ορατά.

Διαγνώστε πρώτα και μετά επιλέξτε

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

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

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

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

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