UEFI Secure Boot và Linux - câu chuyện chưa có hồi kết

    MP,  

    (GenK.vn) - Có lẽ chúng ta sẽ phải còn chờ tương đối lâu nữa trước khi các nhà nghiên cứu và hãng sản xuất phần cứng lẫn phần mềm thống nhất được một phương án chung nhất cho việc khởi động các hệ điều hành kém phổ biến trên các phần cứng mới sử dụng UEFI Secure Boot.

     
    Trước đây, chúng tôi đã giới thiệu với bạn đọc bài viết về các trở ngại mà người dùng sẽ có thể gặp phải khi muốn cài đặt các hệ điều hành chưa được Micrsoft xác nhận – chủ yếu là các distro Linux trôi nổi trên thị trường - trên các PC được bán kèm Windows và được bật sẵn UEFI Secure Boot. Mặc dù Microsoft đã sớm yêu cầu các nhà sản xuất phần cứng cung cấp tùy chọn disable Secure Boot cho người dùng, nhưng trên các thiết bị sử dụng cấu trúc vi xử lí ARM chạy Window RT, điều này vẫn là bất khả thi. Cho đến ngày hôm nay, việc thử nghiệm các hệ điều hành hay ho mà ta tìm được trên các cỗ máy gắn mác “đời mới” này vẫn chưa hoàn toàn “thoải mái” như trên các thiết bị cũ sử dụng BIOS. Hôm nay, chúng ta hãy thử điểm qua sơ lược 1 số cách để vượt qua rào cản này.

    Nhắc lại về UEFI Secure Boot

     

    Các máy tính bán kèm Windows 8 và Windows 8.1 ngày nay đều đã thay thế hoàn toàn thế hệ firmware BIOS cũ kĩ bằng UEFI. Ở trạng thái mặc định trên các thiết bị này, firmware UEFI đi kèm sẽ chỉ kích hoạt các boot loader mà firmware này cho là đã được “chứng thực” dựa trên các thông tin mà hãng sản xuất nhúng kèm trong nó. Trên các PC thế hệ trước, việc thiếu vắng chức năng “Secure Boot” (hay “Trusted Boot”) này khiến cho các rootkit cao cấp sau khi qua mặt OS có thể tự cài đặt bootloader giả mạo thay thế cho bootloader mà người dùng đang sử dụng. Một khi hệ điều hành – đa phần là Windows – được khởi động từ bootloader này, đồng nghĩa với việc rootkit có thể xâm nhập vào tầng sâu hơn của hệ thống. Về cơ bản, việc Secure Boot chỉ cho phép kích hoạt các thành phần phần mềm hệ thống đã được hãng sản xuất phần cứng chứng thực là nhằm tăng tính bảo mật cho thiết bị của người sử dụng. Thử liên tưởng tới một trình duyệt với một “while list” tích hợp sẵn chỉ cho phép người dùng thực hiện kết nối tới các trang web nằm trong danh sách đó – hiển nhiên ta sẽ không lo về các hiểm họa spyware, adware tràn lan trên Internet nhưng cũng đồng thời mất đi sự tự do ở một mức nào đó (chẳng hạn như khi muốn vào trang web do bạn bè tự lập). Ba yếu tố bảo mật – hiệu năng và tính linh hoạt/dễ sử dụng luôn đánh đổi cho nhau tùy theo tình huống. (tham khảo về Secure Boot trong bài viết trước đây)

     

    Chỉ trên các máy tính hoạt động trên nền tảng x86, hay chính xác hơn là các máy non-ARM, người dùng hiện đã được cung cấp quyền điều khiển Secure Boot. Chúng ta có thể chọn cách đơn giản là tắt nó đi, hoặc tự học cách đăng ký hệ điều hành mình muốn cài đặt để firmware có thể nhận biết được nó. Các công ty, tổ chức thậm chí có thể thay đổi để các máy của mình chỉ boot một số phiên bản Linux nhất định tùy theo các nhu cầu cụ thể của mình.

    Có thể thấy Microsoft dùng từ khá mạnh để chỉ rõ rằng chỉ các thiết bị non-ARM mới được có tùy chọn disable Secure Boot
    Có thể thấy Microsoft dùng từ khá mạnh để chỉ rõ rằng chỉ các thiết bị non-ARM mới được có tùy chọn disable Secure Boot

    Các phương án

    Tổng hợp lại, các phương án để cài đặt một hệ điều hành nhân Linux trên các máy có UEFI Secure Boot bao gồm

    • Chọn một phiên bản đã được hỗ trợ: Một vài Linux distro dành cho desktop phổ biến như Ubuntu (bắt đầu từ phiên bản 12.04.2 LTS và 12.10) hiện đã tự có khả năng khởi động bình thường ngay trên các thiết bị có Secure Boot đang hoạt động. Lí do là bootloader giai đoạn một EFI của Ubuntu đã được chứng thực bởi Microsoft. Tuy nhiên, các lập trình viên của hệ điều hành này cũng lưu ý rằng chứng thực này được liệt vào nhóm “khuyến nghị” chứ không chính thức nằm trong nhóm các yêu cầu bắt buộc đối với các PC muốn được gán mác “Windows 8 certified” – tức đạt chuẩn cho Windows 8. Điều này đồng nghĩa với việc lựa chọn tích hợp chứng thực này vào firmware hay không hoàn toàn nằm ở hãng sản xuất phần cứng; dẫn đến việc không có gì bảo đảm rằng các bản Linux distro này – hay cụ thể hơn là Ubuntu sẽ khởi động trơn tru trên tất cả các dòng máy sử dụng UEFI với Secure Boot đang hoạt động.
    Bootloader giai đoạn một của Ubuntu đã có dấu chứng thực từ Microsoft, dù rằng việc hệ thống có chấp nhận chứng thực này không còn tùy vào hãng sản xuất.
    Bootloader giai đoạn một của Ubuntu đã có dấu chứng thực từ Microsoft, dù rằng việc hệ thống có chấp nhận chứng thực này không còn tùy vào hãng sản xuất.
    • Disable Secure Boot: Mặc dù các chứng thực nói trên không được Microsoft liệt vào hàng “bắt buộc”, nhưng may mắn là tùy chọn tắt Secure Boot thì có. Đổi lại với sự linh hoạt mà ta có được khi tắt hẳn chức năng này, độ bảo mật của dàn máy sẽ quay trở lại tương đương với thời BIOS ngày trước. Nhưng dù sao thì đây cũng vẫn thực sự là một tùy chọn cần có khi mà ngay cả một số sản phẩm ngày trước của chính Microsoft – như Windows 7, vốn không được thiết kế với tầm nhìn về các chức năng dạng như Secure Boot – cũng sẽ cần có nó mới có thể hoạt động.
    Không có tùy chọn này thì bản thân Windows 7 cũng... ra rìa
    Không có tùy chọn này thì bản thân Windows 7 cũng... ra rìa
    • Tự thực hiện thêm chứng thực cho UEFI Firmware: Khá nhiều nhà phát triển Linux distro đã thực hiện công việc tự chứng thực cho bootloader của mình, và người dùng với đủ kinh nghiệm có thể thao tác để bổ sung các chứng thực này vào firmware hệ thống của mình. Tuy nhiên đây không phải là giải pháp có thể ứng dụng đại trà.
    • Live OS: quá trình boot từ các thiết bị gắn ngoài sẽ không chịu sự kiểm soát của Secure Boot, chúng ta sẽ nói kỹ hơn về điểm này trong phần cuối bài viết.

    Với tuổi đời cũng đã đạt mức tương đối của UEFI Secure Boot, hiện tại đa số các Linux distro phổ biến đều đã được cung cấp kèm theo hướng dẫn phương pháp cài đặt trên các phần cứng có kích hoạt tính năng này. Trường hợp mà phiên bản bạn muốn cài đặt không cung cấp thông tin gì liên quan đến việc này, lựa chọn đơn giản nhất sẽ là tắt Secure Boot.

    Cách tắt Secure Boot

    Các tùy chọn để điều khiển Secure Boot được đặt trong phần UEFI Firmware Settings. Ta có thể truy cập menu này từ mục advanced boot options của Windows 8. Có 3 cách để mở boot options:

    • Charmbar > Settings > PC Settings > General > Advanced Startup > Restart Now >
    • Charmbar > Settings > Power > giữ shift sau đó chọn Restart
    • Sử dụng lệnh shutdown.exe /r /o trong command line.
     
     

    Tiếp theo khi chọn Troubleshoot > Advanced options, đa số máy sẽ cung cấp cho người dùng tùy chọn truy cập menu UEFI Settings (một số trường hợp hiếm không có thì ta sẽ cần kiểm tra hướng dẫn kèm theo phần cứng – thường là mainboard). Từ bước này các thao tác sẽ khác nhau tùy theo firmware của hãng sản xuất phần cứng, nhưng đa số trường hợp tùy chọn tắt Secure Boot sẽ được đặt trong nhóm “Security”.

     

    Boot từ phần cứng gắn ngoài.

    Nhìn chung, các thiết bị gắn ngoài được cài sẵn các phiên bản Live OS sẽ không phải chịu sự quản lý của UEFI Secure Boot. Đây là con đường chung mà nhiều chuyên gia đã đề xuất để cho phép những người dùng có kinh nghiệm có thể thực hiện cài đặt chứng thực của mình trên mọi nền tảng phần cứng từ mọi hãng sản xuất. Nhìn từ góc độ của người dùng – ta có thêm lựa chọn sử dụng Linux Live OS hoặc sâu hơn là bổ sung khả năng cài đặt các bản Linux cần dùng cho máy của mình, nhưng đồng thời đây còn là cứu cánh cho các nhóm phát triển phần mềm nhỏ lẻ. Việc tự động hóa quá trình tìm kiếm/cài đặt các chứng thực lưu trữ trên các USB hay CD/DVD boot mà người dùng đưa vào được đánh giá là giải pháp tối ưu, nên được “chuẩn hóa” nhất - thay cho việc để hàng hà sa số các hãng sản xuất phần cứng và công ty/tổ chức phần mềm tự liên hệ xác thực lẫn nhau một cách hỗn loạn. Công bằng mà nói, việc để ngỏ cánh cửa này thực chất đã cắt giảm đôi chút tính bảo mật mà Secure Boot mang lại, bởi các USB hay CD/DVD này hoàn toàn có khả năng đã bị “nhiễm bệnh” từ xa – cũng như cho phép kẻ xấu toàn quyền phá hoại/thâm nhập các máy mà chúng có điều kiện tiếp cận trực tiếp. Tuy nhiên như đã nói ở trên, để đổi lấy sự linh hoạt ta không thể tránh khỏi đôi chút rủi ro.

     

    Hiện tại việc cài đặt các chứng thực vẫn khác nhau tương đối nhiều tùy theo bộ đôi UEFI firmware và Linux distro mà người ta muốn kết hợp. Cũng do sự thiếu chuẩn hóa nên các thao tác vẫn đòi hỏi nhiều kiến thức không phù hợp với người dùng bình dân. Dù vậy, một điểm sáng cần được nhắc tới là Microsoft đã giúp cho Boot từ phần cứng gắn ngoài trở nên tương đối dễ dàng so với trước kia, đặc biệt là so với các BIOS đời cũ. Nếu như trước đây, ta phải vội vàng nhấn một phím chức năng (thay đổi tùy theo hãng phần cứng) trong vài giây đầu khi máy tính khởi động để có được tùy chọn boot từ CD/DVD và USB – đôi lúc thậm chí còn phải thay đổi thứ tự thiết bị lưu trữ trong BIOS/UEFI – thì giờ đây tất cả những gì người dùng cần làm là vào boot options từ Windows 8 (theo 3 cách ở trên). Tùy chọn Use a device sẽ giúp ta dễ dàng sử dụng các phiên bản Linux Live OS hay bất kỳ portable OS nào chứa sẵn trên thiết bị gắn ngoài của mình.

     

    Tham khảo: Makeuseof, Thehackernews, tổng hợp

    Tin cùng chuyên mục
    Xem theo ngày

    NỔI BẬT TRANG CHỦ