Dampak UEFI & SecureBoot, seberapa parah?


18

Saya berencana untuk membeli laptop baru dalam beberapa hari mendatang, dan saya cukup terkesan dengan Ultrabooks baru yang keren. Sebagai pengguna lama GNU / Linux, tentu saja saya akan menginstal distro pilihan saya di atasnya.

Kemungkinannya adalah saya harus membeli komputer dengan Windows 8 yang sudah diinstal sebelumnya; dan kemungkinan itu akan menjalankan UEFI dan memiliki "boot aman", di mana kernel yang tidak ditandatangani tidak akan boot.

UEFI mungkin bagus, BIOS mungkin perlu pensiun. Saya kira yang berbulu adalah Boot Aman .

Sejauh yang saya bisa mengerti, beberapa sertifikat tepercaya akan tertanam ke dalam firmware dan seterusnya ke dalam kernel, dll . Jika sertifikat kernel dapat ditelusuri kembali ke salah satu firmware , kernel akan mem-boot, kalau tidak UEFI akan memberitahu saya dan menolak untuk mem-boot. Proses ini akan mencegah booting perangkat lunak yang tidak bersertifikat. Ini mungkin memiliki manfaat walaupun saya tidak bisa melihatnya.

Saya bertanya-tanya bagaimana sebuah kernel open source dapat memperoleh salah satu kunci ini dan masih gratis . Saya telah membaca utas di milis Linux di mana seorang karyawan Red Hat meminta Linus Torvalds untuk menarik set perubahan yang mengimplementasikan fasilitas untuk mengurai binari PE dan mengambil serangkaian tindakan kompleks untuk membiarkan boot kernel dalam mode Boot Aman (sejauh yang saya bisa mengerti ). Mereka ingin melakukan ini karena Microsoft hanya menandatangani binari PE. Mr. Torvalds dengan baik hati menolak perubahan ini, menyatakan bahwa kernel sudah menerapkan standar, yang bukan PE . RedHat sedang mencoba untuk mendorong kode ini ke kernel sehingga mereka tidak perlu membayarnya satu hari pun.

Lihat, ini hal yang rumit. Izinkan saya bertanya:

  • Apa manfaat yang akan saya peroleh dengan UEFI dan Boot Aman, sebagai pengguna rumahan?
  • Bagaimana penandatanganan ini dilakukan?
  • Siapa yang bisa mendapatkan tanda tangan / sertifikat? Apakah sudah dibayar? Bisakah ini menjadi publik? (Itu harus tersedia dalam kode sumber Linux, bukan?)
  • Apakah Microsoft satu-satunya otoritas untuk memberikan tanda tangan? Bukankah seharusnya ada yayasan independen untuk menyediakannya?
  • Bagaimana ini akan berdampak pada open source dan kernel gratis, pengembang hobi / akademis dll . mis. Akankah boot ini ( kode sektor boot yang sangat mendasar ):

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

Item berita di situs web ini adalah inspirasi dari pertanyaan ini. Kelompok pengguna Linux Spanyol bernama Hispalinux telah mengajukan keluhan terhadap Microsoft terkait hal ini dengan Komisi Europan.

Haruskah saya khawatir? Saya menolak untuk tidak menggunakan perangkat lunak berpemilik atau perangkat lunak yang ditandatangani oleh perusahaan yang dipercaya . Saya telah melakukannya sampai sekarang, dan saya ingin melanjutkannya. Terima kasih sebelumnya.


2
UEFIitu sendiri tidak banyak masalah, tetapi boot aman mungkin.
jordanm

3
Anda selalu dapat boot UEFI dengan boot aman dinonaktifkan ...
jasonwryan

1
Menurut artikel ini Microsoft mengharuskan vendor untuk mencegah SecureBoot dari dinonaktifkan pada perangkat berbasis ARM untuk memberikan lisensi untuk penggunaan logo yang kompatibel dengan Windows-8.

1
Saya belum melihat, tetapi jika Anda tidak dapat mem-flash-nya ke motherboard Anda dan segala sesuatunya masih berfungsi (setiap perangkat dalam kondisi yang tepat pada POST-OS handover), tidak banyak membantu. Dan kemudian ada firmware kartu grafis, untuk satu. Firmware hard disk? Papan ketik? ... Ini lebih mendekati diskusi daripada permintaan untuk klarifikasi. (Dan tentu saja, setidaknya kutipan itu hanya mengklaim bahwa UEFI adalah upaya komunitas; bukan implementasi khusus.)
CVn

1
Lihatlah dokumen Linux Foundation di UEFI dan boot aman.
vonbrand

Jawaban:


9

Proses ini akan mencegah booting perangkat lunak yang tidak bersertifikat. Ini mungkin memiliki manfaat walaupun saya tidak bisa melihatnya.

