Tác động của UEFI & SecureBoot, mức độ nghiêm trọng như thế nào?


18

Tôi dự định mua một chiếc máy tính xách tay mới trong những ngày tới và tôi khá ấn tượng với những chiếc Ultrabook mới, thú vị. Là một người dùng GNU / Linux lâu năm, tất nhiên tôi sẽ cài đặt một bản phân phối mà tôi chọn trên đó.

Có thể tôi sẽ phải mua một máy tính cài sẵn Windows 8; và rất có thể nó sẽ chạy UEFI và có "khởi động an toàn", trên đó các hạt nhân không được ký sẽ không khởi động.

UEFI có lẽ là tốt, BIOS có thể cần phải nghỉ hưu. Tôi đoán thứ có lông là Secure Boot .

Theo như tôi có thể hiểu được, một số đáng tin cậy chứng chỉ sẽ được nhúng vào firmware và do đó vào hạt nhân , vv . Nếu chứng chỉ của kernel có thể được truy ngược lại thành một trong các firmware , kernel sẽ khởi động, UEFI khác sẽ cho tôi biết và từ chối khởi động. Quá trình này sẽ ngăn phần mềm không chắc chắn khởi động. Điều này có thể có lợi ích mặc dù tôi không thể nhìn thấy chúng.

Tôi tự hỏi làm thế nào một hạt nhân nguồn mở có thể có được một trong các khóa này mà vẫn miễn phí . Tôi đã đọc một chủ đề trong danh sách gửi thư của Linux , trong đó một nhân viên của Red hat yêu cầu Linus Torvalds kéo một bộ thay đổi để thực hiện phân tích nhị phân PE và thực hiện một loạt các hành động phức tạp để cho kernel khởi động ở chế độ Khởi động an toàn (theo như tôi có thể hiểu ). Họ muốn làm điều này bởi vì Microsoft chỉ ký các tệp nhị phân PE. Ông Torvalds đã vui lòng từ chối changeset này, trong đó nêu hạt nhân đã implemets tiêu chuẩn, mà không phải là PE . RedHat đang cố gắng đẩy mã này vào kernel để họ sẽ không phải rẽ nhánh một ngày nào đó.

Hãy xem, đây là một điều phức tạp. Hãy để tôi hỏi câu hỏi của tôi:

  • Tôi sẽ nhận được những lợi ích gì với UEFI và Secure Boot, với tư cách là người dùng gia đình?
  • Việc ký kết này được thực hiện như thế nào?
  • Ai có thể có được chữ ký / chứng chỉ? Được trả tiền chưa? Nó có thể được công khai? (Nó có sẵn trong mã nguồn của Linux không?)
  • Microsoft có phải là cơ quan duy nhất cung cấp chữ ký không? Không nên có một nền tảng độc lập để cung cấp cho họ?
  • Làm thế nào tác động này mã nguồn mở và hạt nhân, phát triển hobbyist / kernel học miễn phí sẽ , vv . ví dụ: Liệu khởi động này ( mã ngành khởi động rất cơ bản ):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

Một mục tin tức tại trang web này là câu hỏi của câu hỏi này. Một nhóm người dùng Linux Tây Ban Nha có tên là Hispalinux đã đệ đơn khiếu nại Microsoft về vấn đề này đối với Ủy ban Châu Âu.

Tôi có nên quan tâm không? Tôi từ chối sử dụng cả phần mềm độc quyền cũng như phần mềm được ký bởi các công ty tin cậy . Tôi đã làm như vậy cho đến bây giờ, và tôi muốn tiếp tục như vậy. Cảm ơn trước.


2
UEFIbản thân nó không phải là vấn đề lớn, nhưng có thể khởi động an toàn.
jordanm

3
Bạn luôn có thể khởi động UEFI khi tắt khởi động an toàn ...
jasonwryan 26/03/13

1
Theo bài viết này, Microsoft yêu cầu các nhà cung cấp ngăn không cho SecureBoot ngừng hoạt động trong các thiết bị dựa trên ARM để cung cấp giấy phép sử dụng logo Tương thích Windows-8.

