UEFI – Secure Boot y Windows 8

publicado en: Otros tutoriales | 0

Actualmente existe un encendido debate en internet con el foco puesto en el uso de Secure Boot por parte de Microsoft y las limitaciones que impone a sistemas operativos de la competencia. En un par de meses se empezarán a comercializar ordenadores con UEFI-Secure Boot y Windows 8. Creo que es un buen momento para revisar y entender de qué va todo esto.

BIOS
Cuando un ordenador apagado se enciende necesita algún programa que inicialice los dispositivos del ordenador y cargue un sistema operativo. Desde mediados de los años 1970 a este programa se le denomina BIOS (del inglés Sistema Básico de Entrada/Salida) y viene en un chip de la placa base del ordenador. Con el paso de los años ha ido evolucionando hasta un límite en el que su funcionalidad se queda corta y se necesita una alternativa más moderna: UEFI.

UEFI
Nació para reemplazar a BIOS y significa Unified Extensible Firmware Interface (Interfaz Extensible del Firmware Unificada). Aunque originalmente lo empezó a desarrollar Intel, llamándolo EFI, para su segunda versión formaron una alianza varias empresas tecnológicas, que se reunieron en el denominado UEFI Forum y pasaron a llamarlo UEFI. Su objetivo es promover y velar por un estándar que pudiesen utilizar todas las empresas que quisieran. Actualmente el comité de dirección lo forman las empresas: AMD, America Megatrends, Apple, Dell, HP, IBM, Insyde Software, Intel, Lenovo, Microsoft y Phoenix Techonologies. La última especificación del estándar UEFI es la versión 2.3.1 del 8 de abril de 2011.

Como puede verse, a pesar de que últimamente vemos UEFI-Secure Boot asociado a Microsoft, no se trata de una tecnología de Microsoft sino un estándar utilizado por muchas empresas para el sistema de arranque de los ordenadores.

UEFI no es nuevo
Aunque no se haya oído mucho, UEFI lleva años estando presente y siendo utilizado por diversos sistemas operativos. Algunos de los más conocidos son:
– Linux: la mayoría de distribuciones ya soportan UEFI.
– Apple utiliza UEFI en sus equipos basados en procesadores Intel y Mac OS X.
– Microsoft soporta UEFI en las versiones para 64 bits de sus sistemas operativos Windows Server 2008, Windows Vista (SP1) y Windows 7.

¿Si no es algo nuevo y ha estado funcionando hasta ahora de dónde procede la polémica sobre la aparición de Windows 8?. La respuesta es Secure Boot.

Secure Boot
La última especificación de UEFI (v2.3.1) define el protocolo Secure Boot (Arranque Seguro) y tiene como objetivo verificar la integridad y autenticidad de las partes más críticas del software que se ejecuta en el arranque de un ordenador. Se intenta garantizar que ningún ‘malware’ ha modificado o sustituido el software que se ejecuta antes de cargarse el sistema operativo y cualquier programa ‘anti-malware’, como por ejemplo un antivirus. Sin entrar en muchos detalles técnicos, básicamente lo que se hace es verificar la firma digital del software que se quiere controlar. Si dicho software ha sido manipulado o sustituido, el cálculo de su firma digital no coincidirá con la esperada y no se producirá el arranque del ordenador para no comprometer su seguridad. También, aunque no haya sido manipulado, si su firma ha sido invalidada no se ejecutará. (Se utiliza criptografía de clave pública, PKI, en la que existe una clave privada que se debe guardar con celo y una clave pública que se puede desvelar libremente. No obstante, para no complicarlo más hablaré de clave).

Hasta aquí todo perfecto, parece una buena solución para evitar ‘rootkits’ y ‘bootkits’, dos tipos de ‘malware’ diseñados para atacar en el momento que arranca un ordenador.

Para entender el origen de la polémica hay que conocer los elementos principales que utiliza Secure Boot:

Platform Key: es la clave de la plataforma, es decir, la clave para controlar todo el ordenador.

Key Exchange Key: es la clave de intercambio de claves. Se utiliza para dos cosas: modificar las bases de datos de firmas digitales (que definiré a continuación) y para firmar ficheros binarios para que sea válida su ejecución.

Signature Database (db): es la base de datos donde se guardan las firmas digitales de los ejecutables que se deben validar en el arranque del ordenador.

Forbidden Signature Database (dbx): es la base de datos donde se guardan las firmas digitales de ejecutables que se consideran no válidos y que por tanto no se autorizará su ejecución aunque estén en la anterior base de datos.

Setup Mode: es el modo de instalación de Secure Boot. En este modo está desactivado el control seguro del arranque del ordenador. Además, permite especificar una ‘Platform Key’ e iniciar el proceso de instalación del resto de elementos de Secure Boot para autorizar que arranque un sistema operativo (que debe estar preparado para utilizar UEFI). Una vez terminada la instalación de Secure Boot se pasa automáticamente a ‘User Mode’. Si se está en este modo de funcionamiento, ‘Setup Mode’, se podrá arrancar cualquier sistema operativo porque no se controlarán los ejecutables del arranque utilizando Secure Boot.

