¿Hay alguna manera de saber si mi gestor de arranque EFI aceptará la firma del binario sin reiniciar?

¿Hay alguna manera de saber si mi gestor de arranque EFI aceptará la firma del binario sin reiniciar?

Supongamos que acabo de instalar un gestor de arranque EFI firmado (por ejemplo, grub2desde Ubuntu 14.10 amd64 en un Lenovo IdeaPad U410 que solo puede arrancar en modo de arranque seguro EFI o heredado) en una máquina desde un sistema basado en Linux o (más especificado) en Debian. ¿Hay alguna manera de saber que la máquina arrancará desde el momento en que se está ejecutando sin reiniciar?

Respuesta1

Sí, pero debes tener tus claves de arranque seguro a mano. Primero, tenga en cuenta que existen al menos tres formas que pueden adoptar las claves públicas de arranque seguro:

  • .cer/ .derfiles: estos archivos son utilizados por la mayoría de las implementaciones UEFI, así como por la herramienta MokManager que está emparejada con Shim.
  • .crt-- Estos archivos se utilizan de forma nativa en la mayoría de las herramientas de seguridad de Linux, como sbsigntooly sbverify.
  • .esl-- Estos archivos combinan varias claves en un solo archivo. (Los demás archivos contienen cada uno una única clave). Si utiliza una interfaz de usuario de firmware o KeyTool para guardar sus claves, los archivos resultantes estarán en este formato.

Si ha instalado su propia clave de propietario de máquina (MOK) usando MokManager, debería tener el archivo en formato .cer/ .der. Si desea probar si el binario funcionará cuando se inicie con otra clave (como las claves utilizadas para firmar la versión de GRUB de Ubuntu o Fedora), deberá obtenerlo. Para mayor comodidad, he recopilado varios con rEFInd; puedes descargarlos poco a pocoaquí.si tienestomado el control total del arranque seguro en su sistema,También deberías tener las claves que creaste.

Para verificar un binario, debe tener una clave en .crtel formulario. Si tiene una clave en .derun .cerformulario, puede convertirla:

openssl x509 -in mykey.cer -inform der -out mykey.crt

Luego, puedes comprobar que el binario esté firmado correctamente:

sbverify --cert mykey.crt binary.efi

El resultado debería ser un mensaje que lea Signature verification OKo Signature verification failed.

Tenga en cuenta que algunos UEFI no pueden iniciar ni siquiera archivos binarios firmados correctamente. Esto parece ser aleatorio; El binario A se iniciará correctamente, mientras que el binario B, firmado con la misma clave, falla. Creo que esto es un error en los UEFI afectados, pero no lo he investigado en detalle. AFAIK, no afecta a los binarios verificados a través de Shim, pero puede afectar al propio Shim o a los binarios lanzados sin la ayuda de Shim.

información relacionada