Το NetGuard καταλαμβάνει τη διεπαφή VPN του Android για να φιλτράρει την κίνηση και μπορεί να παραδίδει υποστηριζόμενες συνδέσεις σε ένα τελικό σημείο SOCKS. Αυτά τα δύο γεγονότα συχνά διαβάζονται ως «το τηλέφωνο είναι σε VPN», ένα συμπέρασμα που ο μηχανισμός δεν υποστηρίζει. Το φίλτρο βλέπει πακέτα· το proxy βλέπει μόνο τις συνδέσεις που του παραδόθηκαν πραγματικά. Ανάμεσα σε αυτές τις δύο δηλώσεις βρίσκεται ολόκληρο το ζήτημα της κάλυψης.

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

Δύο διαδρομές προώθησης μέσα σε μία εφαρμογή

Η πλευρά TCP της υλοποίησης περιέχει διαχείριση συνδέσεων SOCKS, οπότε μια επιτρεπόμενη σύνδεση TCP μπορεί να διαπραγματευτεί με το proxy και να μεταφερθεί μέσα από αυτό. Η πλευρά UDP έχει ξεχωριστή διαδρομή υποδοχής και η διαχείριση αποστολής και λήψης της δεν εξαρτάται από αυτή τη διαπραγμάτευση TCP. Επομένως, ένα αυτοδύναμο πακέτο που το φίλτρο επιτρέπει μπορεί να φτάσει στο συνηθισμένο δίκτυο χωρίς ποτέ να περάσει από το proxy. Τίποτα από αυτά δεν είναι ελάττωμα της εφαρμογής· είναι απλώς αυτό που υλοποιούν οι δύο διαδρομές.

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

Το να διαφημίζεις UDP δεν σημαίνει να το υλοποιείς

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

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

Το DNS είναι τρίτη διαδρομή, όχι λεπτομέρεια

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

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

Η μεταφορά μέσω proxy δεν είναι αυτόματα ιδιωτική

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

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

Έλεγξε την κάλυψη με μήτρα αντί με φόρτωση σελίδας

Για μια εξουσιοδοτημένη αξιολόγηση, διάλεξε αβλαβή παραδείγματα που αντιπροσωπεύουν κάθε κατηγορία που σε αφορά: απαιτούμενο TCP, επιτρεπόμενο UDP και DNS και στις δύο οικογένειες διευθύνσεων. Για καθένα, κατέγραψε αν πέρασε από το proxy, αν αποκλείστηκε ή αν στάλθηκε απευθείας. Αυτός ο ένας πίνακας είναι το παραδοτέο και είναι πολύ πιο χρήσιμος από ένα στιγμιότυπο οθόνης μιας σελίδας που φόρτωσε.

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

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