Κλειδιά 8192 bit κολλάνε τη χειραψία· το DH 1024 bit απορρίπτεται
Δύο σφάλματα μεγέθους με αντίθετες διορθώσεις: ένα υπερβολικά μεγάλο κλειδί καίει τον χρόνο της χειραψίας ώσπου ο συνομιλητής να λήξει, ενώ μια μικρή ομάδα DH απορρίπτεται πριν αρχίσει.
Σε έναν διακομιστή οι πελάτες κολλάνε για λίγο και μετά επανασυνδέονται, και ένας άλλος απορρίπτει αμέσως τις συνδέσεις με μήνυμα για το μέγεθος του κλειδιού. Μοιάζουν με διαφορετικά σφάλματα και είναι το ίδιο σφάλμα στραμμένο σε αντίθετες κατευθύνσεις. Η κρυπτογραφία της χειραψίας έχει κόστος που μεγαλώνει με το μέγεθος των παραμέτρων, και έχει και ένα κατώφλι κάτω από το οποίο οι σύγχρονες βιβλιοθήκες δεν πηγαίνουν. Ο καθορισμός του μεγέθους του υλικού είναι η λίστα ελέγχου, και το πρώτο στοιχείο είναι να αποφασίσετε ποιο από τα δύο σφάλματα έχετε πραγματικά.
Διαβάστε την αποτυχία πριν αναδημιουργήσετε οτιδήποτε
Ο χρονισμός σας λέει τα περισσότερα. Μια χειραψία που καταναλώνει αρκετά δευτερόλεπτα και μετά πεθαίνει συνήθως σημαίνει ότι ο υπολογισμός ξεπέρασε την υπομονή του συνομιλητή, κάτι που δείχνει σε παραμέτρους πολύ μεγάλες για το υλισμικό ή για το χρονικό όριο. Μια άμεση απόρριψη που αναφέρει μέγεθος κλειδιού ή ομάδας δείχνει προς την άλλη κατεύθυνση, σε υλικό που η βιβλιοθήκη δεν θα δεχτεί καθόλου.
Αυτά τα δύο χρειάζονται αντίθετες διορθώσεις, και εδώ αποτυγχάνουν οι περισσότερες προσπάθειες. Η αναδημιουργία παραμέτρων 8192 bit σε έναν πελάτη που έχει ήδη απορρίψει μια μικρή ομάδα χειροτερεύει την αργή περίπτωση χωρίς να κάνει τίποτα για τη γρήγορη. Σημειώστε ποιο σύμπτωμα παρατηρήσατε πριν αγγίξετε ένα αρχείο.
Έπειτα ελέγξτε τι ζητείται από τον συνομιλητή. Ένας διακομιστής ρυθμισμένος για μεγάλη ομάδα πεπερασμένου πεδίου αναγκάζει κάθε πελάτη να ξοδεύει τον ίδιο χρόνο CPU σε κάθε επαναδιαπραγμάτευση, όχι μόνο στη σύνδεση. Αν το πρόβλημα εμφανίζεται σε τακτικό διάστημα αντί στην εκκίνηση, αυτό το διάστημα είναι ισχυρή ένδειξη ποια ρύθμιση είναι ακριβή. Η επαναδιαπραγμάτευση επαναλαμβάνει ολόκληρο τον υπολογισμό, οπότε μια καθυστέρηση που επιστρέφει κάθε ώρα είναι συνήθως το ίδιο κόστος που πληρώνεται ξανά.
Η αργή περίπτωση: υλικό που το υλισμικό δεν μπορεί να αντέξει οικονομικά
Η εργασία των Diffie-Hellman και RSA μεγαλώνει γρήγορα με το μέγεθος του κλειδιού, και όλα αυτά συμβαίνουν πριν κυλήσει οποιαδήποτε κίνηση στη σήραγγα. Σε έναν μικρό δρομολογητή ή έναν πελάτη χαμηλής ισχύος, μια αρκετά μεγάλη ομάδα μπορεί να σπρώξει την ανταλλαγή πέρα από το χρονικό όριο της άλλης πλευράς, ώστε η σύνδεση να ξαναπροσπαθεί ή απλώς να φαίνεται κολλημένη χωρίς κανένα σφάλμα.
Η διόρθωση είναι να κατέβετε σε μέγεθος που υποστηρίζει κάθε συνομιλητής και μπορεί κάθε συσκευή να υπολογίσει άνετα. Ένα κλειδί RSA 2048 bit και μια ομάδα 2048 bit παραμένουν μια ευρέως συμβατή βάση· το μεγαλύτερο βοηθά μόνο όταν όλες οι πλευρές συμφωνούν και η CPU μπορεί να το πληρώσει σε κάθε επαναδιαπραγμάτευση. Κάθε τι πάνω από αυτή τη βάση είναι συνειδητός συμβιβασμός, όχι αναβάθμιση.
Το μέγεθος δεν είναι βαθμολογία, και ο μεγαλύτερος αριθμός σε έναν πίνακα σύγκρισης δεν είναι αυτόματα η σωστή επιλογή. Επιλέξτε τη μικρότερη τιμή που επιτρέπει η πολιτική σας και δέχονται όλοι οι συνομιλητές, και μετά μετρήστε τη χειραψία αντί να υποθέσετε ότι βελτιώθηκε. Μια μικρότερη ομάδα που ακόμη λήγει σας λέει ότι το μέγεθος ποτέ δεν ήταν όλη η ιστορία.
Η γρήγορη περίπτωση: μια ομάδα που η βιβλιοθήκη απορρίπτει
Οι σύγχρονες εκδόσεις του OpenSSL απορρίπτουν εντελώς τις μικρότερες ομάδες πεπερασμένου πεδίου, και ένα ανεβασμένο επίπεδο ασφάλειας σπρώχνει το κατώφλι ακόμη ψηλότερα. Το υλικολογισμικό δρομολογητή που κουβαλά ένα αρχείο παραμέτρων δεκαετιών είναι η συνήθης πηγή, και το σύμπτωμα είναι μια σύνδεση που αποτυγχάνει αμέσως με μήνυμα που ονομάζει την ομάδα ή το μέγεθος του κλειδιού. Τίποτα σε αυτή την αποτυχία δεν είναι διακοπτόμενο, και αυτό την κάνει εύκολη στην αναγνώριση.
Αντικαταστήστε το αρχείο αντί να επεξεργαστείτε τη διαμόρφωση για να παρακάμψετε τον έλεγχο. Δημιουργήστε μια τρέχουσα ομάδα, επικυρώστε την και μετά εγκαταστήστε την εκεί όπου ο δαίμονας τη διαβάζει πραγματικά. Κρατήστε το παλιό αρχείο μέχρι ένας πελάτης να συνδεθεί επιτυχώς με το νέο:
openssl dhparam -out /etc/openvpn/ffdhe2048.pem 2048
openssl dhparam -in /etc/openvpn/ffdhe2048.pem -check -noout
ls -l /etc/openvpn/ffdhe2048.pemΗ εντολή ελέγχου επικυρώνει το αρχείο και δεν εκτυπώνει τίποτα χρήσιμο όταν περνά· η λίστα επιβεβαιώνει ότι αντικαταστήσατε το αρχείο που φορτώνει η υπηρεσία και όχι ένα παλιό αντίγραφο δίπλα του. Στρέψτε τη διαμόρφωση σε αυτή τη διαδρομή, επανεκκινήστε τον δαίμονα και επιβεβαιώστε ότι ένας πελάτης που αποτύγχανε παλιά ολοκληρώνει τώρα τη χειραψία.
Αν ο διακομιστής ορίζει και επίπεδο ασφάλειας ή προφίλ πιστοποιητικού, διαβάστε τα πριν συμπεράνετε ότι η ομάδα ήταν λάθος. Ένα προφίλ που απαιτεί αυστηρότερη κλάση μπορεί να απορρίψει υλικό που η προεπιλογή θα δεχόταν, και η αφαίρεση αυτής της ρύθμισης είναι στενότερη αλλαγή από την καθολική απενεργοποίηση του ελέγχου.
Επιλέξτε μέγεθος για τον συνομιλητή και το υλισμικό
Μάθετε τι μπορεί να αντέξει το απομακρυσμένο άκρο πριν δημιουργήσετε κάτι εξωτικό. Μια συσκευή πολύ παλιά για ομάδα 2048 bit είναι συσκευή προς αντικατάσταση, αφού το να στρέψετε τον διακομιστή σε ασθενέστερη ομάδα μετατρέπει μόνο ένα παράπονο συμβατότητας σε διακοπή. Οι διαρκείς διορθώσεις κινούνται προς νεότερο λογισμικό και όχι προς παλαιότερες παραμέτρους. Κάθε προσωρινή εξαίρεση σε αυτόν τον τομέα έχει τον τρόπο της να γίνεται η μόνιμη διαμόρφωση.
Όπου η CPU του διακομιστή είναι το όριο, αλλάξτε τον αλγόριθμο αντί να πέσετε κάτω από την πολιτική. Μια ανταλλαγή κλειδιών με ελλειπτική καμπύλη όπως το X25519 είναι δραστικά φθηνότερη από μια μεγάλη ομάδα πεπερασμένου πεδίου και υποστηρίζεται ευρέως, κάτι που την κάνει καλύτερη απάντηση σε παράπονο απόδοσης από ένα μικρότερο μέτρο RSA.
Ό,τι κι αν επιλέξετε, δοκιμάστε το με μία πραγματική σύνδεση και δείτε πόσο διαρκεί η χειραψία, όχι μόνο αν τελικά συνδέεται. Μια σύνδεση που πετυχαίνει σε δώδεκα δευτερόλεπτα έχει την ίδια ρίζα με μία που αποτυγχάνει στα δεκαπέντε.
Καταγράψτε την επιλογή ώστε μια ανακατασκευή να μην την ακυρώσει
Κρατήστε το αρχείο παραμέτρων υπό διαχείριση διαμόρφωσης και γράψτε δίπλα του το μέγεθος, τον λόγο και την ημερομηνία. Ένας ξαναχτισμένος διακομιστής που παράγει σιωπηλά τις δικές του προεπιλογές είναι ο τρόπος με τον οποίο το ίδιο σφάλμα επιστρέφει έξι μήνες αργότερα χωρίς κανείς να μπορεί να εξηγήσει την αρχική απόφαση.
Γράψτε τις ίδιες πληροφορίες δίπλα στο άκρο και στο προφίλ, ώστε μια αναθεώρηση να μην πρέπει να τις ανασυνθέσει από το μέγεθος αρχείου. Όταν κολλήσει η επόμενη σύνδεση, αυτή η σημείωση είναι η διαφορά ανάμεσα σε έλεγχο πέντε λεπτών και νέα έρευνα. Εμποδίζει επίσης τον επόμενο μηχανικό να λύσει την αργή περίπτωση με διόρθωση που προοριζόταν για τη γρήγορη.