Estoy usando el enfoque predeterminado de ubuntu con shim y grub2, combinado con mi propia clave de plataforma (shim de firma automática con sbsign) y una partición raíz encriptada, para asegurar el arranque de mi instalación de ubuntu. Pero esto solo verifica el grubx64.efi y el kernel, pero no protege los archivos initrd.img y grub.cfg en la partición de arranque no cifrada de modificaciones maliciosas.
Entonces, ¿cómo puedo verificar el initrd y la configuración de grub, posiblemente usando un hash sha256, antes de usarlos para arrancar? Esa verificación podría ocurrir en shim, en grub o en alguna otra herramienta que podría usar además de o en lugar de shim y / o grub.
El propósito de esta pregunta es evitar que el núcleo se ejecute con un entorno modificado (línea de comando del núcleo e initrd) para evitar que se filtre la contraseña de cifrado de la partición raíz en cualquier lugar.
No encontré ningún método para verificar la configuración de arranque a pesar de varios días de leer tutoriales / blogs web sobre arranque seguro, incluidos Ubuntu y PreLoader.efi de Linux Foundation, todo lo cual explica cómo funciona la verificación de ejecutables, incluidos los módulos del núcleo, pero ninguno de que menciona grub.cfg y (scripts de shell y archivos de configuración dentro del) initrd, por lo que parece que soy el primero en solicitar la verificación de no binarios en el proceso de arranque. Las mejores fuentes que he encontrado son las de Rod Smith .
Lo que aún no intenté es modificar el código fuente de shim o grub, crear un tenedor o contribuir directamente a ellos. ¿Sería ese el único camino a seguir?