Μπορεί ένα πιστοποιητικό RSA να λειτουργήσει με dh none στο OpenVPN;
Ο τύπος πιστοποιητικού και η ομάδα ανταλλαγής κλειδιών είναι δύο ξεχωριστές επιλογές TLS. Ένα πιστοποιητικό RSA μπορεί να πιστοποιήσει μια χειραψία ECDHE, επομένως το dh none δεν χρειάζεται πιστοποιητικά EC.
Ιδού μια διαμόρφωση διακομιστή που λέει dh none δίπλα σε ένα πιστοποιητικό που λέει RSA, μαζί με μια ενοχλητική υποψία ότι ένα από τα δύο πρέπει να είναι λάθος. Τίποτα δεν είναι λάθος. Το πιστοποιητικό υπογράφει και πιστοποιεί· η ανταλλαγή κλειδιών καθιερώνει ένα κοινό μυστικό. Αυτές είναι δύο διαφορετικές εργασίες στην ίδια χειραψία, και το TLS επιτρέπει σε ένα πιστοποιητικό RSA να πιστοποιήσει μια χειραψία που χρησιμοποιεί εφήμερη συμφωνία ελλειπτικής καμπύλης.
Η σύγχυση συνήθως φτάνει με έναν οδηγό μετάβασης. Λέει να αντικατασταθεί το αρχείο παραμέτρων DH με dh none, ο αναγνώστης παρατηρεί ότι το πιστοποιητικό δεν είναι πιστοποιητικό ελλειπτικής καμπύλης, και τα δύο γεγονότα αντιμετωπίζονται ως αντίφαση.
Γιατί οι δύο ρυθμίσεις φαίνονται συνδεδεμένες
Η παλαιότερη διαμόρφωση του OpenVPN απαιτούσε αρχείο παραμέτρων DH επειδή το Diffie-Hellman πεπερασμένου πεδίου χρειάζεται παραμέτρους τομέα στις οποίες συμφωνούν και οι δύο πλευρές. Η οδηγία dh έδειχνε σε αυτό το αρχείο. Όταν μια εγκατάσταση περνά σε ECDH, οι παράμετροι προέρχονται από μια ονομασμένη καμπύλη αντ' αυτού, και το αρχείο δεν χρειάζεται πλέον, που είναι αυτό που εκφράζει το dh none.
Τα πιστοποιητικά είναι ξεχωριστός άξονας. Μεταφέρουν ένα δημόσιο κλειδί και μια υπογραφή που αποδεικνύουν την ταυτότητα του διακομιστή, και αυτό το κλειδί μπορεί να είναι RSA ή ελλειπτικής καμπύλης ανεξάρτητα από το πώς συμφωνείται το κλειδί συνεδρίας. Μια χειραψία που χρησιμοποιεί ECDHE για συμφωνία κλειδιού και RSA για πιστοποίηση είναι συνηθισμένη και ευρέως αναπτυγμένη.
Η ονοματοδοσία επιδεινώνει την επικάλυψη. Η ελλειπτική καμπύλη εμφανίζεται τόσο στα ονόματα σουιτών ECDHE όσο και ECDSA, οπότε είναι εύκολο να υποθέσει κανείς ότι κάθε σύνδεση που αναφέρει καμπύλη πρέπει να περιλαμβάνει πιστοποιητικό καμπύλης. Δεν ισχύει αυτό.
Πώς να διαβάζετε σωστά ένα όνομα σουίτας TLS 1.2
Πάρτε το ECDHE-RSA-AES256-GCM-SHA384. Το πρώτο διακριτικό είναι η οικογένεια ανταλλαγής κλειδιών: εφήμερο Diffie-Hellman ελλειπτικής καμπύλης. Το δεύτερο είναι η οικογένεια πιστοποίησης: RSA. Τα υπόλοιπα περιγράφουν την προστασία εγγραφών και τον κατακερματισμό που χρησιμοποιείται στη χειραψία.
Μια σουίτα ECDHE-ECDSA χρησιμοποιεί την ίδια οικογένεια ανταλλαγής κλειδιών με διαφορετική μέθοδο πιστοποίησης, οπότε χρειάζεται πιστοποιητικό ελλειπτικής καμπύλης. Μια σουίτα DHE-RSA χρησιμοποιεί εφήμερο Diffie-Hellman πεπερασμένου πεδίου με πιστοποίηση RSA, και αυτή χρειάζεται πράγματι παραμέτρους DH.
Διαβάστε το όνομα της σουίτας από αριστερά προς τα δεξιά και αναθέστε κάθε μέρος στην εργασία του. Μόλις χωριστούν τα διακριτικά, η ερώτηση αλλάζει από «ταιριάζει το πιστοποιητικό μου με το dh none» σε «επιτρέπει ο διακομιστής μου μια σουίτα της οποίας η ανταλλαγή κλειδιών δεν χρειάζεται αρχείο DH».
Τι απενεργοποιεί πραγματικά το dh none
Το dh none λέει στον διακομιστή να μην φορτώνει αρχείο παραμέτρων DH πεπερασμένου πεδίου. Δεν απενεργοποιεί την πιστοποίηση, την επικύρωση πιστοποιητικών ούτε το ίδιο το TLS. Απαιτεί όμως η διαπραγματευμένη ανταλλαγή κλειδιών να είναι μία που δεν χρειάζεται αυτές τις παραμέτρους, που στην πράξη σημαίνει σουίτα ECDHE ή χειραψία TLS 1.3.
Από αυτή την απαίτηση προέρχεται η βλάβη. Αν η πολιτική κρυπτογράφησης TLS του διακομιστή περιορίζεται σε σουίτες DHE, ή αν ένας πελάτης προσφέρει μόνο αυτές, η αφαίρεση του αρχείου παραμέτρων δεν αφήνει καμία χρησιμοποιήσιμη μέθοδο ανταλλαγής κλειδιών και η χειραψία αποτυγχάνει. Το σφάλμα εμφανίζεται συνήθως κατά τη χειραψία του καναλιού ελέγχου, πριν από οποιαδήποτε πιστοποίηση χρήστη. Διαβάστε τη λίστα κρυπτογραφήσεων πριν κατηγορήσετε το αρχείο που λείπει.
Στην πλευρά της ελλειπτικής καμπύλης, η καμπύλη επιλέγεται από τη διαμόρφωση TLS του διακομιστή, και το OpenVPN προσφέρει μια επιλογή για να τη διαλέξετε σε παλαιότερους κλάδους. Το TLS 1.3 χειρίζεται τη διαπραγμάτευση ομάδας μέσα στο πρωτόκολλο και δεν συμβουλεύεται καθόλου το αρχείο DH.
Το dh none δεν είναι από μόνο του υποβάθμιση ασφάλειας. Η ισχύς της ανταλλαγής εξαρτάται τότε από την καμπύλη και τη σουίτα που διαπραγματεύονται πράγματι, γι' αυτό το επόμενο βήμα είναι να κοιτάξετε τι επέλεξαν οι ομότιμοι και όχι το αρχείο που λείπει.
Επιβεβαίωση της διαπραγμάτευσης πριν από την επεξεργασία
Αυξήστε τη λεπτομέρεια του διακομιστή και του πελάτη και διαβάστε τη γραμμή του καναλιού ελέγχου που εκτυπώνει το OpenVPN μετά από μια σύνδεση. Ονομάζει την έκδοση TLS και την κρυπτογράφηση που διαπραγματεύτηκε, και αναφέρει τον τύπο κλειδιού του πιστοποιητικού του ομοτίμου. Αυτή η μία γραμμή απαντά στην ερώτηση που το αρχείο διαμόρφωσης μόνο υπονοεί.
Αν δείχνει TLS 1.2 με σουίτα ECDHE-RSA και πιστοποιητικό RSA, ο συνδυασμός είναι ακριβώς αυτό που περιμένει το dh none, και δεν υπάρχει τίποτα να διορθωθεί. Αν δείχνει σουίτα DHE ή αποτυχία χειραψίας χωρίς κοινή κρυπτογράφηση, η διόρθωση είναι στην πολιτική κρυπτογράφησης ή στις δυνατότητες του πελάτη, όχι στο πιστοποιητικό.
Δοκιμάστε τον παλαιότερο πελάτη που σκοπεύετε να υποστηρίξετε, γιατί ένας τρέχων πελάτης μπορεί να διαπραγματευτεί TLS 1.3 ενώ ένας παλαιότερος περιορίζεται σε σουίτες TLS 1.2. Αν ο παλαιότερος πελάτης δεν έχει επικάλυψη, είτε διευρύνετε τις επιτρεπόμενες σουίτες είτε αναβαθμίστε αυτό το άκρο.
Μην απενεργοποιήσετε την επαλήθευση πιστοποιητικών για να ξεπεράσετε μια αποτυχία χειραψίας. Η αποτυχία σας λέει ότι οι ομότιμοι δεν μπόρεσαν να συμφωνήσουν σε ανταλλαγή κλειδιών, και η απενεργοποίηση του ελέγχου αφαιρεί την εγγύηση ταυτότητας χωρίς να αντιμετωπίζει τη συμφωνία.
Λίστα ελέγχου: είναι το πιστοποιητικό RSA, επιτρέπεται σουίτα ECDHE, δείχνει το αρχείο καταγραφής αυτή τη σουίτα, και τη διαπραγματεύεται και ο παλαιότερος υποστηριζόμενος πελάτης; Αν και τα τέσσερα είναι ναι, το dh none κάνει τη δουλειά του.