1
Tôi đã không nhìn, nhưng nếu bạn không thể flash nó vào bo mạch chủ của mình và mọi thứ vẫn hoạt động (mỗi thiết bị ở trạng thái thích hợp khi chuyển giao POST-OS), điều đó không giúp ích nhiều. Và sau đó là phần sụn card đồ họa. Firmware đĩa cứng? Bàn phím? ... Tuy nhiên, điều này đang tiến gần đến thảo luận hơn là yêu cầu làm rõ. (Và tất nhiên, ít nhất là trích đoạn mà chỉ tuyên bố rằng UEFI là một nỗ lực của cộng đồng; không thực hiện cụ thể.)
một CVN

1
Hãy xem tài liệu của Linux Foundation về UEFI và khởi động an toàn.
vonbrand

Câu trả lời:


9

Quá trình này sẽ ngăn phần mềm không chắc chắn khởi động. Điều này có thể có lợi ích mặc dù tôi không thể nhìn thấy chúng.

Bạn có một cơ chế bảo mật mới để kiểm soát những gì có thể và những gì không thể khởi động từ phần cứng của bạn. Một tính năng bảo mật. Bạn không cảm thấy như bạn cần nó cho đến khi quá muộn. Nhưng tôi lạc đề.

Tôi đã đọc một chủ đề trong danh sách gửi thư của Linux, trong đó một nhân viên của Red hat yêu cầu Linus Torvalds kéo một bộ thay đổi để thực hiện phân tích nhị phân PE và thực hiện một loạt các hành động phức tạp để cho kernel khởi động ở chế độ Khởi động an toàn (theo như tôi có thể hiểu ).

Các trình điều khiển, như phần sụn GPU của bạn, phải được đăng nhập phù hợp với Secure Boot, nếu không nó có thể là một rootkit khác. Hiện trạng là những trình điều khiển được ký ở định dạng PE. Kernel có thể khởi động mà không cần những cái đó, nhưng phần cứng sẽ không hoạt động. Phân tích định dạng PE trong kernel chỉ là một lựa chọn đơn giản về mặt kỹ thuật cho việc này hơn là yêu cầu mọi nhà cung cấp phần cứng ký các đốm màu của họ cho mỗi bản phân phối hoặc thiết lập khung không gian người dùng để thực hiện việc này. Linus quyết định không hút tinh ranh của Microsoft. Đó không phải là một cuộc tranh luận kỹ thuật.

Tôi sẽ nhận được những lợi ích gì với UEFI và Secure Boot, với tư cách là người dùng gia đình?

Tính năng dễ thấy nhất là khởi động nhanh UEFI. Tôi đã chạm tay vào một số máy tính để bàn logo Windows 8 và chúng khởi động nhanh đến mức tôi thường bỏ lỡ để bật menu khởi động. Intel và OEM đã có một số kỹ thuật về việc này.

Nếu bạn là loại người dùng linux ghét sự cồng kềnhsao chép mã với niềm đam mê, bạn cũng có thể muốn quản lý multiboot ở cấp độ chương trình cơ sở và loại bỏ hoàn toàn bộ tải khởi động. UEFI cung cấp trình quản lý khởi động mà bạn có thể khởi động trực tiếp vào kernel hoặc chọn khởi động hệ điều hành khác 'bằng menu phần sụn. Mặc dù nó có thể cần một số mày mò.

Ngoài ra, đồ họa fancier trong thời gian khởi động và trong menu phần sụn. Bảo mật tốt hơn trong khi khởi động (Secure Boot). Các tính năng khác (IPv4 / 6 netboot, thiết bị khởi động 2TB +, v.v.) chủ yếu dành cho người dùng doanh nghiệp.

Dù sao, như Linus đã nói , BIOS / UEFI được cho là "chỉ cần tải HĐH và thoát khỏi đó", và UEFI chắc chắn xuất hiện như vậy đối với người dùng gia đình có khả năng khởi động nhanh. Nó chắc chắn làm được nhiều thứ hơn BIOS dưới mui xe nhưng nếu chúng ta nói về người dùng gia đình, họ sẽ không quan tâm đến điều đó.

