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

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

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

Το κανάλι ελέγχου διαπραγματεύεται μια συνεδρία TLS και η πολιτική του γράφεται με tls-cipher για TLS 1.2 και tls-ciphersuites για TLS 1.3. Το κανάλι δεδομένων ρυθμίζεται χωριστά με data-ciphers, όπου μια ασυμφωνία παράγει σύνδεση που εγκαθίσταται και μετά δεν μπορεί να περάσει κίνηση. Και τα δύο παράγουν σφάλματα που αναφέρουν κρυπτογραφήσεις, γι' αυτό μπερδεύονται. Μια χειραψία που δεν ολοκληρώνεται ποτέ δείχνει το κανάλι ελέγχου, ενώ ένα εγκατεστημένο τούνελ που ρίχνει πακέτα δείχνει το κανάλι δεδομένων.

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

Συγκρίνετε εκδόσεις πριν συγκρίνετε σουίτες

Μια πλευρά περιορισμένη σε TLS 1.2 και μια πλευρά που απαιτεί 1.3 δεν μοιράζονται καμία έκδοση, και καμία συμβολοσειρά κρυπτογράφησης δεν το γεφυρώνει. Καταγράψτε tls-version-min και tls-version-max και στις δύο πλευρές, ή τις προεπιλογές των εκδόσεων που χρησιμοποιούνται, γιατί η πολιτική OpenSSL μιας διανομής μπορεί να ανεβάσει το κατώτατο όριο χωρίς να το λέει καμία επιλογή του OpenVPN. Αν η μία πλευρά είναι συσκευή ή πελάτης τρίτου, το παράθυρό της είναι ό,τι επιτρέπει το firmware της. Μόνο όταν τα παράθυρα επικαλύπτονται έχει νόημα μια σύγκριση σουιτών.

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

Οι λίστες TLS 1.2 και TLS 1.3 δεν αναμιγνύονται

Τα ονόματα σουιτών TLS 1.2 μοιάζουν με ECDHE-RSA-AES256-GCM-SHA384 και ανήκουν στο tls-cipher, που δέχεται μια συμβολοσειρά κρυπτογράφησης OpenSSL. Οι σουίτες TLS 1.3 ονομάζονται όπως TLS_AES_256_GCM_SHA384 και ανήκουν στο tls-ciphersuites· η προσθήκη μίας στη συμβολοσειρά 1.2 δεν ρυθμίζει τη λίστα 1.3, και ο αναλυτής μπορεί να δεχτεί το κείμενο χωρίς να το αντιστοιχίσει ποτέ. Ένα φίλτρο σωστό για μία έκδοση δεν λέει τίποτα για την άλλη. Σημειώστε για ποια έκδοση προορίζεται κάθε λίστα.

openvpn --show-tls εκτυπώνει τι υποστηρίζει η τοπική έκδοση, και αυτό είναι απογραφή, όχι υπόσχεση: η απομακρυσμένη πλευρά μπορεί να μην επιτρέπει αυτές τις σουίτες, και το ενεργό προφίλ μπορεί να μην τις ενεργοποιεί. Χρησιμοποιήστε το για να αποκλείσετε μια έκδοση που δεν μπορεί να προσφέρει καθόλου σουίτα και μετά συγκρίνετε τις ρυθμισμένες λίστες.

Αποδείξτε τη διαπραγμάτευση σε νέα σύνδεση

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

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

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

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