El proceso de arranque de un ordenador cualquier se puede ver comprometido si no existen las medidas de seguridad que lo protejan. El Platform Secure Boot o PSB de AMD es uno de los mecanismos que garantizan la integridad en ese aspecto, pero también puede ser abusado por los fabricantes para atarte a cierto hardware en concreto
A los fabricantes de ordenadores les sale mucho más rentable vender un ordenador entero que lo vayas actualizando con piezas de diferentes marcas, eso es un hecho innegable y es por ello que la mayoría de ordenadores preconstruidos llevan consigo limitaciones artificiales para que te veas atado a una marca en concreto.
Si a esto le sumamos que AMD durante muchos años ha sido el patito feo para los diferentes fabricantes de ordenadores y ha tenido que luchar muy duramente para conseguir que ciertas marcas importantes utilicen sus CPU y las de Intel. Entonces, queda claro que han tenido que realizar alguna cesión con tal de beneficiar los intereses de sus socios. Una de las más polémicas es el Platform Secure Boot o PSB, el cual le ha servido a fabricantes como Dell o Lenovo para atar las CPU Ryzen, Threadripper y EPYC de la empresa liderada por Lisa Su a su hardware en exclusiva.
¿Qué relación tiene el interés de los fabricantes de atarte a su plataforma con el sistema de protección en el arranque de AMD? Bueno, deja que te lo expliquemos.
¿Qué es el AMD PSB?
Dentro de BIOS UEFI se almacena en una memoria flash en la placa base, la cual dado que es RAM no volátil es direccionada como si fuese parte de la memoria principal. Hay veces que incluso con todas las medidas de protección un software malicioso puede llegar a inyectar código en el firmware y efectuar una actualización no autorizada. No olvidemos que el proceso de arranque establece la localización de ciertas claves públicas y privadas, utilizadas solo por el procesador de seguridad.
Esto supone que si no usamos un módulo TPM en nuestro PC con procesador de AMD entonces nuestra información confidencial como por ejemplo la relacionada con los certificados de validación que usamos para interactuar con nuestro banco se almacenan vía fTPM que se encuentra en el firmware de arranque, por lo que hay que añadir medidas de seguridad adicionales con tal de protegerlo.
El AMD Platform Secure Boot o PSB es una de las medidas de seguridad integradas en el procesador de seguridad dentro de las CPU de AMD. Su utilidad no es otra que evitar la ejecución un firmware relacionado con el proceso de arranque que ha sido modificado de cara a objetivos maliciosos. Para ello crea una cadena de confianza que se encarga de autentificar todo el firmware al que accede la CPU cuando arrancamos el ordenador incluyendo la BIOS y el inicio del sistema operativo.
¿Cómo funciona?
El PSB añade un nivel de seguridad superior al que puede dar la BIOS UEFI en sí misma, debido a que valida el contenido de la memoria que contiene todo en el programa de arranque. Esto lo hace a través de una cadena de confianza ejecutada puramente a través de hardware y sin ningún programa externo antes que todo el proceso de inició se llegue a ejecutar.
- Realiza la validación del primer bloque de la BIOS/UEFI, mientras realiza esto envía una señal al pin HOLD de la CPU para que no se ponga en marcha mientras realiza la comprobación.
- Se encarga de verificar el contenido de la ROM del sistema, esta memoria contiene una copia de seguridad de la funciones básicas de la BIOS y contiene todo el proceso de arranque de forma inmutable. Se ha de tener en cuenta que las actualizaciones de nuevas funciones de la BIOS no tienen que ver con el arranque del sistema.
- El procesador de seguridad ejecuta la comparación entre el contenido de la ROM y el firmware que almacena la UEFI para comprobar si hay algún cambio no autorizado. Tras hacer esto libera a la CPU para que el PC se pueda inicializar sin problemas.
El procesador de seguridad de AMD o Platform Security Processor es un pequeño microcontrolador con el nivel de privilegió más grande de cara al acceso a la RAM y los periféricos del sistema. Se tasa en un ARM Cortex-A5 y debido a que bajo consumo puede funcionar con el ordenador en modo reposo o en espera. Por lo que será el primer procesador que se pondrá en marca cuando encendamos nuestro PC o lo saquemos de uno de los modos de bajo consumo.
¿Cómo abusan los fabricantes del PSB de AMD?
En los últimos tiempos estamos viendo no solo como hay movimientos hacía la integración, sino que en medio de este proceso se está atacando una de las bases que ha definido al PC desde sus inicios: la capacidad de expansión y configuración por parte del usuario. La mayoría de los fabricantes han llegado a la peligrosa conclusión de que el hecho de que podamos ampliar las capacidades de nuestro PC afecta a la compra de futuros productos. De ahí a que haya aparecido la polémica del derecho a reparar ante las prácticas de diferentes ensambladores y fabricantes de hardware.
Por lógica, uno esperaría que esto afectará solamente al mercado de consumo. Por lo que los servidores y centros de datos utilizados tanto por los diferentes organismos públicos como las grandes empresas que en teoría no deberían verse afectados por ello. Sin embargo, AMD decidió crear un programa llamado PSB para que los fabricantes y ensambladores pudieran vender sus servidores completos y no por piezas. ¿La razón detrás de ello? Existe un mercado de segunda mano en el que los procesadores EPYC ya desmantelados de sus servidores se usan para centros de datos y servidores de segunda mano.
Dicho de otra manera, cuando una empresa descarta su antiguo servidor o centro de datos no lo lanza a la basura, sino que vende sus piezas para recuperar parte de la inversión. Esto supone una competencia adicional para los fabricantes de servidores. Dado que se pueden encontrar que sus clientes ven más atractivo montarse ellos mismos un servidor y llevar ellos mismos el mantenimiento, esto provoca un abuso de una de las funciones de seguridad de los EPYC de AMD para atar a los clientes a una marca en concreto.
¿Cómo realizan el cerrojo?
Con tal de hacer que una CPU AMD EPYC para servidor solo funcione con un modelo concreto de placa base y que el mercado de servidores de segunda mano los fabricantes abusan del proceso de certificación en el arranque que provee el PSB para atar a los procesadores a sus servidores en concreto, lo que significa que no podemos emparejar ciertos procesadores si no es con ciertas placas de servidor.
Para entender todo el proceso, hemos de partir del hecho que cuando el fabricante ha terminado de crear el PC, sea del tipo que sea, se ejecuta un proceso en el que se crea la imagen de arranque almacenada en la ROM y que incluirá dos claves asociadas, ambas con un tamaño de 4096 bits y codificación SHA-384. La primera de ellas se almacenará en la ROM del sistema y tendrá su reflejo en el Firmware de arranque. La segunda, en cambio, lo hará dentro del HSM, un hardware encargado de generar claves codificadas criptográficamente y también de descodificarlas.
Ambas claves forman parte de la Public Key Infrastructure y son utilizadas para firmar el contenido de un certificado que se encuentra en la ROM de arranque en la placa base y donde se incluye el código de identificación del procesador y el resto de elementos del hardware. Si uno de estos elementos no se encuentra en el sistema, entonces el PSB simplemente no dejará iniciar el sistema.