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

Δύο αντικείμενα που μοιάζουν σε μια καταγραφή

Ένας πελάτης TLS 1.3 μπορεί να συνεισφέρει υλικό ανταλλαγής κλειδιών στην πρώτη του πτήση χωρίς να παρουσιάσει κανένα πιστοποιητικό. Αυτή η συνεισφορά είναι δημόσια εκ σχεδιασμού, γιατί ο διακομιστής τη χρειάζεται για να παράγει το κοινό μυστικό. Το πιστοποιητικό πελάτη είναι διαφορετικό μήνυμα και στέλνεται μόνο αφού ο διακομιστής ζητήσει ένα. Φέρει ταυτότητα που επαληθεύει έπειτα ο διακομιστής, και η αμοιβαία ταυτοποίηση είναι απόφαση του διακομιστή, όχι ιδιότητα που συνεπάγεται η σουίτα κρυπτογράφησης. Η ταυτότητα εφαρμογής είναι εντελώς τρίτο πράγμα: μια φόρμα σύνδεσης, ένα διακριτικό φορέα, ένα cookie. Κανένα από αυτά δεν εμφανίζεται στη χειραψία, και όλα επιβιώνουν από αλλαγή της διαδρομής δικτύου.

Object in playWhat it establishes
Key-exchange shareCryptographic state for this connection
Server certificateWhich server the client reached
Client certificateClient authentication, when requested
Application sessionAccount identity inside the application

Οι τέσσερις γραμμές είναι ανεξάρτητες. Μια σύνδεση μπορεί να έχει την πρώτη και τη δεύτερη γραμμή, να παραλείψει την τρίτη και να φέρει ακόμη την τέταρτη σε μια κεφαλίδα cookie.

Αποφασίστε τι μπορεί να αποδείξει μια καταγεγραμμένη χειραψία

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

Άρα το έντιμο συμπέρασμα είναι στενό: δεν παρουσιάστηκε πιστοποιητικό πελάτη σε αυτή την ανταλλαγή. Δεν πρόκειται για το ότι ο πελάτης δεν έστειλε τίποτα συνδεόμενο, και σίγουρα όχι για το ότι η συνεδρία δεν έφερε αναγνωριστικό.

Διαβάστε τα μηνύματα αντί για το όνομα του κρυπτογράφου

Ρωτήστε τον διακομιστή τι ζητά, αντί να συμπεράνετε από τη σουίτα κρυπτογράφησης. Μια χειραψία TLS 1.3 που περιλαμβάνει αίτημα πιστοποιητικού είναι ορατή στο αντίγραφο, και η απουσία της είναι εξίσου ορατή.

openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'

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

openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet

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

Πού αλλάζει η απάντηση με τη συνέχιση

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

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

Καταγράψτε τέσσερις ιδιότητες, όχι μία ετυμηγορία

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

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

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