Việc ký kết này được thực hiện như thế nào?

Về mặt lý thuyết, một nhị phân được mã hóa bằng khóa riêng để tạo chữ ký. Sau đó, chữ ký có thể được xác minh bằng khóa chung để chứng minh nhị phân được ký bởi chủ sở hữu của khóa riêng, sau đó xác nhận nhị phân. Xem thêm trên Wikipedia .

Về mặt kỹ thuật, chỉ có băm của nhị phân được ký và chữ ký được nhúng trong nhị phân với định dạng PE và định dạng bổ sung.

Theo thủ tục, khóa chung được OEM lưu trữ trong phần sụn của bạn và từ Microsoft. Bạn có hai lựa chọn:

  1. Tạo cặp khóa của riêng bạn và quản lý chúng một cách an toàn, cài đặt khóa chung của riêng bạn vào chương trình cơ sở và ký tên nhị phân bằng khóa riêng của bạn ( sbsign từ Ubuntu hoặc pesign từ Fedora) hoặc
  2. Gửi nhị phân của bạn cho Microsoft và để họ ký tên.

Ai có thể có được chữ ký / chứng chỉ? Được trả tiền chưa? Nó có thể được công khai? (Nó có sẵn trong mã nguồn của Linux không?)

Vì chữ ký / chứng chỉ được nhúng trong nhị phân, tất cả người dùng dự kiến ​​sẽ có được chúng. Bất cứ ai cũng có thể thiết lập CA của riêng mình và tạo chứng chỉ cho chính họ. Nhưng nếu bạn muốn Microsoft tạo chứng chỉ cho bạn, bạn phải thông qua Verisign để xác minh danh tính của bạn. Quá trình này có giá 99 đô la. Khóa công khai nằm trong phần sụn. Khóa riêng là an toàn của Microsoft. Giấy chứng nhận là trong nhị phân đã ký. Không có mã nguồn liên quan.

Microsoft có phải là cơ quan duy nhất cung cấp chữ ký không? Không nên có một nền tảng độc lập để cung cấp cho họ?

Mặt kỹ thuật khá tầm thường, so với quy trình quản lý PKI, xác minh danh tính, phối hợp với mọi OEM và nhà cung cấp phần cứng đã biết. Chi phí này thân yêu. Microsoft tình cờ có cơ sở hạ tầng (WHQL) và kinh nghiệm cho việc này trong nhiều năm. Vì vậy, họ cung cấp để ký nhị phân. Bất cứ ai nền tảng độc lập đều có thể bước lên để cung cấp điều tương tự, nhưng không ai đã làm điều đó cho đến nay.

Từ một phiên UEFI tại IDF 2013, tôi thấy Canonical cũng đã bắt đầu đưa khóa riêng của họ vào một số phần mềm máy tính bảng. Vì vậy, Canonical có thể ký các tệp nhị phân của riêng họ mà không cần thông qua Microsoft. Nhưng họ không thể ký nhị phân cho bạn vì họ không biết bạn là ai.

Điều này sẽ tác động đến nguồn mở và hạt nhân miễn phí, nhà phát triển hạt nhân sở thích / học thuật, v.v.

Hạt nhân được xây dựng tùy chỉnh của bạn sẽ không khởi động trong Secure Boot, vì nó không được ký. Bạn có thể tắt nó đi mặc dù.

Mô hình tin cậy của Secure Boot khóa một số khía cạnh của kernel. Giống như bạn không thể phá hủy kernel của mình bằng cách viết vào / dev / kmem ngay cả khi bạn đã root. Bạn không thể ngủ đông vào đĩa (đang hoạt động ngược dòng) vì không có cách nào để đảm bảo hình ảnh kernel không bị thay đổi thành bootkit khi tiếp tục. Bạn không thể kết xuất lõi khi nhân của bạn hoảng loạn, bởi vì cơ chế của kdump (kexec) có thể được sử dụng để khởi động bộ khởi động (cũng đang hoạt động ngược dòng). Đây là những tranh cãi và không được Linus chấp nhận vào kernel chính, nhưng một số distro (Fedora, RHEL, Ubuntu, openSUSE, SUSE) vẫn có bản vá Secure Boot của riêng họ.

