Ο Lennart Pottering πρότεινε μια νέα επαληθευμένη αρχιτεκτονική εκκίνησης με Linux

Η Lennart Poettering δημοσίευσε μια πρόταση για τον εκσυγχρονισμό της διαδικασίας εκκίνησης για διανομές Linux, με στόχο την επίλυση υφιστάμενων προβλημάτων και την απλοποίηση της οργάνωσης μιας πλήρους επαληθευμένης εκκίνησης που επιβεβαιώνει την αξιοπιστία του πυρήνα και του υποκείμενου περιβάλλοντος συστήματος. Οι αλλαγές που απαιτούνται για την υλοποίηση της νέας αρχιτεκτονικής περιλαμβάνονται ήδη στη βάση κώδικα systemd και επηρεάζουν στοιχεία όπως systemd-stub, systemd-measure, systemd-cryptenroll, systemd-cryptsetup, systemd-pcrphase και systemd-creds.

Οι προτεινόμενες αλλαγές καταλήγουν στη δημιουργία μιας ενιαίας καθολικής εικόνας UKI (Unified Kernel Image), που συνδυάζει την εικόνα του πυρήνα του Linux, έναν χειριστή για τη φόρτωση του πυρήνα από το UEFI (UEFI boot stub) και το περιβάλλον συστήματος initrd που φορτώνεται στη μνήμη, που χρησιμοποιείται για αρχική προετοιμασία στο στάδιο πριν από την προσάρτηση του root FS. Αντί για μια initrd εικόνα δίσκου RAM, ολόκληρο το σύστημα μπορεί να συσκευαστεί σε UKI, το οποίο σας επιτρέπει να δημιουργήσετε πλήρως επαληθευμένα περιβάλλοντα συστήματος φορτωμένα στη μνήμη RAM. Η εικόνα UKI μορφοποιείται ως εκτελέσιμο αρχείο σε μορφή PE, το οποίο μπορεί να φορτωθεί όχι μόνο χρησιμοποιώντας παραδοσιακούς φορτωτές εκκίνησης, αλλά μπορεί να κληθεί απευθείας από το υλικολογισμικό UEFI.

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

Επί του παρόντος, στις περισσότερες διανομές Linux, η διαδικασία προετοιμασίας χρησιμοποιεί την αλυσίδα "υλικολογισμικό → ψηφιακά υπογεγραμμένο στρώμα Microsoft shim → φορτωτής εκκίνησης GRUB ψηφιακά υπογεγραμμένος από τη διανομή → ψηφιακά υπογεγραμμένος πυρήνας Linux → μη υπογεγραμμένο περιβάλλον initrd → root FS". Η έλλειψη επαλήθευσης initrd στις παραδοσιακές διανομές δημιουργεί προβλήματα ασφάλειας, αφού, μεταξύ άλλων, σε αυτό το περιβάλλον ανακτώνται τα κλειδιά για την αποκρυπτογράφηση του ριζικού συστήματος αρχείων.

Η επαλήθευση της εικόνας initrd δεν υποστηρίζεται, καθώς αυτό το αρχείο δημιουργείται στο τοπικό σύστημα του χρήστη και δεν μπορεί να πιστοποιηθεί με ψηφιακή υπογραφή του κιτ διανομής, γεγονός που περιπλέκει πολύ την οργάνωση της επαλήθευσης κατά τη χρήση της λειτουργίας SecureBoot (για επαλήθευση του initrd, το ο χρήστης πρέπει να δημιουργήσει τα δικά του κλειδιά και να τα φορτώσει στο υλικολογισμικό UEFI). Επιπλέον, η τρέχουσα οργάνωση εκκίνησης δεν επιτρέπει τη χρήση πληροφοριών από τους καταχωρητές TPM PCR (Platform Configuration Register) για τον έλεγχο της ακεραιότητας των στοιχείων του χώρου χρήστη εκτός από το shim, το grub και τον πυρήνα. Μεταξύ των υπαρχόντων προβλημάτων, αναφέρεται επίσης η πολυπλοκότητα της ενημέρωσης του bootloader και η αδυναμία περιορισμού της πρόσβασης σε κλειδιά στο TPM για παλαιότερες εκδόσεις του λειτουργικού συστήματος που έχουν καταστεί άσχετες μετά την εγκατάσταση της ενημέρωσης.

Οι κύριοι στόχοι της εισαγωγής της νέας αρχιτεκτονικής φόρτωσης είναι:

  • Παρέχοντας μια πλήρως επαληθευμένη διαδικασία εκκίνησης που εκτείνεται από το υλικολογισμικό έως το χώρο χρήστη, επιβεβαιώνοντας την εγκυρότητα και την ακεραιότητα των στοιχείων που εκκινούνται.
  • Σύνδεση ελεγχόμενων πόρων με καταχωρητές TPM PCR, διαχωρισμένους από τον ιδιοκτήτη.
  • Δυνατότητα προ-υπολογισμού τιμών PCR με βάση τον πυρήνα, το initrd, τη διαμόρφωση και το τοπικό αναγνωριστικό συστήματος που χρησιμοποιείται κατά την εκκίνηση.
  • Προστασία από επιθέσεις επαναφοράς που σχετίζονται με την επαναφορά σε προηγούμενη ευάλωτη έκδοση του συστήματος.
  • Απλοποιήστε και αυξήστε την αξιοπιστία των ενημερώσεων.
  • Υποστήριξη για ενημερώσεις λειτουργικού συστήματος που δεν απαιτούν εκ νέου εφαρμογή ή τοπική παροχή πόρων που προστατεύονται με TPM.
  • Το σύστημα είναι έτοιμο για απομακρυσμένη πιστοποίηση για επιβεβαίωση της ορθότητας του φορτωμένου λειτουργικού συστήματος και των ρυθμίσεων.
  • Η δυνατότητα επισύναψης ευαίσθητων δεδομένων σε ορισμένα στάδια εκκίνησης, για παράδειγμα, εξαγωγή κλειδιών κρυπτογράφησης για το ριζικό σύστημα αρχείων από το TPM.
  • Παροχή μιας ασφαλούς, αυτόματης και χωρίς χρήστη διαδικασίας για το ξεκλείδωμα των κλειδιών για την αποκρυπτογράφηση μιας μονάδας ριζικού διαμερίσματος.
  • Χρήση τσιπ που υποστηρίζουν την προδιαγραφή TPM 2.0, με δυνατότητα επαναφοράς σε συστήματα χωρίς TPM.

Πηγή: opennet.ru

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