Tại sao vô hiệu hóa chương trình khởi động an toàn của nhóm bảo mật, được cài đặt chính sách khi cài đặt các mô-đun của bên thứ 3


46

Khi cài đặt 16.04 , tôi được yêu cầu tắt " Khởi động an toàn " nếu tôi muốn cài đặt các mô-đun / trình điều khiển của bên thứ 3 .

Tôi đã không tuân thủ.

Và khi tôi cài đặt thủ công trình điều khiển bên thứ 3 duy nhất tôi sử dụng ( bcmwl-kernel-source ), tôi đã được hỏi lại (trong quá trình cài đặt gói) để tắt "Khởi động an toàn".

Sử dụng bcmwl-kernel-source là hoàn toàn tốt với Secure Boot trong 15.10 . Điều này dường như không liên quan đến một lỗi với tôi.

Vì vậy, điều này có vẻ như Ubuntu từ chối ký nữa các trình điều khiển / mô-đun của bên thứ 3 để làm cho nó hoạt động (??) với "Khởi động an toàn". Hoặc dường như coi các mô-đun của bên thứ 3 là không an toàn và phá vỡ "Khởi động an toàn" do đó không thể vô hiệu hóa nó để làm cho nó rõ ràng ?? Tôi có đúng không


6
Vâng, IMO, đó là vì mọi người (giả mạo) cho rằng khởi động an toàn sẽ phá vỡ các mô-đun của bên thứ 3 khi đưa ra lời khuyên. Thông tin kỹ thuật về khởi động an toàn có tại đây - wiki.ubfox.com/SecurityTeam/SecureBoot . Cá nhân tôi không đồng ý với lời khuyên có vẻ phổ biến để loại bỏ khởi động an toàn, hoạt động tốt trên phần cứng của tôi với bật khởi động an toàn. IMO để bật khởi động an toàn trừ khi bạn gặp vấn đề với nó, không có lý do gì để vô hiệu hóa các tính năng bảo mật.
Panther

8
Tôi đã không nhìn sâu vào vấn đề này, nhưng theo tôi hiểu, 16.04 đang chuyển sang thực thi Secure Boot chặt chẽ hơn 15.10 và các phiên bản trước đó được sử dụng. Cụ thể, trong 15.10 trở về trước, một khi Shim khởi chạy GRUB, GRUB sẽ khởi chạy bất kỳ hạt nhân Linux nào ; bảo vệ Khởi động an toàn kết thúc với GRUB. Tôi hiểu rằng với 16.04, việc thực thi chính sách Secure Boot mở rộng đến kernel, vì vậy GRUB của Ubuntu sẽ không còn khởi chạy các kernel không dấu. Nếu nó vượt quá điều đó, thì các mô-đun hạt nhân không dấu cũng sẽ bị ảnh hưởng, khi chúng không có trước đó. Mặc dù vậy, một lần nữa, tôi đã không nghiên cứu sâu về vấn đề này.
Rod Smith


1
Với việc mọi người làm rối tung hệ thống của họ trong nỗ lực cài đặt các mô-đun của bên thứ ba, tôi sẽ tự hỏi liệu tính năng này sẽ không gây hại nhiều hơn là tốt.
Daniel

Có cách nào để kích hoạt lại nó sau khi đã tắt nó không?
shaunakde

Câu trả lời:


38

Đây không phải là một lỗi, nó là một tính năng.

Như Anthony Wong nói, khi bạn cài đặt gói DKMS, bạn đang tự biên dịch gói, do đó, Canonical không thể ký mô-đun cho bạn.

Tuy nhiên, bạn chắc chắn có thể sử dụng Secure Boot, tuy nhiên đây chính xác là trường hợp sử dụng khi Secure Boot đang cố bảo vệ bạn khỏi chính bạn vì nó không thể biết bạn có tin tưởng một mô-đun hay không.

Theo mặc định , có một Khóa nền tảng (PK) trên máy UEFI của bạn, đây là Cơ quan cấp chứng chỉ đáng tin cậy cuối cùng để tải mã trong bộ xử lý của bạn.

GRUB, hoặc shim hoặc các cơ chế khởi động khác có thể được ký bằng kỹ thuật số bởi KEK được CA gốc (PK) tin cậy và do đó, máy tính của bạn có thể, mà không cần bất kỳ cấu hình nào, phần mềm khởi động như Ubuntu Live USB / DVD.

Trên Ubuntu 16.04, kernel được xây dựng với CONFIG_MODULE_SIG_FORCE = 1, có nghĩa là kernel sẽ thực thi các mô-đun được ký bởi một khóa đáng tin cậy trong nền tảng. Hãy xem xét rằng nền tảng UEFI theo mặc định có chứa PK mà bạn không có bất kỳ quyền kiểm soát nào và do đó bạn không thể ký các tệp nhị phân bằng một khóa được nhận ra bởi chính máy của bạn.

