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

Δύο εγγραφές, δύο διαφορετικές έννοιες

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

Αυτή η διαφορά καθορίζει τι σημαίνει μια απουσία:

QuestionWireGuard handshakeOpenVPN session log
Did the peer send recently?Strong hint within the rekey windowNot answered by start time alone
Did the peer stop?Weak, because idle peers also stop rekeyingOnly if a disconnect was written
What was visited?NothingNothing

Γιατί μια χειραψία δεν είναι συνεχής χρήση

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

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

Τα αναγνωριστικά ταξιδεύουν με τη χρονική σφραγίδα

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

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

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

Η συσχέτιση μεταξύ συστημάτων χρειάζεται φροντίδα ρολογιών

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

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

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

Διαβάστε την εγγραφή με εντολές, όχι με φαντασία

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

Αυτές οι δύο γραμμές δείχνουν την ηλικία της χειραψίας και τους μετρητές byte για κάθε ομότιμο WireGuard, και έπειτα το ίδιο είδος υλικού από ένα αρχείο κατάστασης του OpenVPN:

wg show all latest-handshakes
wg show wg0 transfer
cat /run/openvpn/server.status

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

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