Cá nhân, việc ký mô-đun cần thiết để xây dựng kernel Secure Boot tốn 10 phút trong khi quá trình biên dịch thực tế chỉ mất 5 phút. Nếu tôi tắt ký mô-đun và bật ccache, việc xây dựng kernel chỉ mất một phút.

UEFI là một đường dẫn khởi động hoàn toàn khác với BIOS. Tất cả mã khởi động BIOS sẽ không được gọi bởi firmware UEFI.

Một nhóm người dùng Linux Tây Ban Nha có tên là Hispalinux đã đệ đơn khiếu nại Microsoft về vấn đề này đối với Ủy ban Châu Âu.

Như đã nói ở trên, không ai ngoại trừ Microsoft đã từng bước thực hiện dịch vụ công cộng. Hiện tại không có bằng chứng nào về ý định của Microsoft trong việc làm bất kỳ điều ác nào với việc này, nhưng cũng không có gì ngăn cản Microsoft lạm dụng sự độc quyền trên thực tế của mình và thực hiện một chuyến đi quyền lực. Vì vậy, trong khi các nhóm người dùng FSF và Linux có thể trông không thực tế và thực sự không ngồi xuống để giải quyết vấn đề một cách xây dựng, thì những người khá cần thiết gây áp lực lên Microsoft và cảnh báo về những hậu quả.

Tôi có nên quan tâm không? Tôi từ chối sử dụng cả phần mềm độc quyền cũng như phần mềm được ký bởi các công ty đáng tin cậy. Tôi đã làm như vậy cho đến bây giờ, và tôi muốn tiếp tục như vậy.

Những lý do để nắm lấy Khởi động an toàn:

  • Nó loại bỏ một vector tấn công an ninh thực sự.
  • Đây là một cơ chế kỹ thuật để giúp người dùng tự do hơn trong việc kiểm soát phần cứng của họ.
  • Người dùng Linux cần hiểu cơ chế Khởi động an toàn và chủ động hành động trước khi Microsoft đi quá xa về sự độc quyền của chính sách Khởi động an toàn .

2
Cảm ơn bạn cho câu trả lời chi tiết, tuyệt vời này! Rất toàn diện. UEFI nghe khá tuyệt, mặc dù tôi không sử dụng hay viết mã cho nó.

1
Câu trả lời rất tốt, thực sự. Chỉ có hai điều: 1) thường có khả năng tải khóa riêng của bạn vào UEFI - bằng cách này bạn có thể khởi động an toàn bất cứ thứ gì bạn tự ký; 2) Khởi động an toàn chỉ an toàn đến mức mà một người tin tưởng UEFI - nếu một người sử dụng bản cập nhật phần mềm độc hại, chuỗi tin cậy sẽ bị phá vỡ. Và đó là điều không thể tưởng tượng được .
peterph

Vì vậy, các bản phân phối GNU / Linux có sử dụng FastBoot / QuickBoot không? Tôi không thấy lý do tại sao nó khó thực hiện, nhưng tôi không thể tìm thấy thông tin về nó - nhưng vì bạn đề cập đây là tính năng hiển thị cho người dùng cuối, tôi đoán cuối cùng nó đã được sử dụng?
Hi-Angel

9

Tôi vừa trải qua điều này với một giao dịch mua máy tính xách tay gần đây đi kèm với Windows 8 và khởi động an toàn UEFI. Sau rất nhiều thời gian và nghiên cứu, đây là những gì tôi có thể trả lời:

  • Có vẻ như bạn không phù hợp với danh mục 'người dùng gia đình'.