Một số người bash và giận dữ chống lại điều đó, nhưng thực sự không có cách nào tốt hơn (từ quan điểm bảo mật) hơn là chính bạn là người đăng ký khóa mới mà bạn muốn.

Nếu hệ thống khởi động của bạn sử dụng shim, bạn có thể sử dụng thứ gọi là cơ sở dữ liệu Khóa của Chủ sở hữu máy và đăng ký khóa của bạn làm MOK (Bạn có thể làm điều đó với mokutil). Nếu bạn không, bạn cũng có thể đăng ký khóa của mình vào cơ sở dữ liệu UEFI làm khóa ký.

Sau khi bạn đăng ký khóa, bạn có thể ký gói do DKMS xây dựng với MOK của bạn (cần có tập lệnh perl tại /usr/src/kernels/$(uname -r)/scripts/sign-file) và sau khi được ký, bạn có thể tải nó vào kernel .

Cấp, ai đó nên thực hiện nhiều hướng dẫn trực quan hơn về điều này, và thậm chí có thể tạo một trình hướng dẫn hoặc tiêu chuẩn DKMS tốt hơn để cho phép các khóa được xem xét, nhưng đây là những gì chúng ta có cho đến bây giờ.

Bạn có thể tham khảo lời giải thích này về cách ký các mô-đun hạt nhân của riêng bạn: https://askubfox.com/a/768310/12049


1
Tôi đã vô hiệu hóa nó và bây giờ tôi nhận được một "thông báo khởi động trong chế độ không an toàn" khó chịu "Có cách nào để hoàn tác việc này không? Tôi dường như không thể giải thích vấn đề trên các diễn đàn ở đây. @ssice - Tôi đang sử dụng UBUNTU 14.04 vì vậy tôi không nghĩ rằng điều này thậm chí có liên quan đến tôi. [
shaunakde

20

Nói tóm lại, đây không phải là một lỗi mà là một thay đổi mới được giới thiệu vào ngày 16.04.

Bởi vì những gì bạn đang cài đặt là một gói dkms. Các mô-đun DKMS được biên dịch trên máy của chính bạn và vì vậy Canonical không thể ký mô-đun cho bạn. Nếu Canonical không thể ký tên, không có cách nào để xác minh kỹ thuật số. Nếu bạn đã bật khởi động an toàn, điều đó có nghĩa là mô-đun của bạn không thể được sử dụng và để sử dụng nó, bạn sẽ phải tắt khởi động an toàn, đó là lý do tại sao bạn được hỏi bởi câu hỏi.

Vì sao nó chỉ xảy ra vào 16.04 nhưng không phải trong các phiên bản trước, Rod Smith đã đưa ra một câu trả lời hay. Trong Ubuntu 16.04, Ubuntu bắt đầu thực thi khởi động an toàn đến cấp kernel. Trước ngày 16.04, Ubuntu không thực sự ép buộc bạn sử dụng các mô-đun hạt nhân đã ký và các mô-đun hạt nhân đã ký, thậm chí bạn đã bật khởi động an toàn. Nhưng đây không còn là trường hợp trong 16.04.

Đây là lỗi liên quan: https://bugs.launchpad.net/ubfox/+source/grub2/+orms/1401532

Đây là kế hoạch chi tiết có liên quan: https://blueprints.launchpad.net/ubfox/+spec/foundations-x-installing-unocate-secureboot


Tôi vẫn có thể tải mô-đun wl với 16.04 beta2 và sau khi cập nhật. Nhưng bây giờ với bản phát hành tôi đã gặp lỗi "modprobe: ERROR: không thể chèn 'wl': Khóa bắt buộc không khả dụng"
solsTiCe

Bạn có thể thử chạy không: sudo apt cài đặt mokutil; sudo mokutil - xác nhận hợp lệ
Anthony Wong


1

Câu trả lời được chấp nhận là rất đầy đủ, nhưng tôi muốn thêm phần thông tin đơn giản này, được lấy từ đây:

https://askubfox.com/a/843678/664391

Về cơ bản khởi động an toàn có thể ngăn bạn tải một số trình điều khiển bạn đã cài đặt có thể khá bực bội. Tôi đã tự mình trải qua điều này: trình điều khiển được cài đặt chính xác, mọi thứ dường như rất tốt để đi, nhưng nó không hoạt động. Mất một thời gian tôi mới thấy nó khởi động an toàn , ngăn hệ điều hành tải nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.