Mengapa menonaktifkan "Boot Aman" diberlakukan kebijakan saat memasang modul pihak ke-3

46

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 ?

titik balik matahari
sumber
6
Ya, IMO, itu karena orang (secara salah) menganggap boot aman akan merusak modul pihak ke-3 ketika memberikan saran. Informasi teknis tentang boot aman ada di sini - wiki.ubuntu.com/SecurityTeam/SecureBoot . Secara pribadi saya tidak setuju dengan saran yang ada di mana-mana untuk mematikan boot aman, bekerja dengan baik pada perangkat keras saya dengan boot aman diaktifkan. IMO membiarkan boot aman diaktifkan kecuali Anda memiliki masalah dengannya, tidak ada alasan untuk menonaktifkan fitur keamanan secara membabi buta.
Panther
8
Saya belum melihat ini secara mendalam, tetapi seperti yang saya pahami, 16,04 bergerak ke penerapan Boot Aman yang lebih ketat dari 15.10 dan versi yang lebih lama digunakan. Khususnya, pada 15.10 dan sebelumnya, begitu Shim meluncurkan GRUB, GRUB akan meluncurkan kernel Linux apa pun ; perlindungan Boot Aman diakhiri dengan GRUB. Pemahaman saya adalah bahwa dengan 16.04, penegakan kebijakan Boot Aman meluas ke kernel, sehingga GRUB Ubuntu tidak akan lagi meluncurkan kernel yang tidak ditandatangani. Jika melampaui itu, maka modul kernel yang tidak ditandatangani juga akan terpengaruh, padahal sebelumnya tidak. Namun, sekali lagi, saya belum mempelajari ini secara mendalam.
Rod Smith
1
Beberapa latar belakang yang bagus: bugs.launchpad.net/ubuntu/+source/grub2/+bug/1401532
dpb
1
Dengan orang-orang yang mengacaukan sistem mereka dalam upaya memasang modul pihak ketiga, saya bertanya-tanya apakah fitur ini tidak akan lebih berbahaya daripada yang baik.
Daniel
Apakah ada cara untuk mengaktifkannya kembali setelah mematikannya?
shaunakde

Jawaban:

38

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

ssice
sumber
1
Saya menonaktifkannya, dan sekarang saya mendapatkan "boot dalam pesan mode tidak aman" yang mengganggu Apakah ada cara untuk membatalkan ini? Saya bahkan tidak bisa menjelaskan masalah ini di forum-forum di sini. @ssice - Saya menggunakan UBUNTU 14.04 jadi saya rasa ini tidak relevan untuk saya. [
shaunakde
20

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

Anthony Wong
sumber
Saya masih bisa memuat modul wl dengan 16,04 beta2 dan setelah pembaruan. Tapi sekarang dengan rilis saya mendapat kesalahan "modprobe: ERROR: tidak bisa memasukkan 'wl': Diperlukan kunci tidak tersedia"
solsTiCe
Bisakah Anda mencoba menjalankan: sudo apt install mokutil; sudo mokutil --disable-validation
Anthony Wong
1

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.

Dhiego Magalhães
sumber