Bagaimana saya bisa mengamankan initrd dan grub.cfg menggunakan boot aman?

8

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?

Juergen
sumber
Posting silang Anda dari kemarin, sedikit kesabaran akan lebih sesuai, dan lintas posting tentu saja tidak (BTW jika Anda di atas downarrow Anda dapat melihat alasan untuk downvotes: tidak ada upaya penelitian / tidak jelas / tidak berguna)
Anthon
@Anthon, menurut Anda di mana tempat appripriate untuk mengajukan pertanyaan ini? Saya tidak tahu, jadi saya pikir di sini adalah tempat yang lebih baik daripada di SuperUser. Dan apakah Anda pikir saya harus menghapus pertanyaan sebelumnya dan yang ini sebelum bertanya di tempat yang tepat untuk mencegah downvoted karena posting silang lagi?
Juergen
Posting silang tidak pernah masalah, karena Anda akan tahu jika Anda membaca bantuan. Di situs ini adalah alasan penutupan (seperti yang Anda perhatikan), diperlukan kesabaran dan ini adalah situs tanya jawab, bukan situs bantuan pribadi, atau instan. Menunggu beberapa hari, terutama selama akhir pekan akan tepat. Dan beberapa deskripsi lagi tentang apa yang Anda coba dan apa yang tidak berhasil akan sesuai juga. Jika Anda ingin ini dibuka kembali di sini, hapus Q pada superuser, tunjukkan dengan jelas di sini (dengan mengedit posting Anda) dan kemudian akan berada dalam antrian untuk dibuka kembali.
Anthon
@Anthon, terima kasih atas komentar Anda. Menghapus pertanyaan pada SuperUser dan menjelaskan pertanyaan di sini lebih terinci. Bisakah saya berbuat lebih baik?
Juergen
Terlihat lebih baik, saya memilih untuk membuka kembali, tetapi disarankan bahwa ini membutuhkan lebih dari sekedar suara saya.
Anthon

Jawaban:

0

Grub tampaknya mendukung verifikasi tanda tangan menggunakan tanda tangan terpisah. Saya kira itu jawaban Anda.

Justin King-Lacroix
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka. - Dari Ulasan
Archemar
Sebenarnya itu benar. Pertanyaan aslinya adalah: "Jadi bagaimana saya bisa memverifikasi konfigurasi initrd dan grub, mungkin menggunakan hash sha256, sebelum menggunakannya untuk mem-boot? Verifikasi itu bisa terjadi di shim, di grub atau di beberapa alat lain yang mungkin saya gunakan selain atau bukannya shim dan / atau grub. " Jawabannya adalah: "Grub tampaknya mendukung verifikasi tanda tangan menggunakan tanda tangan terpisah." (Secara implisit: "... sehingga Anda dapat menandatangani initrd, menghasilkan tanda tangan terpisah, dan minta Grub memverifikasinya.")
Justin King-Lacroix
@ Justin King-Lacroix, terima kasih atas jawaban Anda, tetapi saya tidak dapat menemukan tanda tangan terpisah di gnu.org/software/grub/manual/grub.html - apakah itu fitur garpu grub tidak resmi? Googling "manual grub tanda tangan terpisah" tidak menghasilkan sesuatu yang spesifik. Bisakah Anda mengarahkan saya ke fitur itu?
Juergen
Sayangnya, saya tidak punya referensi manual; Saya menemukan ini mencari melalui sumber. Cari operasi "verifikasi".
Justin King-Lacroix