Το «μονοπώλιο» της Microsoft και η αντίδραση του Linux

Ενα από τα βασικά προβλήματα που θα έχει οποιοσδήποτε αγοράσει ένα καινούριο φορητό ή desktop υπολογιστή είναι το στικεράκι "Designed For Windows 8".
Το στικεράκι από μόνο του δεν λέει τίποτα. Συνήθως όμως σημαίνει ότι ο υπολογιστής αυτός ενσωματώνει τη νέα τεχνολογία που προμοτάρει η Microsoft, με το πρόσχημα της ασφάλειας και της μάχης κατά της πειρατείας: To Secure ή Trusted Boot. Πρόκειται για μια αρκετά περίπλοκη τεχνολογία, όπου -με απλοποιημένα λόγια- κατά την εκκίνηση του υπολογιστή το Firmware (UEFI) ανταλλάσσει κρυπτογραφημένα κλειδιά με το λειτουργικό σύστημα. Αν το κλειδί του λειτουργικού "ταιριάζει" με κάποιο από τα κλειδιά του UEFI, τότε η εκκίνηση προχωρά, διαφορετικά, κλαψτα Χαράλαμπε. Τα κλειδιά της Microsoft τα διαθέτει η VeriSign προς 99 δολάρια έκαστο αλλά δεν φτάνει αυτό. Όποιος, εκτός της MS, ενδιαφέρεται να βάλει το κλειδί του στο firmware των υπολογιστών για να εκκινεί το δικό του λειτουργικό θα πρέπει να υποβάλλει τον κώδικα για "υπογραφή" στην ίδια την MS.
Με λίγα λόγια η τεχνολογία αυτή συνεπάγεται ότι κάθε υπολογιστής με ενεργό Secure Boot δεν θα μπορεί να τρέχει κανένα λειτουργικό το οποίο δεν έχει την "έγκριση" ή τουλάχιστον την υπογραφή της MS. Αυτό το γεγονός και μόνο σημαίνει ότι μία εταιρεία μπορεί δυνητικά να έχει έστω και εμμέσως τον έλεγχο για το τι θα τρέξεις στον επόμενο υπολογιστή σου.
Το Ίδρυμα Ελεύθερου Λογισμικού τρέχει καμπάνια κατά του Secure Boot, αλλά μέχρι αυτή να ευοδωθεί κάτι έπρεπε να γίνει για να μπορεί ένας χρήστης να εγκαθιστά μια διανομή Linux σε ένα ολοκαίνουριο υπολογιστή με Windows 8. Γι' αυτό το λόγο το Linux Foundation αποφάσισε να φτιάξει έναν pre-bootloader δηλαδή έναν μικρό διαχειριστή εκκίνησης, να αγοράσει ένα κλειδί από την Verisign, να υποβάλλει τον κώδικα για υπογραφή στην ίδια την MS και μετά να τον διαθέσει δωρεάν σε όλους μας. Το σχέδιο ήταν απλό: O pre-bootloader δεν θα εκκινεί ο ίδιος το «άλλο» λειτουργικό (π.χ. το Linux) αλλά απλώς θα δίνει πάσα σε έναν μεγαλύτερο bootloader που θα αναλαμβάνει τα υπόλοιπα.
Ωστόσο, ο pre-bootloader είχε προβλήματα να δουλέψει με τον Gummiboot, έναν άλλοboot loader που και εκείνος σχεδιάστηκε για να δουλεύει με την πλατφόρμα UEFI Secure Boot.
Την Παρασκευή, ο συντηρητής του pre-bootloader, James Bottomley ανακοίνωσε ότι το πρόγραμμα ξαναγράφτηκε σχεδόν από την αρχή σε σχέση με αυτό που είχε σχεδιαστεί αρχικά ώστε να δουλεύει πλέον και με τον Gummiboot. Στο blog του δίνει και μια τεχνική ανάλυση του προβλήματος (δείτε εδώ την παρουσίαση), και πως ξεπεράστηκε, όμως η ουσία είναι στα προβλήματα που έχουν ανακύψει με αυτό το Secure Boot.
Για παράδειγμα, όπως αποκαλύφθηκε την προηγούμενη εβδομάδα, κάποια laptops της Samsung με ενεργό το Trusted Boot μπορούσαν να πάθουν ανεπανόρθωτη ζημιά αν κάποιος προσπαθούσε να μπουτάρει μια διανομή Linux! Το πρόβλημα λύθηκε (πρέπει να απενεργοποιηθεί ο driver samsung-laptop, δείτε εδώ) αλλά η ζημιά είχε γίνει.
Τα προβλήματα όμως δεν φαίνεται να τελειώνουν εδώ. Με τα λόγια του Bottomley: "Το πρόβλημα μετατρέπεται πλέον από το πως θα φτιάξουμε έναν εγκεκριμένο από την MS bootloader που υπακούει στις πολιτικές της στο πως θα κάνουμε όλα τα παιδιά του bootloader να εκκινούν μέσω του Bootservices -> LoadImage() (μια ρουτίνα του UEFI της MS) με τρόπο που να υπακούει στις πολιτικές τους».
Για όποιον δεν κατάλαβε, η λέξη κλειδί εδώ το "υπακούει" (obey στα αγγλικά). Πράγμα που σημαίνει ότι για πρώτη φορά οι διανομές Linux (και όχι μόνο) πρέπει να προσαρμοστούν στο πως δουλεύει ένα και μόνο λειτουργικό σύστημα (τα Windows 8) ή για να είμαστε πιο ακριβείς στην πλατφόρμα ασφαλούς εκκίνησης που χρησιμοποιούν όλοι σχεδόν οι κατασκευαστές υπολογιστών (με την "υποστήριξη" της MS βεβαίως), απλώς και μόνο επειδή αυτά είναι εγκατεστημένα στους περισσότερους νέους υπολογιστές μέσω περίπλοκων συμφωνιών και εκπτώσεων στους προμηθευτές.
Ο Linus Torvalds, ίσως με κάποια υπερβολή, είχε δηλώσει σίγουρος ότι το Linux δεν θα έχει προβλήματα με το Secure Boot. Η πράξη όμως δείχνει το αντίθετο και δυστυχώς μέχρι στιγμής τον διαψεύδει. Ελάχιστες διανομές μπορούν να τρέξουν απροβλημάτιστα σε Secure Boot μηχάνημα – η εξής μία, το Ubuntu 12.10. Πάντως όλες οι μεγάλες διανομές εργάζονται για να μπορούν οι επόμενες εκδόσεις τους να τρέχουν σε υπολογιστές με ενεργό το Secure Boot. Δυστυχώς, η καθεμιά κυνηγάει τη δική της λύση στο πρόβλημα, με αποτέλεσμα να φτάνουν στο σημείο να υπογράφουν ξεχωριστές συμφωνίες με την MS, όπως έκανε το καλοκαίρι η Red Hat.
Η λύση του Shim
Εκτός από τις διανομές όμως, ένας γνωστός linux hacker, o Mathew Garrett (πρώην εργαζόμενος της Red Hat) έφτιαξε τον δικό του pre-bootloader, το shim, πήρε την "υπογραφή" της MS, και τον διέθεσε στο κοινό. Ο Shim ουσιαστικά επιτρέπει στον οποιονδήποτε χρήστη ή παραγωγό διανομής να τρέξει το γνωστό μας GRUB boot-loader σε Secure Boot μηχάνημα. Δείτε εδώ τον κώδικα του Shim και αναλυτικές οδηγίες εγκατάστασης (αν φτιάχνετε διανομή ή remaster). Να σημειωθεί πως τον κώδικα του Shim θα χρησιμοποιεί και η επόμενη έκδοση του openSUSE αλλά με δικό της signed κλειδί.
Κι αν αναρωτιέστε γιατί δεν επέλεξαν όλοι αυτοί τον GRUB ή τον ίδιο τον πυρήνα για να τον υποβάλλουν για υπογραφή στην MS, η απάντηση είναι απλή. O GRUB 2 διατίθεται υπό την άδεια GPL3, που υποχρεώνει τα signing keys να διατίθεται από τους ίδιους τους developers, ενώ ο πυρήνας διατίθεται υπό την άδεια GPL η οποία δεν έχει καθόλου πρόβλεψη για κλειδιά, υπογραφές και τα ρέστα.
Μια μάχη που δεν δώσαμε/κερδίσαμε
Αξίζει να σημειωθεί πάντως πως η ιστορία του Secure Boot ανέδειξε μια από τις κλασικές αδυναμίες του ελεύθερου λογισμικού. Το μάρκετινγκ. Τι εννοώ; Σε μια υπόθεση όπου καταφανώς "έχουμε δίκιο", αφού η MS ουσιαστικά περιορίζει και ελέγχει τι τρέχει και τι δεν τρέχει στους υπολογιστές μας άρα μειώνει την ελευθερία του χρήστη, και θα μπορούσε να χρησιμοποιηθεί κατάλληλα στα ΜΜΕ, η ιστορία του Secure Boot έχει περάσει στα "ψιλά" των μέσων, ενώ η κοινότητα φαίνεται διαιρεμένη. Οι μεγάλες διανομές προσπαθούν η κάθε μια να βρει μια δική της λύση και μόνο προσπάθειες σαν του Linux Foundation και του Garrett είναι αρκούντως γενικές. Κι αυτές όμως δεν λύνουν το θεμελιώδες ζήτημα: Χρειάζεσαι "έγκριση" για να τρέξεις Linux σε έναν νέο υπολογιστή.
Επομένως, ετοιμαστείτε για πολλά επεισόδια στο σίριαλ Secure/Trusted Boot και πριν αγοράσετε νέο υπολογιστή, επιμείνετε ότι το θέλετε χωρίς λειτουργικό σύστημα. Ίσως έχει δίκιο τελικά το Ίδρυμα Ελεύθερου Λογισμικού που λέει ότι το Secure Boot μπορεί να γίνει τελικά Restricted (περιορισμένο) Boot...
Δείτε τον κώδικα του UEFI pre-bootlader του Linux Foundation εδώ

http://www.linuxinside.gr/content/8312/%CF%84%CE%BF-unsecute-boot-%CF%84%CF%89%CE%BD-windows-8-%CE%B8%CE%B1-%CE%BC%CE%B1%CF%82-%CF%81%CE%B7%CE%BC%CE%AC%CE%BE%CE%B5%CE%B9

Σχόλια