Proceso seguro de la carga del programa inicial (IPL)

La característica Arranque seguro impide el acceso no autorizado a datos del cliente a través de firmware no autorizado que se ejecuta en un procesador del sistema o accediendo a través de las vulnerabilidades de seguridad en un firmware de procesador de servicio autorizado o a través de interfaces de servicio de hardware a las que se accede a través del procesador de servicio flexible (FSP).

Mientras que la característica Arranque seguro impide el acceso no autorizado a datos del cliente, los mecanismos de Arranque seguro no proporcionan protección contra las amenazas siguientes:
  • Ataques basados en software del sistema operativo para obtener acceso no autorizado a datos del cliente.
  • Administradores de sistemas fraudulentos
  • Ataques físicos de hardware (por ejemplo, sustituciones de chips y registro de tráfico de bus).

La característica Arranque seguro implementa una cadena de confianza basada en el procesador en el hardware del procesador de POWER9 que ha habilitado la pila de firmware de POWER9. La característica Arranque seguro proporciona una base de firmware de confianza para mejorar la confidencialidad y la integridad de los datos de clientes en un entorno virtualizado.

La característica de arranque de confianza de servidores basados en procesadores POWER9 permite la medición del código de vía de acceso de configuración del sistema y de carga del programa inicial (IPL), que se pueden utilizar más adelante como prueba, mediante certificación de la configuración de la vía de acceso IPL inicial del sistema. Para crear una raíz básica de confianza para estas mediciones (CRTM), se utiliza un flujo Arranque seguro que añade comprobaciones criptográficas en cada fase del proceso de IPL hasta que se establece la comunicación con el módulo de plataforma fiable (TPM). El flujo Arranque seguro garantiza la integridad de todo el firmware que se debe ejecutar en procesadores de núcleo, lo que impide que se ejecute cualquier firmware modificado de forma maliciosa o no autorizada. Una anomalía para autenticar el código en cualquier punto impide que el proceso de IPL acabe completándose.

La característica Arranque seguro en sistemas POWER9 establece la confianza a través del proceso de arranque de plataforma. Aquí, de confianza significa que el código que se ejecuta durante el proceso de IPL se origina desde el fabricante de plataformas, tiene la firma del fabricante de plataformas y no se ha modificado.

La protección de modalidad segura disponible en servidores basados en procesadores POWER9 mantiene la confianza, impidiendo el acceso de lectura/escritura a los datos del cliente mediante interfaces FSP y de servicio, impidiendo la ejecución de código no de confianza en el procesador de host y manteniendo la confianza en todos los puntos clave en el proceso Arranque seguro.

La característica Arranque seguro de POWER9 implementa una cadena de confianza basada en un procesador. La cadena se inicia con un componente de confianza implícitamente, mientras los demás componentes se autentican y se comprueba su integridad antes de que se ejecuten en núcleos de procesadores de host. El código de verificación que se encuentra en el procesador bloqueado en ROM programable y borrable eléctricamente en serie (SEEPROM) valida la carga de firmware inicial. El firmware verifica las firmas criptográficas de todo el firmware posterior que debe ser de confianza y que debe cargarse para su ejecución en los núcleos del procesador POWER9. En un sistema POWER9, los conmutadores de seguridad SEEPROM están establecidos en el código de motor de autoarranque (SBE) y se arreglan en la línea de ensamblaje de fabricación (MFG) del sistema para proporcionar la base para el cumplimiento de hardware de flujos IPL seguros. Los puentes de modalidad de seguridad física están disponibles en la placa posterior de un sistema. Los puentes se pueden utilizar para alterar temporalmente los conmutadores de modalidad segura del procesador si una persona accede físicamente al sistema. El proceso de IPL seguro mejora más la informática de confianza en la plataforma de Power.

El diagrama siguiente ilustra las operaciones de un proceso de IPL de arranque seguro y de confianza.

Figura 1. Flujo de arranque seguro y de confianza
Un diagrama de flujo que ilustra las operaciones de un proceso de IPL de arranque seguro y de confianza

La característica Arranque seguro establece el código base de SEEPROM, SBE bloqueados y el código base de arranque de host (incluida una pequeña parte de código ampliado de arranque de host) como raíz base de confianza para mediciones (CRTM), con la cadena de confianza ampliada que incluya Power Hypervisor (PHYP), firmware de partición (PFW), particiones de adjuntos seleccionados (módulo de plataforma fiable físico (pTPM), módulo de plataforma fiable virtual (vTPM), tiempo de ejecución de arranque de host y adjuntos de cifrado) y controlador en chip (OCC – gestión térmica). Este dominio fiable y el soporte de seguridad de hardware del procesador garantizan que los datos del cliente no se visualicen o se alteren a través de ningún mecanismo de hardware o firmware.