Anda memiliki mekanisme keamanan baru untuk mengontrol apa yang bisa dan apa yang tidak bisa boot dari perangkat keras Anda. Fitur keamanan. Anda tidak merasa membutuhkannya sampai terlambat. Tapi saya ngelantur.

Saya telah membaca utas di mailing list Linux di mana seorang karyawan Red Hat meminta Linus Torvalds untuk menarik set perubahan yang mengimplementasikan fasilitas untuk mengurai binari PE dan mengambil serangkaian tindakan kompleks untuk membiarkan boot kernel dalam mode Boot Aman (sejauh yang saya bisa mengerti ).

Driver, seperti firmware GPU Anda, harus masuk sejalan dengan Boot Aman, jika tidak maka bisa menjadi rootkit lain. Status quo adalah bahwa driver tersebut masuk dalam format PE. Kernel bisa boot tanpa itu, tetapi perangkat keras tidak akan berfungsi. Mem-parsing format PE di kernel hanyalah pilihan yang lebih sederhana secara teknis daripada meminta setiap vendor perangkat keras untuk menandatangani gumpalan mereka untuk setiap distro, atau menyiapkan kerangka userspace untuk melakukan ini. Linus memutuskan untuk tidak menghisap kontol Microsoft. Itu bukan argumen teknis.

Apa manfaat yang akan saya peroleh dengan UEFI dan Boot Aman, sebagai pengguna rumahan?

Fitur yang paling terlihat adalah UEFI fast boot. Saya mendapatkan beberapa desktop logo Windows 8 dan mereka boot dengan sangat cepat sehingga saya sering kehilangan pop up menu boot. Intel dan OEM sudah memiliki beberapa rekayasa dalam hal ini.

Jika Anda adalah tipe pengguna linux yang membenci kembung dan duplikasi kode dengan penuh gairah, Anda mungkin juga ingin mengelola multiboot pada tingkat firmware dan menyingkirkan bootloader sama sekali. UEFI menyediakan boot manager yang dapat Anda gunakan untuk boot langsung ke kernel atau memilih untuk mem-boot OS lain dengan menu firmware. Meskipun mungkin perlu bermain-main.

Juga, grafis yang lebih bagus saat boot dan dalam menu firmware. Keamanan yang lebih baik selama boot (Boot Aman). Fitur lain (IPv4 / 6 netboot, 2TB + perangkat boot, dll.) Sebagian besar ditujukan untuk pengguna perusahaan.

Bagaimanapun, seperti yang dikatakan Linus , BIOS / UEFI seharusnya "hanya memuat OS dan keluar dari sana", dan UEFI tentu saja muncul demikian untuk pengguna rumahan dengan booting cepat. Ini tentu melakukan lebih banyak hal daripada BIOS di bawah tenda, tetapi jika kita berbicara tentang pengguna rumahan, mereka tidak akan peduli tentang itu.

Bagaimana penandatanganan ini dilakukan?

Secara teoritis, biner dienkripsi dengan kunci pribadi untuk menghasilkan tanda tangan. Kemudian tanda tangan dapat diverifikasi dengan kunci publik untuk membuktikan biner ditandatangani oleh pemilik kunci pribadi, kemudian biner diverifikasi. Lihat lebih banyak di Wikipedia .

Secara teknis, hanya hash dari biner yang ditandatangani, dan tanda tangan tertanam dalam biner dengan format PE dan twiddling format tambahan.

Secara prosedural, kunci publik disimpan dalam firmware Anda oleh OEM Anda, dan itu dari Microsoft. Anda memiliki dua pilihan:

  1. Hasilkan pasangan kunci Anda sendiri dan kelola dengan aman, instal kunci publik Anda sendiri ke firmware , dan tandatangani biner dengan kunci pribadi Anda ( sbsign dari Ubuntu, atau pesign dari Fedora), atau
  2. Kirim biner Anda ke Microsoft dan biarkan mereka menandatanganinya.

Siapa yang bisa mendapatkan tanda tangan / sertifikat? Apakah sudah dibayar? Bisakah ini menjadi publik? (Itu harus tersedia dalam kode sumber Linux, bukan?)

Karena tanda tangan / sertifikat tertanam dalam binari, semua pengguna diharapkan untuk mendapatkannya. Siapa pun dapat mengatur CA mereka sendiri dan menghasilkan sertifikat untuk diri mereka sendiri. Tetapi jika Anda ingin Microsoft membuat sertifikat untuk Anda, Anda harus melalui Verisign untuk memverifikasi identitas Anda. Biaya prosesnya $ 99. Kunci publik ada di firmware. Kunci pribadi ada di brankas Microsoft. Sertifikat tersebut dalam biner yang ditandatangani. Tidak ada kode sumber yang terlibat.

