Komuniti perisian tegar sumber terbuka telah menemui halangan besar dalam membangunkan penyelesaian BIOS alternatif untuk pemproses pelayan Turin terkini AMD . Walaupun AMD menerbitkan apa yang sepatutnya menjadi set lengkap blob perisian tegar Platform Security Processor ( PSP ) yang diperlukan untuk permulaan sistem, komponen awam ini tidak mencukupi untuk benar-benar boot perkakasan tersebut.
Blob Perisian Tegar Awam Mencipta Sistem Yang Tidak Boleh Boot
Jurutera yang bekerja untuk memindahkan coreboot ke sistem Gigabyte MZ33-AR1 Turin mendapati bahawa blob PSP yang tersedia secara awam dari AMD tidak berfungsi. Apabila cuba mencipta imej yang boleh boot menggunakan hanya komponen rasmi ini, sistem gagal untuk memulakan sepenuhnya. Punca utama nampaknya berkaitan dengan pengesahan kunci kriptografi dalam struktur perisian tegar PSP .
Analisis mendedahkan bahawa blob awam menggunakan AMD Root Key ID yang berbeza (0x00) berbanding dengan imej vendor yang berfungsi (0x02). Root Key ini berfungsi sebagai asas untuk mengesahkan semua komponen perisian tegar PSP semasa proses boot. Apabila kunci yang salah hadir, keseluruhan rantai kepercayaan gagal, menghalang CPU daripada dibebaskan dari keadaan reset awalnya.
Komponen Perisian Tegar Utama:
- Struktur Perisian Tegar Terbenam (EFS): Pengepala fail yang menunjukkan lokasi blob PSP
- Kunci Akar AMD: Kunci kriptografi utama untuk pengesahan blob PSP (ID 0x00 dalam awam berbanding 0x02 dalam vendor)
- Direktori PSP: Sistem fail yang mengandungi 30-50+ komponen perisian tegar individu
- Latihan memori: Proses permulaan 2+ minit pada setiap but pelayan AMD
Komuniti Menemui Penyelesaian Menggunakan Kunci Pra-Pengeluaran
Kejayaan datang apabila pembangun memperoleh akses kepada pakej Turin Pi AMD , yang mengandungi blob perisian tegar pra-pengeluaran dengan kunci tandatangan yang berbeza. Komponen-komponen ini berjaya boot sistem, mengesahkan bahawa perkakasan dan pelaksanaan coreboot berfungsi dengan betul apabila perisian tegar yang sesuai tersedia.
Ia bukan tentang konfigurasi tetapi lebih kepada kunci yang dibakar ke dalam silikon CPU yang digunakan untuk mengesahkan kunci yang digunakan dalam blob dan tandatangan blob tersebut.
Penemuan ini telah mencetuskan perbincangan tentang ketersediaan perisian tegar terbuka untuk sistem moden. Ahli komuniti menyatakan kekecewaan bahawa walaupun dengan kerjasama AMD yang jelas dalam menerbitkan komponen perisian tegar, realitinya ialah tiga megabait kod yang tidak boleh diaudit masih tidak mencukupi untuk operasi sistem asas.
Analisis Teknikal Mendedahkan Struktur Perisian Tegar Yang Kompleks
Penyiasatan memerlukan kejuruteraan terbalik yang meluas terhadap seni bina perisian tegar PSP AMD . Pembangun mempertingkatkan alat sedia ada seperti amdtool dan PSPTool untuk mengurai struktur perisian tegar khusus Turin dengan betul, mendedahkan kerumitan yang ketara dalam cara pemproses moden memulakan.
Perisian tegar PSP terdiri daripada berbilang tahap direktori yang mengandungi berpuluh komponen individu. Imej BIOS vendor biasanya memasukkan lebih 50 entri dalam direktori PSP mereka, berbanding dengan hanya 30-41 entri yang tersedia melalui saluran awam. Jurang ini mewakili kod permulaan kritikal yang kekal tidak tersedia kepada pembangun bebas.
Latihan memori pada platform pelayan AMD menambah satu lagi lapisan kerumitan, memerlukan masa permulaan 2+ minit tanpa mengira prestasi BIOS . Tidak seperti sistem Intel yang boleh melangkau langkah permulaan tertentu untuk masa boot yang lebih pantas, seni bina AMD melakukan latihan memori penuh pada setiap boot sejuk.
Perbandingan Entri Direktori PSP:
- Vendor BIOS: PSP1 (53 entri), PSP2 (48 entri), BIOSL1 (25 entri), BIOSL2 (54 entri)
- Coreboot dengan blob awam: PSP1 (30 entri), PSP2 (41 entri), BIOSL1 (11 entri), BIOSL2 (19 entri)
Implikasi untuk Pembangunan Perkakasan Terbuka
Situasi ini menyerlahkan cabaran berterusan dalam mencipta penyelesaian perisian tegar benar-benar terbuka untuk perkakasan pelayan moden. Walaupun AMD telah berusaha untuk menyokong pembangunan perisian tegar alternatif dengan menerbitkan blob PSP , sekatan kriptografi yang terbina dalam silikon itu sendiri mencipta halangan yang tidak dapat diatasi melalui perisian sahaja.
Penemuan menunjukkan bahawa perisian tegar terbuka yang berfungsi untuk pemproses Turin mungkin memerlukan sama ada blob awam yang dikemas kini dengan kunci tandatangan yang betul dari AMD , atau akses kepada komponen pakej Turin Pi terhad yang berfungsi dengan perkakasan pengeluaran.
Rujukan: Analisis blob AMD PSP pada sistem Gigabyte MZ33-AR1 Turin