Πώς το DNSCrypt έλυσε το πρόβλημα των ληγμένων πιστοποιητικών με την εισαγωγή μιας περιόδου ισχύος 24 ωρών

Πώς το DNSCrypt έλυσε το πρόβλημα των ληγμένων πιστοποιητικών με την εισαγωγή μιας περιόδου ισχύος 24 ωρών

Στο παρελθόν, τα πιστοποιητικά έληγαν συχνά επειδή έπρεπε να ανανεωθούν χειροκίνητα. Οι άνθρωποι απλά ξέχασαν να το κάνουν. Με την εμφάνιση του Let's Encrypt και τη διαδικασία αυτόματης ενημέρωσης, φαίνεται ότι το πρόβλημα πρέπει να λυθεί. Πρόσφατο όμως Η ιστορία του Firefox δείχνει ότι, στην πραγματικότητα, εξακολουθεί να ισχύει. Δυστυχώς, τα πιστοποιητικά συνεχίζουν να λήγουν.

Σε περίπτωση που χάσατε την ιστορία, τα μεσάνυχτα της 4ης Μαΐου 2019, σχεδόν όλες οι επεκτάσεις του Firefox σταμάτησαν ξαφνικά να λειτουργούν.

Όπως αποδείχθηκε, η τεράστια αποτυχία συνέβη λόγω του γεγονότος ότι η Mozilla το πιστοποιητικό έχει λήξει, το οποίο χρησιμοποιήθηκε για την υπογραφή επεκτάσεων. Επομένως, επισημάνθηκαν ως "μη έγκυρα" και δεν επαληθεύτηκαν (τεχνικές λεπτομέρειες). Στα φόρουμ, ως λύση, συνιστάται να απενεργοποιήσετε την επαλήθευση υπογραφής επέκτασης about: config ή αλλαγή του ρολογιού του συστήματος.

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

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

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

DNSCrypt

Πώς το DNSCrypt έλυσε το πρόβλημα των ληγμένων πιστοποιητικών με την εισαγωγή μιας περιόδου ισχύος 24 ωρώνΤο DNSCrypt είναι ένα πρωτόκολλο κρυπτογράφησης κυκλοφορίας DNS. Προστατεύει τις επικοινωνίες DNS από υποκλοπές και MiTM και σας επιτρέπει επίσης να παρακάμπτετε τον αποκλεισμό σε επίπεδο ερωτήματος DNS.

Το πρωτόκολλο αναδιπλώνει την κυκλοφορία DNS μεταξύ πελάτη και διακομιστή σε μια κρυπτογραφική κατασκευή, που λειτουργεί μέσω των πρωτοκόλλων μεταφοράς UDP και TCP. Για να το χρησιμοποιήσετε, τόσο ο πελάτης όσο και ο αναλυτής DNS πρέπει να υποστηρίζουν DNSCrypt. Για παράδειγμα, από τον Μάρτιο του 2016, έχει ενεργοποιηθεί στους διακομιστές DNS και στο πρόγραμμα περιήγησης Yandex. Αρκετοί άλλοι πάροχοι έχουν επίσης ανακοινώσει υποστήριξη, συμπεριλαμβανομένων των Google και Cloudflare. Δυστυχώς, δεν υπάρχουν πολλοί από αυτούς (152 δημόσιοι διακομιστές DNS παρατίθενται στον επίσημο ιστότοπο). Αλλά το πρόγραμμα dnscrypt-proxy μπορεί να εγκατασταθεί με μη αυτόματο τρόπο σε πελάτες Linux, Windows και MacOS. Υπάρχουν επίσης υλοποιήσεις διακομιστή.

Πώς το DNSCrypt έλυσε το πρόβλημα των ληγμένων πιστοποιητικών με την εισαγωγή μιας περιόδου ισχύος 24 ωρών

Πώς λειτουργεί το DNSCrypt; Εν ολίγοις, ο πελάτης παίρνει το δημόσιο κλειδί του επιλεγμένου παρόχου και το χρησιμοποιεί για να επαληθεύσει τα πιστοποιητικά του. Τα βραχυπρόθεσμα δημόσια κλειδιά για τη συνεδρία και το αναγνωριστικό της σουίτας κρυπτογράφησης είναι ήδη εκεί. Οι πελάτες ενθαρρύνονται να δημιουργούν ένα νέο κλειδί για κάθε αίτημα και οι διακομιστές ενθαρρύνονται να αλλάζουν κλειδιά κάθε 24 ώρες. Κατά την ανταλλαγή κλειδιών, χρησιμοποιείται ο αλγόριθμος X25519, για υπογραφή - EdDSA, για κρυπτογράφηση μπλοκ - XSalsa20-Poly1305 ή XChaCha20-Poly1305.