La pila de firmware de confianza completa se autentica utilizando imágenes firmadas y se ejecuta en ubicaciones de memoria de confianza. El FSP se mantiene fuera del dominio de confianza del servidor host y el FSP queda bloqueado del acceso a registros de la Unidad de modificación/visualización (ADU) (ADU), otros registros protegidos y regiones de memoria de confianza. El motor de autoarranque (SBE) aplica el bloqueo FSP filtrando la lista negra de recursos de comunicación de exploración de lectura/escritura de registro de procesador. Los recursos SCOM están habilitados por el conmutador de acceso seguro en el área SEEPROM del chip del procesador.

La figura siguiente muestra el entorno de Arranque seguro.

Figura 2. El entorno de Arranque seguro
Un diagrama que ilustra el entorno de arranque seguro.

Cuando se inicia el proceso Arranque seguro, el elemento FSP envía una solicitud de arranque y detalles sobre el tipo de arranque a chips de procesador en el sistema. Internamente, en el estado de la lógica de Arranque seguro se borran los valores establecidos previamente para iniciarse con un estado adecuado y conocido. En el estado también se borra cualquier solicitud de atenuación que se hubiera ejecutado anteriormente. Se implementan mecanismos de protección de hardware para impedir que un atacante malicioso se salte este paso inicial. El acceso desde el FSP a recursos de chip internos está bloqueado y el motor Arranque seguro empieza a captar código de inicialización de la memoria que está en el módulo, seguro, no volátil y bloqueado. Este código realiza inicialización de chip básico y restablece el TPM.

Después de que se haya completado el paso inicial en el proceso de arranque, el motor de autoarranque (SBE) carga el cargador de arranque de host y el código de validación de SEEPROM en la memoria caché L3 interna del chip del procesador. A continuación, se inicia un núcleo del procesador y el cargador de arranque capta el código Base de arranque de host (HBB) inicial del chip flash de NOR de procesador (PNOR) y lo carga en la memoria caché L3. En modalidad segura, el código de validación de la memoria caché L3 se utiliza para verificar la imagen HBB que está ahora disponible en la memoria caché de confianza. Tras verificar el código flash inicial, el núcleo de procesador continúa ejecutando el código validado del espacio de memoria de confianza y carga y valida las funciones ampliadas HB (HBI). Después de que se mida el HBI y se verifique y se copie, su medición (hash de imagen), que indica la autenticación válida, se registra en el TPM, tal como lo indica el Paso 1 en la Figura Flujo de arranque seguro y de confianza. En este punto, todo el código que se ejecuta está plenamente contenido en el chip flash PNOR y el sistema no se ha accedido por ningún otro mecanismo. Esto se conoce como el límite del arranque de confianza. En caso de que la verificación falle, el sistema se detiene inmediatamente y está protegido mediante mecanismos de protección de hardware para impedir la ejecución de código no fiable o fraudulento.

A continuación, el código HB gestiona las actualizaciones pendientes de la memoria no volátil segura utilizando una nueva imagen de confianza. Para proteger la raíz de base de confianza (CRTM), el código HB bloquea la memoria segura, impidiendo así cualquier acceso posterior de escritura a la memoria (esta acción significa que si el sistema se vuelve a arrancar, vuelve al estado de confianza). A continuación, el código HB inicializa el controlador de memoria en chip y los módulos de memoria en línea duales conectados (DIMMs). El código HB también inicializa otros chips que están directamente conectados al procesador en el que se ejecuta antes de establecer la interfaz coherente de memoria a otros chips del sistema. Estos otros chips también se verifican para garantizar que tienen un estado seguro y de confianza.

A continuación los componentes de pila de firmware superiores se cargan, verifican, ejecutan y sus mediciones se registran en el TPM. Esta acción completa el Paso 2, que se indican en la Figura Flujo de arranque seguro y de confianza. En el Paso 3 de la figura Flujo de arranque seguro y de confianza, la carga útil de Power Hypervisor (PHYP) se carga en la memoria principal. A continuación, el código se autentica de forma criptográfica y tras una autenticación con éxito, PHYP empieza a ejecutarse. La medición de autenticación del código PHYP se registra en el TPM. Asimismo, los pasos 4 a 8, que se indican en la Figura Flujo de arranque seguro y de confianza se realizan para cargar el código de la memoria flash no bloqueada, el código se autentica de forma criptográfica y, a continuación, se ejecutan varios adjuntos y el firmware de partición (PFW).