Apakah Microsoft satu-satunya otoritas untuk memberikan tanda tangan? Bukankah seharusnya ada yayasan independen untuk menyediakannya?

Sisi teknis agak sepele, dibandingkan dengan proses mengelola PKI, memverifikasi identitas, berkoordinasi dengan setiap OEM dan vendor perangkat keras yang dikenal. Harganya mahal. Microsoft kebetulan memiliki infrastruktur (WHQL) dan pengalaman selama ini selama bertahun-tahun. Jadi mereka menawarkan untuk menandatangani binari. Siapa pun yayasan independen dapat melangkah untuk menawarkan hal yang sama, tetapi sejauh ini belum ada yang melakukannya.

Dari sesi UEFI di IDF 2013, saya melihat Canonical juga mulai memasukkan kunci mereka sendiri ke beberapa firmware tablet. Jadi Canonical dapat menandatangani biner mereka sendiri tanpa melalui Microsoft. Tetapi mereka tidak mungkin menandatangani biner untuk Anda karena mereka tidak tahu siapa Anda.

Bagaimana hal ini berdampak pada open source dan kernel gratis, pengembang hobi / akademis, dll.

Kernel bawaan Anda tidak akan bisa boot di bawah Boot Aman, karena tidak ditandatangani. Anda bisa mematikannya.

Model kepercayaan Boot Aman mengunci beberapa aspek kernel. Seperti Anda tidak dapat menghancurkan kernel Anda dengan menulis ke / dev / kmem bahkan jika Anda root sekarang. Anda tidak dapat hibernasi ke disk (sedang dikerjakan di bagian hulu) karena tidak ada cara untuk memastikan image kernel tidak diubah ke bootkit saat melanjutkan. Anda tidak dapat membuang inti ketika kernel panik, karena mekanisme kdump (kexec) dapat digunakan untuk mem-boot bootkit (juga sedang dikerjakan di bagian hulu). Ini kontroversial dan tidak diterima oleh Linus ke kernel mainline, tetapi beberapa distro (Fedora, RHEL, Ubuntu, openSUSE, SUSE) tetap dikirimkan dengan tambalan Boot Aman mereka sendiri.

Secara pribadi penandatanganan modul yang diperlukan untuk membangun kernel Boot Aman memerlukan biaya 10 menit sementara kompilasi yang sebenarnya hanya membutuhkan waktu 5 menit. Jika saya mematikan penandatanganan modul dan menghidupkan ccache, pembangunan kernel hanya membutuhkan satu menit.

UEFI adalah jalur boot yang sepenuhnya berbeda dari BIOS. Semua kode booting BIOS tidak akan dipanggil oleh firmware UEFI.

Kelompok pengguna Linux Spanyol bernama Hispalinux telah mengajukan keluhan terhadap Microsoft terkait hal ini dengan Komisi Europan.

Seperti yang dikatakan di atas, tidak ada seorang pun kecuali Microsoft yang telah melakukan pelayanan publik. Saat ini tidak ada bukti niat Microsoft untuk melakukan kejahatan dengan ini, tetapi juga tidak ada yang mencegah Microsoft menyalahgunakan monopolinya secara de facto dan melakukan perjalanan listrik. Jadi, sementara kelompok pengguna FSF dan Linux mungkin tidak terlihat cukup pragmatis dan belum benar-benar duduk untuk menyelesaikan masalah secara konstruktif, sangat penting orang menekan Microsoft dan memperingatkannya tentang dampaknya.

Haruskah saya khawatir? Saya menolak untuk tidak menggunakan perangkat lunak berpemilik atau perangkat lunak yang ditandatangani oleh perusahaan tepercaya. Saya telah melakukannya sampai sekarang, dan saya ingin melanjutkannya.

Alasan untuk menggunakan Boot Aman:

  • Ini menghilangkan vektor serangan keamanan nyata.
  • Ini adalah mekanisme teknis untuk memberi pengguna lebih banyak kebebasan untuk mengontrol perangkat keras mereka.
  • Pengguna Linux perlu memahami mekanisme Boot Aman dan bertindak proaktif sebelum Microsoft bertindak terlalu jauh terhadap monopoli kebijakan Boot Aman .

2
Terima kasih atas jawaban terperinci dan luar biasa ini! Sangat komprehensif. UEFI terdengar sangat keren, meskipun saya belum pernah menggunakan atau menulis kode untuk itu.