Ένας από τους προγραμματιστές πρωτοκόλλου Frank Denis γράφειότι η αυτόματη αντικατάσταση κάθε 24 ώρες έλυνε το πρόβλημα των ληγμένων πιστοποιητικών. Κατ 'αρχήν, ο πελάτης αναφοράς dnscrypt-proxy δέχεται πιστοποιητικά με οποιαδήποτε περίοδο ισχύος, αλλά εκδίδει μια προειδοποίηση "Η περίοδος κλειδιού dnscrypt-proxy για αυτόν τον διακομιστή είναι πολύ μεγάλη" εάν ισχύει για περισσότερες από 24 ώρες. Ταυτόχρονα, κυκλοφόρησε μια εικόνα Docker, στην οποία εφαρμόστηκε μια γρήγορη αλλαγή κλειδιών (και πιστοποιητικών).

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

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

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

Ταυτόχρονα, εάν ο αυτοματισμός έχει ρυθμιστεί κανονικά, τότε δεν έχει σημασία πόσο συχνά αλλάζουν τα κλειδιά: κάθε χρόνο, κάθε τρίμηνο ή τρεις φορές την ημέρα. Εάν όλα λειτουργούν για περισσότερες από 24 ώρες, θα λειτουργούν για πάντα, γράφει ο Frank Denis. Σύμφωνα με τον ίδιο, η σύσταση καθημερινής εναλλαγής κλειδιού στη δεύτερη έκδοση του πρωτοκόλλου, μαζί με μια έτοιμη εικόνα Docker που το υλοποιεί, μείωσε ουσιαστικά τον αριθμό των διακομιστών με ληγμένα πιστοποιητικά, ενώ ταυτόχρονα βελτίωσε την ασφάλεια.

Ωστόσο, ορισμένοι πάροχοι εξακολουθούν να αποφάσισαν, για ορισμένους τεχνικούς λόγους, να ορίσουν την περίοδο ισχύος του πιστοποιητικού σε περισσότερες από 24 ώρες. Αυτό το πρόβλημα επιλύθηκε σε μεγάλο βαθμό με μερικές γραμμές κώδικα στο dnscrypt-proxy: οι χρήστες λαμβάνουν μια ενημερωτική προειδοποίηση 30 ημέρες πριν από τη λήξη του πιστοποιητικού, ένα άλλο μήνυμα με υψηλότερο επίπεδο σοβαρότητας 7 ημέρες πριν από τη λήξη και ένα κρίσιμο μήνυμα εάν το πιστοποιητικό έχει υπόλοιπο λιγότερο από 24 ώρες. Αυτό ισχύει μόνο για πιστοποιητικά που έχουν αρχικά μεγάλη περίοδο ισχύος.

Αυτά τα μηνύματα δίνουν στους χρήστες την ευκαιρία να ειδοποιήσουν τους χειριστές DNS για την επικείμενη λήξη του πιστοποιητικού πριν να είναι πολύ αργά.

Ίσως εάν όλοι οι χρήστες του Firefox λάμβαναν ένα τέτοιο μήνυμα, τότε πιθανότατα κάποιος θα ενημέρωνε τους προγραμματιστές και δεν θα επέτρεπαν τη λήξη του πιστοποιητικού. «Δεν θυμάμαι ούτε έναν διακομιστή DNSCrypt στη λίστα των δημόσιων διακομιστών DNS που έχει λήξει το πιστοποιητικό του τα τελευταία δύο ή τρία χρόνια», γράφει ο Frank Denis. Σε κάθε περίπτωση, είναι μάλλον καλύτερο να προειδοποιήσετε πρώτα τους χρήστες αντί να απενεργοποιήσετε τις επεκτάσεις χωρίς προειδοποίηση.

Πώς το DNSCrypt έλυσε το πρόβλημα των ληγμένων πιστοποιητικών με την εισαγωγή μιας περιόδου ισχύος 24 ωρών


Πηγή: www.habr.com

Προσθέστε ένα σχόλιο