VPN Android έναντι αδειών εφαρμογών: τι σημαίνει προειδοποίηση συγκατάθεσης
Το παράθυρο συγκατάθεσης VPN του Android παραχωρεί μια θέση πακέτων, όχι πρόσβαση στο email, τις φωτογραφίες ή τις επαφές σας. Εδώ βρίσκεται στην πραγματικότητα αυτό το όριο.
Δύο παράθυρα του Android συγχέονται διαρκώς: το αίτημα συγκατάθεσης για VPN και τα αιτήματα αδειών που κάνει μια εφαρμογή για τα δεδομένα σας. Το πρώτο παραχωρεί μια θέση στο δίκτυο, το σημείο όπου τα πακέτα μπορούν να διαβαστούν και να ξαναγραφτούν. Το δεύτερο παραχωρεί αποθηκευμένο περιεχόμενο που το Android φυλάσσει εφαρμογή προς εφαρμογή. Αν τα αντιμετωπίζετε ως ένα πράγμα, είτε υπερβάλλετε ως προς το τι μπορεί να δει ένα τούνελ, είτε υποτιμάτε σοβαρά το τι θα ζητήσει στη συνέχεια μια αποφασισμένη εφαρμογή.
Τι παραχωρεί στην πραγματικότητα το παράθυρο συγκατάθεσης
Μια εφαρμογή που υλοποιεί το VpnService και δηλώνει το BIND_VPN_SERVICE ζητά από το σύστημα να γίνει το VPN της συσκευής. Με την έγκριση, το πλαίσιο δημιουργεί μια διεπαφή tun και δίνει στην εφαρμογή έναν περιγραφέα αρχείου γι' αυτήν. Ό,τι κάνει η εφαρμογή μετά ρέει μέσα από αυτόν τον περιγραφέα: διαβάζει πακέτα IP προς τα έξω, αποφασίζει τι θα τα κάνει και γράφει πακέτα πίσω μέσα.
Το εύρος αυτής της διεπαφής είναι ρητό. Οι διαδρομές καθορίζουν ποιοι προορισμοί συλλαμβάνονται, και το addAllowedApplication ή το addDisallowedApplication καθορίζει ποιες εφαρμογές την τροφοδοτούν. Ένα VPN ανά εφαρμογή που απαριθμεί δύο εφαρμογές δεν βλέπει την υπόλοιπη συσκευή.
Πρόκειται για παραχώρηση σε επίπεδο πακέτου, όχι σε επίπεδο δεδομένων. Η υπηρεσία βλέπει τα byte που μια εφαρμογή παραδίδει στη στοίβα δικτύου, με διεύθυνση προορισμού. Δεν αποκτά πρόσβαση στον ιδιωτικό χώρο αποθήκευσης της εφαρμογής που στέλνει, στα αρχεία της βάσης δεδομένων της ή στην αποκρυπτογραφημένη μνήμη της. Τα αρχεία που μια εφαρμογή έχει αποθηκεύσει μέσα στο δικό της sandbox παραμένουν εξίσου δύσκολο να διαβαστούν όσο και πριν.
Πού σταματά η εικόνα των πακέτων
Το TLS εξακολουθεί να κάνει τη δουλειά του μέσα στο τούνελ, επειδή η χειραψία εκτελείται μεταξύ της εφαρμογής και του διακομιστή και όχι μεταξύ της εφαρμογής και του VPN. Το VPN προωθεί κρυπτογραφημένο κείμενο που δεν μπορεί να αποκρυπτογραφήσει χωρίς τα κλειδιά συνεδρίας. Γι' αυτό ένα τούνελ μόνο του δεν αποκαλύπτει το περιεχόμενο μιας σελίδας HTTPS ή μιας προστατευμένης συνεδρίας αλληλογραφίας.
Τα μεταδεδομένα γύρω από το κρυπτογραφημένο κείμενο είναι άλλη ιστορία, και εδώ καταρρέουν οι περισσότεροι βέβαιοι ισχυρισμοί. Η διεύθυνση IP προορισμού, η θύρα, τα μεγέθη πακέτων και ο χρονισμός είναι όλα ορατά, μαζί με το όνομα του διακομιστή στο TLS ClientHello, το οποίο συνήθως αποστέλλεται σε καθαρό κείμενο ακόμη και υπό TLS 1.3. Το Encrypted Client Hello το αλλάζει αυτό, αλλά δεν είναι καθολικό. Το απλό DNS διαρρέει ονόματα εξίσου εύκολα όταν τα ερωτήματα βγαίνουν χωρίς κρυπτογράφηση.
Παλαιότερα ή κακώς ρυθμισμένα πρωτόκολλα παραχωρούν περισσότερα. Το απλό HTTP, το IMAP χωρίς TLS και αρκετά πρωτόκολλα παιχνιδιών και IoT εκθέτουν το ωφέλιμο φορτίο τους σε οτιδήποτε κρατά τον περιγραφέα tun.
Οι άδειες που δεν έρχονται ποτέ μαζί του
Η έγκριση ενός VPN δεν εγκρίνει επαφές, SMS, φωτογραφίες ή τον χώρο μέσων. Αυτές είναι ξεχωριστές παραχωρήσεις χρόνου εκτέλεσης, καθεμία με το δικό της παράθυρο και τη δική της διαδρομή ανάκλησης στη σελίδα ρυθμίσεων της εφαρμογής. Ένας πελάτης VPN που θέλει το ιστορικό κλήσεών σας πρέπει να το ζητήσει όπως κάθε άλλη εφαρμογή, και μπορείτε να αρνηθείτε κρατώντας το τούνελ.
Η εγκατάσταση πιστοποιητικού είναι αυτή που πρέπει να προσέχετε, γιατί μοιάζει με μέρος της ρύθμισης VPN και δεν είναι. Η εγκατάσταση μιας CA χρήστη στο χώρο διαπιστευτηρίων αλλάζει ποια πιστοποιητικά θα δεχτεί το Android, και από το Android 7.0 μια εφαρμογή που στοχεύει API 24 ή νεότερο αγνοεί τις CA που πρόσθεσε ο χρήστης, εκτός αν η διαμόρφωση ασφάλειας δικτύου της το επιλέξει με σημείο εμπιστοσύνης χρήστη. Ένας πελάτης που επιμένει σε CA μπορεί να κάνει νόμιμη εταιρική υποκλοπή, ή μπορεί να ζητά κάτι που το παράθυρο VPN δεν ανέφερε ποτέ.
Η πρόσβαση προσβασιμότητας βρίσκεται ακόμη πιο έξω. Μια υπηρεσία με ενεργοποιημένη προσβασιμότητα μπορεί να διαβάσει το περιεχόμενο της οθόνης άλλων εφαρμογών, κάτι που δεν το παρέχει καμία θέση σε επίπεδο πακέτου.
Τοπικό φίλτρο ή απομακρυσμένη πύλη
Το ίδιο API καλύπτει δύο προϊόντα που αξίζουν διαφορετικά επίπεδα εμπιστοσύνης. Ένα τείχος προστασίας ή ένας αποκλειστής διαφημίσεων στη συσκευή παίρνει τον περιγραφέα tun και απαντά στην κίνηση τοπικά, χωρίς να τη στέλνει ποτέ σε διακομιστή που διαχειρίζεται το ίδιο. Ένα πραγματικό τούνελ προωθεί αυτά τα πακέτα σε μια πύλη αλλού, και ο διαχειριστής εκείνης βλέπει τα ίδια μεταδεδομένα από το άλλο άκρο και ταυτόχρονα αποφασίζει τι επιστρέφει.
Ένας πρακτικός τρόπος να τα ξεχωρίσετε είναι να ελέγξετε τη δημόσια διεύθυνσή σας με το VPN ενεργό και ανενεργό, και να δείτε αν η ειδοποίηση ονομάζει απομακρυσμένο τελικό σημείο. Αν η διεύθυνση δεν αλλάζει ποτέ, η κίνηση μάλλον κάνει κύκλο μέσα στη συσκευή.
Και οι δύο περιπτώσεις παραμένουν θέση πακέτων. Η διαφορά είναι ποιος άλλος στέκεται στην έξοδο.
Ελέγξτε τι εγκρίνατε
Ανοίξτε Ρυθμίσεις, μετά Δίκτυο και internet, μετά VPN, και διαβάστε την καταχώριση και όχι το εικονίδιο στη γραμμή κατάστασης. Το Always-on VPN και το Αποκλεισμός συνδέσεων χωρίς VPN είναι ρυθμίσεις συσκευής που κρατούν τη διεπαφή ζωντανή και κόβουν διαρροές· δεν διευρύνουν τίποτα. Από την ίδια οθόνη μπορείτε να ξεχάσετε το προφίλ και να ανακαλέσετε την παραχώρηση.
Έπειτα περάστε τις άλλες άδειες. Οι πληροφορίες εφαρμογής δείχνουν ποιες παραχωρήσεις χρόνου εκτέλεσης κρατά ο πελάτης, και οι ρυθμίσεις Ασφάλειας δείχνουν αν εγκαταστάθηκε ταυτόχρονα πιστοποιητικό χρήστη. Οποιοδήποτε από τα δύο μπορεί να αφαιρεθεί ανεξάρτητα.
Η ερώτηση που αξίζει απάντηση είναι στενή: ποια πακέτα εισέρχονται σε αυτή την υπηρεσία, πού πηγαίνουν και τι κρατά η υλοποίηση. Όλα τα άλλα στο παράθυρο είναι θόρυβος. Η αναφορά του VpnService είναι ο έγκυρος κατάλογος του τι εκθέτει η διεπαφή.