Saya kebetulan menerjemahkan artikel yang dia tulis ini James Bottomley, penasihat teknis dari Linux Foundation, yang mulai menyusun pra-bootloader sehingga Anda dapat mem-boot Linux.
Seperti yang saya jelaskan di posting saya sebelumnya, kami memiliki kode untuk pra-bootloader Linux Foundation. Namun, ada a menunda sementara kami memiliki akses ke sistem penandatanganan Microsoft.
Hal pertama yang dilakukan adalah bayar $ 99 ke Verisign (sekarang Symantec) dan memiliki kunci yang diverifikasi oleh Verisign. Kami melakukannya untuk Linux Foundation, dan yang ingin mereka lakukan hanyalah menelepon kantor pusat untuk memverifikasi. Kunci kembali dalam URL yang diinstal di browser Anda, tetapi alat SSL Linux standar dapat digunakan untuk mengekstraknya dan membuat sertifikat dan kunci PEM biasa. Ini tidak ada hubungannya dengan penandatanganan UEFI, tetapi digunakan untuk memvalidasi sistem sysdev Microsoft bahwa Anda adalah yang Anda katakan. Sebelum Anda dapat membuat akun sysdev, Anda harus mengujinya menandatangani executable yang mereka berikan dan mengunggahnya. Mereka membuat persyaratan ketat agar Anda menandatanganinya di platform Windows tertentu, tetapi tandatangani setidaknya itu berfungsi dan bingo akun kami dibuat.
Setelah akun dibuat, Anda masih tidak dapat mengunggah biner UEFI untuk ditandatangani tanpa terlebih dahulu menandatangani kontrak kertas. Perjanjian tersebut sangat berat, termasuk banyak lisensi yang dikecualikan (termasuk semua GPL untuk driver, tetapi tidak untuk bootloader). Bagian yang paling berat adalah bahwa kesepakatan tersebut tampaknya telah tercapai di luar objek UEFI yang Anda tanda tangani. Pengacara Linux Foundation menyimpulkan bahwa sebagian besar tidak berbahaya bagi LF karena kami tidak menjual produk, tetapi dapat menjijikkan bagi perusahaan lain. Menurut Matthew Garrett, Microsoft bersedia menegosiasikan kesepakatan khusus dengan distribusi untuk mengurangi beberapa masalah tersebut.
Begitu kesepakatan ditandatangani, real kesenangan teknis. Anda tidak bisa begitu saja mengunggah biner UEFI dan menandatanganinya. Pertama, Anda harus bungkus dalam file .cab. Untungnya, ada proyek open source yang bisa membuat file kabinet bernama lcab. Maka Anda harus melakukannya tanda tangani file .cab dengan kunci Verisign. Sekali lagi, ada proyek open source lain yang dapat melakukannya: osslsigncode. Bagi siapa saja yang membutuhkan alat tersebut, mereka tersedia di repositori UEFI OpenSuse Build Service saya. Masalah terakhir adalah mengunggah file membutuhkan cahaya perak. Sayangnya, cahaya bulan tampaknya tidak berfungsi dan bahkan dengan pratinjau versi 4, kotak unggah menjadi kosong, jadi saatnya menggunakan windows 7 di bawah kvm (mesin virtual berbasis kernel). Ketika Anda sampai ke bagian itu, Anda juga harus menyatakan bahwa biner "akan ditandatangani, tidak boleh dilisensikan di bawah GPLv3 atau lisensi sumber terbuka serupa". Saya berasumsi ini karena takut akan pengungkapan kunci tetapi tidak jelas sama sekali (sama dengan "lisensi sumber terbuka serupa").
Setelah unggahan selesai, file lemari berhenti melalui tujuh tahap. Sayangnya, tes pendakian pertama tetap ada terkunci di tahap 6 (tanda tangan file). Setelah 6 hari saya mengirim email dukungan ke Microsoft menanyakan apa yang terjadi. Jawabannya: “Kode kesalahan yang dilemparkan oleh proses penandatanganan adalah itu file Anda bukan aplikasi Win32 yang valid. Apakah ini aplikasi Win32 yang valid? ”. Jawaban: jelas tidak, ini adalah biner UEFI 64 bit yang valid. Tidak ada lagi jawaban...
Saya mencoba lagi. Kali ini saya menerima email unduhan untuk file yang ditandatangani dan papan mengatakan itu gagal ditandatangani. Saya mengunduhnya dan memverifikasi. Biner bekerja pada platform secureboot dan ditandatangani dengan kunci
subjek = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
penerbit = / C = AS / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011Saya bertanya kepada dukungan mengapa proses tersebut menunjukkan kegagalan tetapi saya memiliki unduhan yang valid dan, setelah beberapa email, mereka menjawab "jangan gunakan file yang salah ditandatangani. Aku akan kembali padamu. " Saya masih tidak yakin apa masalahnya, tetapi jika Anda melihat Subjek kunci penandatanganan, tidak ada kunci yang ditunjukkan ke Linux Foundation, oleh karena itu saya menduga bahwa masalahnya adalah bahwa biner ditandatangani dengan kunci Microsoft generik, bukan kunci khusus (dan dapat dibatalkan) yang terkait dengan Linux Foundation.
Namun demikian, ini adalah statusnya: Kami akan terus menunggu Microsoft memberikan Linux Foundation pra-bootloader yang telah ditandatangani dan divalidasi. Ketika itu terjadi, itu akan diunggah ke situs Linux Foundation untuk digunakan semua orang.
sumber: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/
Tarik kesimpulan Anda, tetapi ini akan memakan waktu.