Το κρυπτογραφημένο DNS χωρίς VPN κρύβει το ερώτημα, όχι τη διεύθυνσή σας
Το κρυπτογραφημένο DNS προστατεύει μία ανταλλαγή με έναν resolver. Δεν κρύβει τη διεύθυνσή σας ούτε τυφλώνει τον resolver, γι’ αυτό ορίστε τον στόχο πριν διαβάσετε ένα τεστ διαρροής.
Ένα τεστ διαρροής DNS που δείχνει το οικιακό σας δίκτυο δεν είναι απόδειξη ότι το κρυπτογραφημένο DNS απέτυχε, ούτε απόδειξη ότι κάτι δούλεψε. Το τεστ απαντά σε μία ερώτηση: ποιος resolver έλαβε αυτό το ερώτημα από αυτό το δίκτυο. Το αν αυτό είναι πρόβλημα εξαρτάται από το τι προστατεύατε και από ποιον.
Γράψτε τον στόχο πριν εκτελέσετε οποιοδήποτε τεστ.
Βήμα 1: ονομάστε την προστασία που θέλετε πραγματικά
Τρεις στόχοι μπερδεύονται. Μπορεί να θέλετε ένας παρατηρητής στη διαδρομή να σταματήσει να διαβάζει ερωτήματα. Μπορεί να θέλετε ένας συγκεκριμένος resolver να σταματήσει να τα λαμβάνει. Μπορεί να θέλετε οι ιστότοποι που επισκέπτεστε να σταματήσουν να βλέπουν τη διεύθυνση του σπιτιού σας. Το κρυπτογραφημένο DNS υπηρετεί τον πρώτο, αλλάζει ποιος ικανοποιεί τον δεύτερο και δεν κάνει απολύτως τίποτα για τον τρίτο.
Ένα VPN υπηρετεί τον τρίτο και, ανάλογα με τον πάροχο, τον πρώτο. Κανένα από τα δύο εργαλεία δεν είναι υπερσύνολο του άλλου.
Βήμα 2: επιλέξτε resolver και επαληθεύστε την ταυτότητά του
Το DNS over TLS τυλίγει το ερώτημα σε μια συνεδρία TLS με τον resolver, και το DNS over HTTPS το τυλίγει σε ένα αίτημα HTTP· τα RFC 7858 και RFC 8484 περιγράφουν και τα δύο, και κανένα δεν χρειάζεται τούνελ. Αυτό που έχει σημασία λειτουργικά είναι το πιστοποιητικό να επαληθεύεται ως προς το όνομα που διαμορφώσατε, γιατί μια κρυπτογραφημένη συνεδρία με λάθος μέρος είναι χειρότερη από απλό κείμενο με το σωστό. Αυτό σημαίνει αυστηρή λειτουργία όπου την προσφέρει η πλατφόρμα, όχι ευκαιριακή λειτουργία που υποχωρεί όταν η επαλήθευση αποτύχει. Ελέγξτε τη συνεδρία απευθείας πριν εμπιστευτείτε τη ρύθμιση: openssl s_client -connect 9.9.9.9:853 -servername dns.quad9.net -brief.
Η χειραψία πρέπει να ονομάζει τον resolver που διαμορφώσατε και να επιστρέφει μια αλυσίδα που μπορείτε να επαληθεύσετε.
Βήμα 3: αποφασίστε τη συμπεριφορά σε αποτυχία
Κάθε υλοποίηση έχει πολιτική για έναν μη προσβάσιμο κρυπτογραφημένο resolver, και αυτή η πολιτική είναι η απόφαση ιδιωτικότητας. Η αυστηρή λειτουργία αποτυγχάνει την αναζήτηση, κάτι ορατό και εκνευριστικό. Η ευκαιριακή λειτουργία ξαναδοκιμάζει σε απλό κείμενο, κάτι αόρατο που ακυρώνει τον σκοπό ακριβώς την ημέρα που μετράει. Επιλέξτε συνειδητά και μετά καταγράψτε την επιλογή δίπλα στην απαίτηση.
Στο systemd-resolved αυτό σημαίνει DNSOverTLS=yes αντί για opportunistic· στο Android σημαίνει τη λειτουργία ονόματος κεντρικού υπολογιστή του Private DNS αντί για αυτόματη.
Ελέγξτε τι ισχύει πραγματικά με resolvectl status | grep -i -A1 "dns over tls", γιατί ένα αρχείο drop-in που δεν ξαναφορτώθηκε ποτέ δεν αλλάζει τίποτα.
Βήμα 4: ελέγξτε ότι οι εφαρμογές ακολουθούν τον resolver του συστήματος
Ένα πρόγραμμα περιήγησης με δική του ρύθμιση ασφαλούς DNS παρακάμπτει εντελώς τη διαμόρφωση του συστήματος, όπως και ένα runtime containers με ενσωματωμένο resolver ή ένα runtime γλώσσας που διαβάζει μια σκληρά κωδικοποιημένη λίστα. Είτε κάντε τα να ακολουθούν το σύστημα είτε διαμορφώστε τα ρητά και καταγράψτε το. Μετά κοιτάξτε τη συμπεριφορά υποχώρησης καθενός, γιατί δεν αποτυγχάνουν όλα κλειστά. Η απογραφή είναι σύντομη στην πράξη: πρόγραμμα περιήγησης, runtime containers και όποιος πελάτης VPN τρέχετε επίσης.
Τα ιδιωτικά ονόματα του οργανισμού μένουν στον εγκεκριμένο εσωτερικό resolver. Το να τα στέλνετε σε δημόσια υπηρεσία ώστε να φαίνεται τακτοποιημένο ένα τεστ δημιουργεί σκόπιμα άλλο πρόβλημα.
Βήμα 5: διαβάστε το τεστ διαρροής απέναντι στην απαίτηση
Ένα τεστ που αναφέρει απρόσμενο resolver είναι ένδειξη, όχι ετυμηγορία. Μπορεί να παρατήρησε τον κρυπτογραφημένο resolver που σκοπεύατε, μια ρύθμιση ειδική για εφαρμογή ή μια υποχώρηση σε απλό κείμενο που δεν γνωρίζατε. Συγκρίνετε τον αναφερόμενο resolver με αυτό που διαμόρφωσε το βήμα 2 και συγκρίνετε το αποτέλεσμα με τον στόχο από το βήμα 1.
Αν ο στόχος ήταν να κρατήσετε τα ερωτήματα μακριά από το τοπικό δίκτυο, ένα τεστ που δείχνει τον συνηθισμένο σας resolver είναι πραγματικό εύρημα. Αν ο στόχος ήταν η ανωνυμία κατά την περιήγηση, καμία ρύθμιση DNS δεν θα το έδινε ποτέ.
Γράψτε τη γραμμή αποδοχής στη γλώσσα του στόχου: αυτές οι αναζητήσεις χρησιμοποιούν αυτόν τον επαληθευμένο resolver υπό αυτές τις συνθήκες. Οτιδήποτε ευρύτερο είναι ισχυρισμός που δεν μπορείτε να δοκιμάσετε.