Saya menggunakan pendekatan ubuntu default dengan shim dan grub2, dikombinasikan dengan kunci platform saya sendiri (shim penandatanganan otomatis dengan sbsign) dan partisi root terenkripsi, untuk mengamankan boot instalasi ubuntu saya. Tetapi ini hanya memverifikasi grubx64.efi dan kernel, tetapi tidak melindungi file initrd.img dan grub.cfg pada partisi boot yang tidak terenkripsi dari modifikasi berbahaya.
Jadi bagaimana saya bisa memverifikasi konfigurasi initrd dan grub, mungkin menggunakan hash sha256, sebelum menggunakannya untuk boot? Verifikasi itu dapat terjadi di shim, di grub atau di beberapa alat lain yang mungkin saya gunakan sebagai tambahan atau bukannya shim dan / atau grub.
Tujuan dari pertanyaan ini adalah untuk mencegah eksekusi kernel dengan lingkungan yang dimodifikasi (kernel command line dan initrd) untuk mencegah bocornya password enkripsi partisi root ke mana saja.
Tidak menemukan metode untuk memverifikasi konfigurasi boot meskipun telah membaca tutorial web / blog tentang boot aman selama beberapa hari, termasuk Ubuntu dan PreLoader.efi Linux Foundation, yang semuanya menjelaskan bagaimana verifikasi executable termasuk modul kernel bekerja, tetapi tidak ada yang menyebutkan grub.cfg dan (skrip shell dan file konfigurasi di dalam) initrd, jadi sepertinya saya yang pertama meminta verifikasi non-binari dalam proses boot. Sumber terbaik yang pernah saya temukan adalah dari Rod Smith .
Yang belum saya coba adalah memodifikasi kode sumber shim atau grub, membuat garpu, atau berkontribusi langsung pada mereka. Apakah itu satu-satunya cara untuk pergi?
sumber
Jawaban:
Saya menemukan artikel hebat yang menjelaskan pengaturan seperti itu: https://ruderich.org/simon/notes/secure-boot-with-grub-and-signed-linux-and-initrd
tl; dr: Tanda tangani grub config dan initrd dengan GPG, hasilkan grub binary yang akan menegakkan pemeriksaan dan menandatanganinya dengan kunci secureboot.
Paket untuk ubuntu yang mengimplementasikan ide serupa: https://github.com/JohnstonJ/ubuntu-secure-boot
sumber
Grub tampaknya mendukung verifikasi tanda tangan menggunakan tanda tangan terpisah. Saya kira itu jawaban Anda.
sumber