Nota:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en una cuenta gratuita, consulte Introducción al nivel gratuito de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por valores específicos de su entorno en la nube.
Uso de mokutil para actualizar claves de firma para el inicio seguro UEFI
En este tutorial, se muestra cómo utilizar la utilidad Machine Owner Key (MOK) para gestionar certificados que se utilizan para el inicio seguro UEFI en Oracle Linux.
Para obtener información detallada sobre el inicio seguro y sus mecanismos, consulte Oracle Linux: Working With UEFI Secure Boot.
Introducción
La utilidad de clave de propietario de máquina (MOK) se utiliza para tareas como las siguientes:
- Actualice la base de datos de claves de inicio seguro de UEFI.
- Importe las claves utilizadas para firmar módulos de núcleo personalizados o de terceros para que se puedan cargar en el modo de inicio seguro de UEFI.
La inscripción de claves en la base de datos de claves de inicio seguro de UEFI se gestiona de dos maneras:
-
Inscriba el hash para un binario de núcleo determinado. Este método limita el uso de un certificado solo para un binario de núcleo firmado específico y, por lo tanto, es una manera segura de prevenir la posible explotación. Sin embargo, su desventaja es que debe realizar esta tarea para cada versión o actualización del núcleo.
-
Inscriba el certificado que se utiliza para firmar el núcleo y los paquetes relacionados. Dado que el certificado se aplica a cualquier núcleo que utilice ese certificado, este método puede ser menos repetitivo que la inscripción hash. Facilita tareas como la realización de rollback a varias versiones anteriores de un núcleo que utiliza ese certificado. Sin embargo, su desventaja es que abre el riesgo de que el sistema esté ejecutando un paquete vulnerable o un binario de núcleo.
Objetivos
Al finalizar este tutorial, debería poder realizar lo siguiente:
- Instale las utilidades MOK y
pesign
. - Inscriba las claves mediante el método hash o de certificado.
Advertencia: existen problemas al usar la utilidad MOK con UEK R3. Si utiliza este núcleo, no continúe con este tutorial.
Requisitos
- Sistema que ejecuta al menos Oracle Linux 7 actualización 3.
- El firmware admite la función de inicio seguro.
- Acceso físico al sistema.
- La configuración y el firmware del sistema admiten la utilidad. Si no está seguro acerca del firmware, no continúe con este tutorial.
Instalación de los paquetes mokutil
y pesign
Ejecute uno de los siguientes comandos en función del sistema Oracle Linux:
-
En un sistema Oracle Linux 8:
sudo dnf install mokutil pesign
-
En un sistema Oracle Linux 7:
sudo yum install mokutil pesign yum-utils
Inscripción de hashes con la base de datos de claves de inicio seguro UEFI
Este método de inscripción consta de dos tareas:
- Extraiga un hash relleno de un binario de núcleo firmado específico.
- Importe el hash en la lista MOK para permitir que el núcleo se cargue en el momento del inicio.
Las dos tareas se pueden completar con un único comando que utiliza los comandos mokutil
y pesign
.
-
Mediante
/boot/vmlinuz-4.18.0-193.el8.x86_64
como ejemplo, escriba el siguiente comando:sudo mokutil --import-hash $(pesign -P -h -i /boot/vmlinuz-4.18.0-193.el8.x86_64 | cut -f 2 -d ' ')
-
Introduzca y confirme la contraseña de la solicitud de inscripción de MOK.
Utilice cualquier contraseña para este fin, pero tenga en cuenta la contraseña que utiliza. Se le solicitará cuando se reinicie el sistema.
-
Reinicie el sistema para completar la inscripción.
-
Cuando se le solicite, introduzca la contraseña definida al importar el hash.
Inscripción de certificados con la base de datos de claves de inicio seguro UEFI
-
Descargue el paquete de origen del núcleo.
El paquete de origen contiene las claves de certificado que se utilizan para firmar cada núcleo y límite. Un paquete de origen de núcleo puede ser
kernel
para el núcleo RHCK okernel-uek
para Unbreakable Enterprise Kernel.Ejecute uno de los siguientes comandos en función del sistema Oracle Linux:
-
En un sistema Oracle Linux 8, este comando descarga el paquete de origen más reciente de
kernel
okernel-uek
.sudo dnf download --source kernel|kernel-uek
-
En el sistema Oracle Linux 7, el comando
yumdownloader
le permite descargar versiones específicas de paquetes de origen de núcleo que necesita, por ejemplo,kernel-uek-4.14.35-1902.303.4.1.el7uek
okernel-2.6.32-754.2.1.el6.x86_64
.Tipo:
sudo yumdownloader --source <kernel-version>|<kernel-uek-version>
-
-
Extraiga el paquete de origen para acceder al certificado de validación extendida (EV) del paquete, por ejemplo:
sudo rpm2cpio ./kernel-uek*.rpm | cpio -idmv
-
Introduzca y confirme la contraseña de la solicitud de inscripción de MOK.
Utilice cualquier contraseña para este fin, pero tenga en cuenta la contraseña que utiliza. Se le solicitará cuando se reinicie el sistema.
Nota: No importe el certificado de CA,
securebootca.cer
, que se incluye en los paquetes de origen. La importación del certificado de CA permite que cualquier núcleo que utilice un certificado firmado por la misma CA cargue y deje el inicio seguro de UEFI ineficaz. -
Reinicie el sistema para completar la inscripción.
-
Cuando se le solicite, introduzca la contraseña que definió al importar el certificado.
El certificado se agrega a la lista MOK y se propaga automáticamente al anillo de claves del sistema en este inicio, así como a los inicios posteriores.
Utilice estos pasos para descargar varias versiones de cada paquete de origen, extraer los certificados de cada uno e importarlos a la base de datos de inicio seguro de UEFI según sea necesario. Para determinar las versiones de paquetes que puede necesitar para diferentes versiones mínimas del núcleo, consulte Use the Oracle Linux UEFI Secure Boot Update Notices.
Para más información
- Oracle Linux: trabajo con el inicio seguro de UEFI
- Documentación de Oracle Linux
- Versiones de Oracle Linux y Unbreakable Enterprise Kernel (UEK)
- página del comando man mokutil(1)
- pesign(1) man page
- Comando
pesign --help
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use mokutil to Update Signature Keys for UEFI Secure Boot
F55292-01
March 2022
Copyright © 2020, Oracle and/or its affiliates.