1
Jawaban yang sangat bagus. Hanya dua hal: 1) biasanya ada kemungkinan untuk memuat kunci Anda sendiri ke UEFI Anda - dengan cara ini Anda dapat mem-boot apa pun yang Anda tandatangani secara aman; 2) Boot aman hanya aman sampai-sampai orang mempercayai UEFI - jika seseorang menggunakan pembaruan firmware berbahaya, rantai kepercayaan akan terputus. Dan itu tidak terbayangkan .
peterph

Jadi, apakah distro GNU / Linux menggunakan FastBoot / QuickBoot? Saya tidak mengerti mengapa hal itu sulit dilakukan, tetapi saya juga tidak dapat menemukan info tentang hal itu - tetapi karena Anda menyebut ini sebagai fitur yang terlihat oleh pengguna akhir, saya rasa ini akhirnya digunakan?
Hi-Angel

9

Saya baru saja melewati ini dengan pembelian laptop baru-baru ini yang datang dengan Windows 8, dan boot aman UEFI. Setelah banyak waktu dan penelitian, inilah yang bisa saya jawab:

  • Tidak terdengar seperti Anda masuk ke dalam kategori 'pengguna rumah'.

Manfaat UEFI yang akan dilihat pengguna rata-rata adalah hal pertama yang mereka lihat di layar mereka adalah tampilan bootloader UEFI bermerek Microsoft / Vendor. Tidak ada yang menakutkan seperti "Tekan Del untuk Pengaturan, F11 untuk memilih perangkat boot", dll.

Ini kemudian akan bertransisi dengan baik ke layar tunggu kernel / boot loader Microsoft. Ini menghadirkan 'kekuatan untuk mendorong' pengalaman bertema Microsoft. Jika itu manfaat sebenarnya ada di mata yang melihatnya, kurasa. Saya cukup teringat bahwa saya tidak memiliki informasi normal yang saya harapkan untuk dilihat saat boot. Misalnya, semoga berhasil jika vendor Anda tidak menggunakan kunci standar untuk masuk ke pengaturan dasar UEFI / Bios.

Oh, ya, dan teorinya adalah ini akan menghentikan virus sektor boot, atau setidaknya membuat pembuat membuat / mencuri ID seseorang dan membayar $ 99 ke Verisign (rute RedHat Fedora. Google itu.)

Ah, dan itu masalahnya. Siapa pun dapat menandatangani kode dengan kunci apa saja. Masalahnya adalah bahwa mesin hanya akan menjalankan kode yang ditandatangani oleh kunci otoritas tepercaya. Setengah publik kunci dipasang di inti sistem UEFI di pabrik, dan digunakan untuk memverifikasi tanda tangan program UEFI (kode booting) yang ditandatangani dengan kunci pribadi.

Tebak siapa kunci publik yang dipasang di pabrik? Tebak siapa yang meminta Boot Aman diaktifkan secara default?

Setiap produsen sistem jelas akan meletakkan kunci Microsoft di sana. Mereka juga bisa memasukkan kunci Canonical (Ubuntu), kunci Red Hat, kunci Apple, dll. Lebih banyak tombol berarti lebih banyak poin untuk pelanggaran, dan jelas ada batas fisik untuk berapa banyak yang bisa mereka simpan.

Dan apa solusi untuk pengguna komputer pemberontak seperti Anda?

  • Semoga vendor sistem Anda memungkinkan Anda untuk mengakses konfigurasi boot sistem

  • Semoga mereka memungkinkan Anda untuk mematikan boot aman. Kode boot Windows masih akan berjalan tanpa boot aman.

  • Jika Anda benar-benar beruntung, vendor sistem akan memungkinkan Anda memasukkan kunci otoritas sertifikat Anda sendiri, dan Anda dapat menandatangani barang-barang Anda sendiri. Ini hanya benar-benar diperlukan jika Anda ingin bermain-main dengan Secure Boot.

Laptop MSI saya memungkinkan saya melakukan semua hal di atas.

Saya ingin melihat dunia di mana siapa pun dapat mengambil salinan gratis Distro Linux dan mengganti OS mereka. Inilah yang kami miliki sebelum Boot Aman. Kami juga memiliki banyak virus sektor boot. Harus menonaktifkan boot aman di konfigurasi sistem Anda mungkin merupakan rintangan yang cukup kecil untuk memverifikasi Anda memiliki kekuatan otak untuk menginstal OS, atau mengenal seseorang yang melakukannya.

Tidak memiliki kemampuan untuk mematikannya adalah hal yang buruk, dan itu terserah Produsen. Jangan salahkan Microsoft, kecuali jika mereka 'meyakinkan' pembuatnya untuk mencegah menonaktifkan boot aman.


Selamat datang dan terima kasih! Jawaban yang sangat keren, tetapi saya akan menunggu lebih lama sebelum menerima, karena saya ingin melihat pemikiran orang lain.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.