Ketika menginstal 16.04 , saya diminta untuk mematikan " Secure Boot " jika saya ingin menginstal modul / driver pihak ke-3 .
Saya tidak menurut.
Dan ketika saya menginstal secara manual satu-satunya driver pihak ke-3 yang saya gunakan ( bcmwl-kernel-source ), saya ditanya lagi (saat instalasi paket) untuk mematikan "Secure Boot".
Menggunakan bcmwl-kernel-source sangat baik dengan Boot Aman di 15.10 . Ini sepertinya tidak terkait dengan bug bagi saya.
Jadi ini terlihat seperti Ubuntu menolak untuk menandatangani lagi driver pihak ke-3 / modul untuk membuatnya bekerja (??) dengan "Boot Aman". Atau tampaknya menganggap modul pihak ke-3 sebagai tidak aman dan melanggar "Boot Aman" karenanya ingin menonaktifkannya untuk membuatnya jelas ?? Apakah saya benar ?
sumber
Jawaban:
Ini bukan bug, ini adalah fitur.
Seperti yang dikatakan Anthony Wong, ketika Anda menginstal paket DKMS Anda mengkompilasi paket itu sendiri, Canonical tidak dapat menandatangani modul untuk Anda.
Namun, Anda pasti dapat menggunakan Boot Aman, namun ini adalah kasus penggunaan di mana Boot Aman berusaha melindungi Anda dari diri Anda sendiri karena tidak dapat mengetahui apakah Anda mempercayai modul atau tidak.
Secara default , ada Kunci Platform (PK) pada mesin UEFI Anda, yang merupakan Otoritas Sertifikat yang paling tepercaya untuk memuat kode dalam prosesor Anda.
GRUB, atau shim, atau mekanisme boot lainnya dapat ditandatangani secara digital oleh KEK yang dipercaya oleh root CA (PK), dan dengan demikian komputer Anda dapat, tanpa konfigurasi apa pun, perangkat lunak boot seperti Ubuntu Live USB / DVD.
Pada Ubuntu 16.04 kernel dibangun dengan CONFIG_MODULE_SIG_FORCE = 1, yang berarti bahwa kernel akan memberlakukan modul yang akan ditandatangani oleh kunci tepercaya di platform. Mempertimbangkan bahwa platform UEFI secara default berisi PK yang tidak Anda kendalikan, dan karenanya Anda tidak dapat menandatangani biner dengan kunci yang dikenali oleh mesin Anda sendiri.
Beberapa orang bash dan berteriak-teriak menentang hal itu, tetapi sebenarnya tidak ada cara yang lebih baik (dari sudut pandang keamanan) daripada menjadi diri sendiri yang mendaftarkan kunci baru yang Anda inginkan.
Jika sistem boot Anda menggunakan shim, Anda dapat menggunakan sesuatu yang disebut basis data Key Pemilik Mesin, dan mendaftarkan kunci Anda sebagai MOK (Anda dapat melakukannya dengan mokutil). Jika tidak, Anda juga dapat mendaftarkan kunci Anda di basis data UEFI sebagai kunci penandatanganan.
Setelah Anda mendaftarkan kunci Anda, Anda dapat menandatangani paket DKMS-built Anda dengan MOK Anda (harus ada skrip perl di
/usr/src/kernels/$(uname -r)/scripts/sign-file
), dan setelah ditandatangani, Anda dapat memuatnya ke dalam kernel .Memang, seseorang harus membuat lebih banyak instruksi visual tentang ini, dan mungkin bahkan membuat penyihir atau standar DKMS yang lebih baik untuk memungkinkan kunci dipertimbangkan, tetapi inilah yang kita miliki sampai sekarang.
Anda dapat merujuk pada penjelasan ini tentang cara menandatangani modul kernel Anda sendiri: https://askubuntu.com/a/768310/12049
sumber
Singkatnya, ini bukan bug tetapi perubahan baru yang diperkenalkan pada 16.04.
Karena apa yang Anda instal adalah paket dkms. Modul DKMS dikompilasi di mesin Anda sendiri dan Canonical tidak dapat menandatangani modul untuk Anda. Jika Canonical tidak dapat menandatanganinya, tidak ada cara untuk memverifikasi secara digital. Jika Anda telah mengaktifkan boot aman, itu berarti modul Anda tidak dapat digunakan, dan untuk menggunakannya, Anda harus mematikan boot aman, itu sebabnya Anda ditanyakan oleh pertanyaan itu.
Karena itu hanya terjadi pada 16,04 tetapi tidak pada rilis sebelumnya, Rod Smith telah memberikan jawaban yang baik. Di Ubuntu 16.04, Ubuntu mulai menerapkan boot aman ke tingkat kernel. Sebelum 16.04, Ubuntu tidak benar-benar memaksa Anda untuk menggunakan kernel yang ditandatangani dan modul kernel yang ditandatangani, bahkan Anda sudah mengaktifkan boot aman. Tetapi ini tidak lagi berlaku di 16.04.
Ini adalah bug terkait: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532
Ini adalah cetak biru terkait: https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-installing-unsigned-secureboot
sumber
Cara lain untuk melakukannya adalah dengan membuat kunci Anda sendiri, masukkan bagian publik ke dalam database MOK dan tandatangani modul yang Anda kompilasi dengan bagian pribadi. Lihat di sini untuk info terperinci: Tidak dapat memuat 'vboxdrv' setelah memutakhirkan ke Ubuntu 16.04 (dan saya ingin menjaga boot aman)
sumber
Jawaban yang diterima sangat lengkap, tetapi saya ingin menambahkan informasi sederhana ini, diambil dari sini:
https://askubuntu.com/a/843678/664391
Pada dasarnya boot yang aman dapat mencegah Anda memuat beberapa driver yang Anda instal yang dapat membuat frustasi. Saya telah melalui ini sendiri: driver diinstal dengan benar, semuanya tampak baik untuk pergi, tetapi tidak berfungsi. Butuh beberapa waktu untuk menemukan itu adalah boot aman mencegah OS memuatnya.
sumber