Những lợi ích của UEFI mà người dùng trung bình sẽ nhận thấy là điều đầu tiên họ nhìn thấy trên màn hình của họ sẽ là màn hình bộ tải khởi động UEFI mang nhãn hiệu Microsoft / Vendor. Không có điều gì đáng sợ như "Nhấn Del để thiết lập, F11 để chọn thiết bị khởi động", v.v.

Sau đó, nó sẽ chuyển tiếp độc đáo vào màn hình chờ của bộ tải nhân / bộ tải khởi động của Microsoft. Điều này thể hiện một 'sức mạnh để nhắc nhở' kinh nghiệm theo chủ đề Microsoft. Nếu đó là một lợi ích thực tế là trong mắt của kẻ si tình tôi đoán. Tôi đã khá tích tắc rằng tôi không có thông tin bình thường mà tôi mong đợi để xem khi khởi động. Chẳng hạn, chúc may mắn nếu nhà cung cấp của bạn không sử dụng khóa tiêu chuẩn để vào thiết lập UEFI / Bios cơ bản.

Ồ, vâng, và lý thuyết là điều này sẽ ngăn chặn virus boot boot hoặc ít nhất là khiến người tạo tạo / đánh cắp ID của ai đó và trả 99 đô la cho Verisign (tuyến đường RedHat Fedora. Google nó.)

Ah, và có sự cọ xát. Bất cứ ai cũng có thể ký mã với bất kỳ khóa. Vấn đề là máy sẽ chỉ chạy mã được ký bởi khóa chính quyền đáng tin cậy. Nửa khóa công khai được cài đặt trong lõi UEFI của hệ thống tại nhà máy và được sử dụng để xác minh chữ ký của các chương trình UEFI (mã khởi động) được ký với khóa riêng.

Đoán xem khóa công khai của ai được cài đặt tại nhà máy? Đoán xem ai yêu cầu Secure Boot được bật theo mặc định?

Mọi nhà sản xuất hệ thống rõ ràng sẽ đưa chìa khóa của Microsoft vào đó. Họ cũng có thể đặt khóa Canonical (Ubuntu), khóa của Red Hat, khóa của Apple, v.v. Nhiều khóa hơn có nghĩa là nhiều điểm hơn cho các vi phạm và rõ ràng có giới hạn vật lý đối với số lượng chúng có thể lưu trữ.

Và giải pháp cho một người dùng máy tính nổi loạn như bạn là gì?

  • Hy vọng nhà cung cấp hệ thống của bạn cho phép bạn truy cập cấu hình khởi động hệ thống

  • Hy vọng họ cho phép bạn tắt khởi động an toàn. Mã khởi động Windows vẫn sẽ chạy mà không cần khởi động an toàn.

  • Nếu bạn thực sự may mắn, nhà cung cấp hệ thống sẽ cho phép bạn đặt các khóa ủy quyền chứng chỉ của riêng bạn và bạn có thể ký tên vào công cụ của riêng mình. Điều này chỉ thực sự cần thiết nếu bạn muốn chơi xung quanh với Secure Boot.

Máy tính xách tay MSI của tôi cho phép tôi làm tất cả những điều trên.

Tôi muốn thấy một thế giới nơi mọi người có thể lấy một bản sao miễn phí của Linux Distro và thay thế HĐH của họ. Đây là những gì chúng tôi đã có trước Secure Boot. Chúng tôi cũng có rất nhiều virus boot boot. Phải vô hiệu hóa khởi động an toàn trong cấu hình hệ thống của bạn có lẽ là một trở ngại đủ nhỏ để xác minh bạn có sức mạnh não bộ để cài đặt HĐH hay biết ai đó làm như vậy.

Không có khả năng tắt nó là điều xấu, và đó là tùy thuộc vào Nhà sản xuất. Đừng đổ lỗi cho Microsoft, trừ khi họ 'thuyết phục' nhà sản xuất để ngăn chặn việc vô hiệu hóa khởi động an toàn.


Chào mừng và cảm ơn! Câu trả lời rất tuyệt, nhưng tôi sẽ đợi thêm một chút nữa trước khi chấp nhận, vì tôi muốn thấy những suy nghĩ của người khác.
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.