UEFI 2.11 y PI 1.9: así son las nuevas especificaciones con mejoras en la seguridad para PC, portátiles, consolas y servidores

Antes de terminar el año el Foro UEFI ha anunciado el lanzamiento de una serie de nuevas especificaciones que conviene conocer por sus importantes mejoras en seguridad. Hablamos por supuesto de UEFI 2.11 (Unified Extensible Firmware Interface) y PI 1.9 (Platform Initialization), las cuales tienen optimizaciones varias para mayor compatibilidad con el hardware, cambios importantes, mejores y actualizaciones de seguridad y un buen etc. Veamoslas punto por punto frente a sus versiones anteriores, ¿tan importantes son? Pues sí, vamos a ello.

Mark Doran, presidente del Foro UEFI, dejó unas declaraciones bastante bien estructuradas a modo de resumen de lo que vamos a ver diciendo que están comprometidos con todas las arquitecturas de CPU importantes, entre las que destacan PC, servidores y móviles, sin olvidar a las consolas.

UEFI 2.11 y PI 1.9: novedades clave en materia de seguridad y de compatibilidad para los firmware del futuro

UEFI-2.11-y-PI-1.9

Como decíamos, Doran le ha dado mucha relevancia a estas nuevas especificaciones y dijo:

"Hemos creado una comunidad de firmware vibrante, y estas actualizaciones de especificaciones brindan mantenimiento y mejora de las capacidades fundamentales para ayudar a aumentar el impulso de las especificaciones UEFI y agregar valor al ecosistema. Las últimas especificaciones continúan el compromiso del Foro UEFI de desarrollar estándares para todas las arquitecturas de CPU importantes, como lo subrayan las incorporaciones, como la nueva compatibilidad con LoongArch en la especificación PI 1.9".

Como son muchos los puntos a tratar, y para no hacer esto extremadamente largo, vamos a comentarlos enumerándolos brevemente, comenzando por UEFI 2.11 como estándar para la interfaz de firmware entre el hardware y los SO:

UEFI 2.11, todas las novedades y mejoras

UEFI-2.11

1. Mejoras generales

  • Compatibilidad y estándares:
    • Soporte ampliado para plataformas como RISC-V y LoongArch, mejorando la especificación de atributos y convenciones de llamada​.
    • Actualizaciones en protocolos de seguridad, incluyendo algoritmos criptográficos SM2 y SM3​.
    • Introducción de perfiles de conformidad de UEFI para una mejor interoperabilidad​.

2. Novedades específicas

  • Extensiones de computación confidencial (TEE): Soporte para computación segura en RISC-V con nuevas definiciones.
  • Protocolos de manejo avanzado:
    • Mejoras en EFI_BOOT_SERVICES con nuevas funciones para simplificar la gestión de controladores, como EFI_BOOT_SERVICES.LocateHandleBuffer y EFI_BOOT_SERVICES.OpenProtocolInformation.
  • Soporte ampliado para hardware:
    • Introducción del protocolo EFI_SMART_CARD_READER_PROTOCOL para lectores de tarjetas inteligentes​.
    • Mejoras en la gestión de dispositivos NVMe y atributos específicos para ISA en descriptores de memoria​.

3. Deprecaciones y correcciones

  • Deprecaciones:
    • Variables como CryptoIndications se han eliminado debido a cambios en el modelo de seguridad​.
  • Correcciones de errores:
    • Solucionados problemas relacionados con los códigos de error en diversas interfaces, como EFI_TABLE_HEADER y en atributos de procesadores Arm.

4. Cambios menores y editoriales

  • Clarificaciones:
    • Ajustes en descripciones de memoria protegida y nuevos atributos en protocolos de memoria​.
  • Simplificación:
    • Optimizaciones en funciones relacionadas con imágenes, controladores y servicios de protocolo.

Como vemos, hay un poco para todos. Desde lectores de tarjetas inteligentes, NVMe, procesadores Arm, RISC-V y LoongArch. Vamos ahora con PI 1.9, que no se queda atrás.

PI 1.9: novedades y características clave

PI-1.9

Menos conocido que UEFI, pero parte de la especificación de la misma, PI describe y delimita los estándares para esa fase clave e inicial de cualquier arranque para un sistema, pero en concreto, se especializa en cómo los diferentes firmware interactúan con el hardware para poder cargar el Sistema Operativo de turno. Por ello, estas mejoras son claves para comprender hacia dónde va el estándar según las novedades del hardware, y se resume en 8 puntos concretos:

  1. Nuevo código de estado para paquetes de ManageabilityPkg y RedfishPkg
    Mejora la capacidad de los desarrolladores para monitorear y diagnosticar problemas relacionados con la gestión de plataformas y el protocolo Redfish, facilitando la integración en sistemas con herramientas modernas de administración.
  2. Atributo de memoria extraíble en caliente
    Permite a los sistemas identificar y gestionar adecuadamente módulos de memoria que pueden ser agregados o retirados sin apagar el equipo, mejorando la flexibilidad y mantenimiento en entornos dinámicos.
  3. Nuevo protocolo para soportar múltiples regiones SPI
    Facilita la interacción con dispositivos que utilizan múltiples regiones SPI (Serial Peripheral Interface), como memorias flash, mejorando la precisión y el control durante las operaciones de lectura/escritura.
  4. Soporte para LoongArch
    Extiende la compatibilidad de la especificación a la arquitectura LoongArch, utilizada en sistemas emergentes, abriendo la puerta a más plataformas y fomentando la diversidad tecnológica.
  5. Adición de RNG PPI (Random Number Generator PPI)
    Proporciona una interfaz estándar para acceder a generadores de números aleatorios en hardware, esencial para mejorar la seguridad criptográfica y la generación de datos aleatorios en sistemas UEFI.
  6. Nuevo encabezado de comunicación MM y sus interfaces
    Optimiza la comunicación entre componentes en el contexto de la administración de memoria, mejorando la eficiencia y reduciendo la complejidad en sistemas avanzados.
  7. Definiciones de código de progreso
    Establece una guía clara y estándar para representar visualmente o registrar el progreso de las fases de inicialización, lo que facilita la depuración y mejora la experiencia de los desarrolladores.
  8. Mejor seguridad en los algoritmos
    Amplía las opciones de algoritmos al proporcionar seguridad mejorada con algoritmos criptográficos adicionales para el volumen de firmware (FV) firmado y secciones firmadas que se extienden más allá del RSA2048_SHA256 anterior.

Como vemos, ambos estándares tienen unos cambios muy importantes en sus especificaciones, los cuales están orientados a mejorar el soporte y la seguridad casi a partes iguales.