Οι παράμετροι της ομάδας είναι δημόσιες εξ ορισμού, και ακριβώς αυτή η δημοσιότητα τις κάνει εύκολες να αγνοηθούν. Στο Diffie-Hellman πεπερασμένου πεδίου το μέτρο και ο γεννήτορας είναι κοινά, ενώ οι ιδιωτικοί εκθέτες και τα προκύπτοντα κλειδιά συνεδρίας δεν είναι. Το ακριβό στάδιο μιας επίθεσης με κόσκινο πεδίου αριθμών εξαρτάται από την ομάδα και όχι από μία ανταλλαγή, οπότε μία αδύναμη ομάδα που χρησιμοποιείται παντού γίνεται κοινή ευθύνη. Το να χαρακτηρίσουμε τις παραμέτρους δημόσιες είναι ακριβές και άσχετο, γιατί το κόστος που επαναχρησιμοποιείται είναι το κόστος επίθεσης σε αυτή την ομάδα.

Το δημόσιο μισό δεν είναι το ευάλωτο μισό, και εκεί βρίσκεται η παγίδα

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

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

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

Τι αγοράζει πραγματικά ο προϋπολογισμός σε έναν επιτιθέμενο

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

Η εργασία Logjam του 2015 έδειξε υποβάθμιση σε Diffie-Hellman 512 bit εξαγωγικής ποιότητας και εκτίμησε τι θα κόστιζε η επίθεση σε μεγαλύτερες, ευρέως επαναχρησιμοποιούμενες ομάδες με σημαντικούς πόρους. Η επίδειξη ήταν συγκεκριμένη, οι εκτιμήσεις ήταν εκτιμήσεις, και κανένα από τα δύο δεν ήταν απόδειξη ότι αποκρυπτογραφήθηκε μια συγκεκριμένη συνεδρία VPN.

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

Τυποποιημένο δεν σημαίνει αδύναμο

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

Κρατήστε τις κατασκευές χωριστά όταν συλλογίζεστε γι' αυτές. Ένα συμπέρασμα για το Diffie-Hellman πεπερασμένου πεδίου δεν λέει τίποτα για το X25519, και ένα συμπέρασμα για μια ομάδα MODP 1024 bit δεν λέει τίποτα για μια 3072 bit. Η πολιτική ισχύος είναι ανά μηχανισμό, ανά μέγεθος και ανά έκδοση πρωτοκόλλου, γι' αυτό η φράση ισχυρή κρυπτογραφία δεν είναι δηλώσιμη προς έλεγχο.

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

Διαβάστε τη διαπραγματευμένη ομάδα σε πραγματική σύνδεση

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

Καταγράψτε αυτή τη γραμμή πριν και μετά από μια αλλαγή πολιτικής και κρατήστε και τις δύο στο αρχείο αλλαγών. Η σύγκριση είναι η απόδειξη.

ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -noout

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

Ελέγξτε την ομάδα και την ταυτότητα του ομοτίμου χωριστά

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

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

ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'

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

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