User Mode: es el modo de funcionamiento normal de Secure Boot, en el que está activo y por tanto se verifica la validez de los ejecutables implicados en el arranque del ordenador.

Una vez presentada esta información ya se puede comentar el revuelo generado por Windows 8, las implicaciones que tiene EUFI-Secure Boot y explicar las cosas que deberemos tener en cuenta al comprar un ordenador o hardware si no queremos encontrarnos con limitaciones.

Los fabricantes de ordenadores que distribuyan sus equipos con Windows 8 preinstalado y la pegatina con el logotipo de “Windows 8” están obligados contractualmente por Microsoft a que esté activo Secure Boot, es decir, que cuando arranque el ordenador por primera vez estará en ‘User Mode’.

Si el fabricante del ordenador no permite pasar a ‘Setup Mode’ (lo cual se suele describir a veces como ‘desactivar Secure Boot’) tendremos un ordenador bloqueado para utilizar únicamente Windows 8. Creo que es difícil que esto ocurra porque con todo el revuelo mediático que se está creando los fabricantes se arriesgan a no vender ordenadores.

Si está desactivado ‘Secure Boot’ podremos instalar cualquier sistema operativo. Si deseamos tener activado ‘Secure Boot’ e instalar otro sistema operativo existen dos posibilidades: el fabricante del ordenador ha incluido la clave pública para firmar del desarrollador del sistema operativo en el ‘firmware’ del ordenador (por ahora esto es muy improbable) o la gestión de UEFI del ordenador nos permite instalar nuevas claves para firmar. En cualquier caso, vamos viendo que todo esto excede los conocimientos y posibilidades de la mayoría de los usuarios (¿cuántos usuarios saben qué es BIOS o lo han configurado alguna vez después de más de treinta años de presencia en nuestros ordenadores?).

¿Qué ocurre si queremos disponer de dos sistemas operativos en el mismo ordenador (dual boot)?. O los dos funcionan con ‘Secure Boot’ activado o los dos sin ‘Secure Boot’ activado. En caso contrario cada vez que queramos cambiar de sistema operativo tendremos que entrar en la configuración de UEFI y activar/desactivar ‘Secure Boot’. Más engorro y complicación para el usuario.

Si un usuario reemplaza o añade hardware dependiente del ‘firmware’ del ordenador y el fabricante del hardware firma el ‘driver’ de sus productos, la clave (pública) del fabricante debe estar presente en los ordenadores donde deba funcionar su hardware para que ‘Secure Boot’ valide el ‘driver’. Si el fabricante del ordenador no ha añadido esa clave o la configuración de UEFI no permite añadirla (otra complicación para el usuario) el nuevo hardware no funcionará. Otra posibilidad es que el fabricante del hardware le pague $99 a Microsoft para que le firme los ‘drivers’ (cuya clave pública ya la habrá colocado en el ‘firmware’ el fabricante del ordenador).

¿Qué sucede con las memorias USB arrancables y los LiveCD?. Si está desactivado ‘Secure Boot’ podrán arrancar sin problema. Si está activado y se utiliza Windows 8, Microsoft ha anunciado que se podrá utilizar una opción para indicar que se reinicie el equipo utilizando un dispositivo externo. Si está activado ‘Secure Boot’ y se está utilizando otro sistema operativo es probable que haya que desactivar ‘Secure Boot’ para que funcione el arranque desde una memoria USB o LiveCD.

Para los desarrolladores de sistemas operativos ‘Secure Boot’ les supondrá más trabajo al tener que añadir a los procesos habituales la generación de claves, firmas y su instalación en un ordenador con una versión de EUFI-Secure Boot que permita gestionar esas claves y firmas.

Como resumen vemos que ‘Secure Boot’ nos va a complicar algo más nuestra vida digital. También vemos que a la hora de comprar un ordenador, sea con Windows 8 o no, es importante que elijamos uno que en la configuración de ‘Secure Boot’ nos permita cambiar entre ‘User Mode’ y ‘Setup Mode’ y que disponga de una buena gestión de claves y firmas. Creo que en mayor o menor medida todos lo permitirán. Aunque a Microsoft le pueda interesar que no se utilicen otros sistemas operativos, para los fabricantes de ordenadores no es su guerra.

Por último, existen voces bastante críticas con el nivel de complejidad que añade ‘Secure Boot’ al uso de los ordenadores y el impacto que puede tener en muchos usuarios que no desean preocuparse de detalles tan técnicos. Al mismo tiempo, muchas de esas voces críticas opinan que la seguridad que aporta ‘Secure Boot’ no es tan grande y que sólo es cuestión de tiempo encontrar vulnerabilidades y que el mundo del ‘malware’ las aproveche.

Dejar una opinión