Το HTTPS και ένα VPN δεν επαληθεύουν το πακέτο που εγκαθιστάτε
Η κρυπτογραφημένη παράδοση προστατεύει μια διαδρομή, όχι έναν εκδότη. Συγκρίνετε τι ελέγχουν πραγματικά τα apt και dnf5 και μετά βρείτε ποιο όριο απέτυχε πριν αγγίξετε κλειδιά.
Μια ενημέρωση αποτυγχάνει και η πρόταση στο νήμα ακολουθεί γνωστή γραμμή: η κίνηση περνά από VPN, άρα η λήψη πρέπει να είναι αξιόπιστη, και ο έλεγχος υπογραφής χαλαρώνει για να ξεπεραστεί το σφάλμα. Δύο ξεχωριστές ιδέες έχουν συγχωνευτεί σε μία πρόταση. Η κρυπτογράφηση προστατεύει μια διαδρομή μεταξύ άκρων· η επαλήθευση ταυτότητας αποφασίζει αν τα byte προήλθαν από τον εκδότη που είχατε κατά νου. Ένα τούνελ παρέχει το πρώτο και δεν λέει τίποτα για το δεύτερο.
Το σύμπτωμα είναι συνήθως σφάλμα επαλήθευσης σε έναν κεντρικό υπολογιστή, σε ένα αποθετήριο, ενώ όλα τα άλλα ενημερώνονται κανονικά. Αυτό το σχήμα λέει ήδη ότι η διαδρομή δικτύου λειτουργεί και ότι η διαφωνία αφορά την εμπιστοσύνη.
Δύο έλεγχοι που απαντούν σε διαφορετικά ερωτήματα
Η ασφάλεια μεταφοράς απαντά ποιος βρίσκεται στο άλλο άκρο αυτής της σύνδεσης και αν κάποιος στη διαδρομή μπορεί να τη διαβάσει ή να την αλλάξει. Η επαλήθευση πακέτου απαντά αν αυτό το τεχνούργημα δημοσιεύτηκε από την αρχή που ρυθμίσατε, και πρέπει να αντέξει τη λήψη μέσω ενός κατόπτρου που δεν ελέγχετε.
Αυτά τα ερωτήματα επικαλύπτονται μόνο στις άκρες. Ένα σωστό πιστοποιητικό σε ένα κάτοπτρο αποδεικνύει ότι το κάτοπτρο είναι το κάτοπτρο· δεν αποδεικνύει ότι το κάτοπτρο περιέχει αναλλοίωτο περιεχόμενο εκδότη. Ένα υπογεγραμμένο πακέτο αποδεικνύει ότι ο εκδότης το υπέγραψε· δεν σας λέει ότι το δίκτυο παρέδωσε την πιο πρόσφατη έκδοση ή ότι το αποθετήριο στο οποίο δείξατε είναι αυτό που ενέκρινε ο οργανισμός σας.
Ο τρόπος αποτυχίας που δημιουργούν οι άνθρωποι απενεργοποιώντας ελέγχους είναι μόνιμη απώλεια της δεύτερης εγγύησης, με αντάλλαγμα μία επιτυχημένη λήψη. Αυτή η ανταλλαγή είναι αόρατη μέχρι την ημέρα που μετράει.
Τι επαληθεύει πραγματικά το apt
Το μοντέλο του APT είναι μια αλυσίδα πιστοποιημένου αρχείου. Τα υπογεγραμμένα μεταδεδομένα έκδοσης οδηγούν μέσω αθροίσματος ελέγχου στα ευρετήρια πακέτων, και αυτά τα ευρετήρια οδηγούν μέσω αθροίσματος ελέγχου στα επιμέρους αρχεία πακέτων. Η επαλήθευση της αλυσίδας είναι αυτό που κάνει ένα κάτοπτρο αναξιόπιστο αλλά χρησιμοποιήσιμο: το κάτοπτρο μπορεί να σερβίρει ό,τι θέλει, και η υπογραφή των μεταδεδομένων αποφασίζει αν το APT το δεχτεί.
Αυτό σκόπιμα δεν είναι το ίδιο με τον έλεγχο υπογραφής συντηρητή σε κάθε εγκατεστημένο πακέτο, και η διάκριση εξηγεί γιατί «το πακέτο είναι υπογεγραμμένο» και «το αρχείο είναι πιστοποιημένο» χρησιμοποιούνται εναλλάξ σε αναφορές σφαλμάτων όταν σημαίνουν διαφορετικά πράγματα.
apt-get update
apt-cache policy
apt-config dump | grep -iE 'AllowInsecure|AllowDowngrade'
Διαβάστε την έξοδο της ενημέρωσης και όχι μόνο τον κωδικό εξόδου. Το APT ονομάζει το αποθετήριο του οποίου τα μεταδεδομένα απέτυχαν, και αυτό το όνομα είναι το όριο προς διερεύνηση. Ένα αποθετήριο χαρακτηρισμένο ως αξιόπιστο χωρίς επαλήθευση υπογραφής, ή μια παράκαμψη για μη ασφαλές αποθετήριο, είναι απόφαση διαμόρφωσης που πήρε κάποιος και θα έπρεπε να μπορεί να εξηγήσει.
Η φρεσκάδα είναι πάλι ξεχωριστή ιδιότητα. Ένα έγκυρα υπογεγραμμένο αρχείο μεταδεδομένων μπορεί να είναι παλαιότερο από εκείνο που είδατε την περασμένη εβδομάδα, γι’ αυτό τα μεταδεδομένα έκδοσης φέρουν ημερομηνία λήξης και γι’ αυτό ένα πρόβλημα ρολογιού στον πελάτη μπορεί να παράγει σφάλματα επαλήθευσης που μοιάζουν με προβλήματα κλειδιού.
Τι ελέγχει χωριστά το dnf5
Η πλευρά RPM εκθέτει δύο διακριτούς διακόπτες, και η σύγχυσή τους παράγει την ίδια κατηγορία λάθους προς την άλλη κατεύθυνση. Ο ένας ελέγχει αν τα αρχεία πακέτων πρέπει να φέρουν έγκυρη υπογραφή· ο άλλος ελέγχει αν τα μεταδεδομένα αποθετηρίου πρέπει να είναι υπογεγραμμένα. Μπορούν να οριστούν ανεξάρτητα, και ένα σύστημα μπορεί να είναι αυστηρό στο ένα και επιεικές στο άλλο.
dnf5 config-manager --dump 2>/dev/null | grep -iE 'gpgcheck|repo_gpgcheck'
rpm -q --qf '%{NAME} %{SIGPGP:pgpsig}\n' bash
Το ερώτημα πακέτου δείχνει πώς μοιάζουν τα μεταδεδομένα υπογραφής του εγκατεστημένου αντιγράφου, κάτι που είναι χρήσιμος έλεγχος πραγματικότητας απέναντι σε ένα αρχείο διαμόρφωσης που ισχυρίζεται αυστηρότητα. Αυτό που δεν σας λέει είναι η υποστηριζόμενη πολιτική της διανομής, και αυτήν θα έπρεπε να ακολουθείτε αντί για μια γενική οδηγία «ενεργοποιήστε το GPG» από ένα φόρουμ.
Όπου οι δύο διαχειριστές διαφέρουν, η διαφορά είναι αρχιτεκτονική και όχι σημάδι ότι ο ένας είναι ασθενέστερος. Και οι δύο επαληθεύουν περιεχόμενο εκδότη· τοποθετούν την υπογραφή σε διαφορετικά σημεία της αλυσίδας.
Τι προσθέτει το τούνελ και τι όχι
Ένα VPN μπορεί να παρέχει απαιτούμενη διαδρομή, να κρατά την κίνηση ενημερώσεων έξω από αναξιόπιστο δίκτυο πρόσβασης και να μειώνει ό,τι βλέπει ένας τοπικός παρατηρητής. Αυτά είναι πραγματικά επιχειρησιακά οφέλη, και κανένα από αυτά δεν είναι επαλήθευση εκδότη.
Το HTTPS προσθέτει τη δική του εγγύηση, και είναι στενότερη απ’ ό,τι φαίνεται. Επαληθεύει το άκρο TLS στο οποίο συνδεθήκατε. Αν αυτό το άκρο είναι κάτοπτρο, έχετε επαληθεύσει το κάτοπτρο, όχι το περιεχόμενο του αρχείου που σερβίρει. Αυτή είναι ακριβώς η περίπτωση για την οποία υπάρχει η αλυσίδα υπογεγραμμένων μεταδεδομένων.
Κανένας από τους δύο ελέγχους δεν υπόσχεται διαθεσιμότητα. Ένα δίκτυο μπορεί να αρνηθεί την παράδοση, και ένα πιστοποιημένο αντικείμενο δεν είναι αυτόματα το νεότερο. Χρησιμοποιήστε την πολιτική φρεσκάδας του ίδιου του διαχειριστή πακέτων αντί να τη συμπεράνετε από την παρουσία εικονιδίου λουκέτου.
Διαγνώστε το όριο που απέτυχε
Ονομάστε το στάδιο πριν αλλάξετε οτιδήποτε: επίλυση DNS, τον διαμεσολαβητή ή τη διαδρομή, την ταυτότητα του άκρου TLS, την πιστοποίηση αρχείου, τους ελέγχους υπογραφής πακέτου ή την εγκατάσταση. Καθένα έχει ξεχωριστό σχήμα σφάλματος και ξεχωριστό ιδιοκτήτη.
Η επιδιόρθωση μιας διαδρομής δικτύου δεν θα έπρεπε ποτέ να περιλαμβάνει την κήρυξη άγνωστου κλειδιού υπογραφής ως αξιόπιστου, την αγνόηση πιστοποιητικών ή την αποδοχή διαμόρφωσης αποθετηρίου που δεν ζητήσατε. Αν ένα κλειδί όντως περιστράφηκε, η διανομή ή ο ιδιοκτήτης του αποθετηρίου δημοσιεύει το νέο κλειδί μέσω καναλιού που μπορείτε να επαληθεύσετε, και αυτή είναι η διόρθωση που πρέπει να εφαρμόσετε.
Γράψτε ποιο όριο απέτυχε και ποιος το κατέχει. Η επόμενη αποτυχία ενημέρωσης θα είναι σε άλλο όριο, και η ύπαρξη της λίστας τη μετατρέπει σε διάγνωση πέντε λεπτών αντί για άλλη μια διαφωνία για το αν το τούνελ κάνει τις ενημερώσεις ασφαλείς.